Как устроен Диадок¶
Диадок обеспечивает юридически-значимый документооборот между организациями. Поэтому основные задачи Диадока — это:
пересылка документов между организациями и внутри организации,
формирование и хранение цепочек документооборота — последовательности событий, происходящих с документом, например: формирование документа, подпись отправителем, передача на подпись получателю и т.д.
Пересылка документов¶
Пересылка документов между организациями¶
Диадок позволяет пересылать документы между организациями. Организацией может быть юридическое, физическое лицо или индивидуальный предприниматель.
За каждой организацией закреплен ящик, и документы фактически пересылаются между этими ящиками.
Организация может отправлять документы любой другой организации, если только та не ограничила эту возможность. Подробно об этой ситуации написано на странице Работа с контрагентами.
Документ нельзя переслать сам по себе: к любому пользовательскому документу будут прикреплены служебные документы и служебная информация. Поэтому документы пересылаются только внутри сообщения. Сообщение представляет собой хранилище для цепочки документооборота, связанной с пользовательским документом. Какие-то документы в сообщение добавляет сам пользователь, какие-то — получатель сообщения, а некоторые служебные документы формирует и добавляет Диадок, например, подтверждение оператора и т.п.
Пересылка документов происходит следующим образом:
Когда пользователь хочет начать документооборот со своим контрагентом, он создает сообщение в своем ящике — т.е. в ящике отправителя. Сообщение включает в себя документ и подпись к нему.
Диадок формирует цепочку документооборота этого сообщения в ящике отправителя.
Одновременно Диадок формирует цепочку документооборота этого сообщения в ящике контрагента — т.е. в ящике получателя. Так происходит «доставка» документа контрагенту.
Фактически цепочка документооборота в ящике отправителя формируется сразу же после отправки сообщения, а в ящике получателя — с задержкой: это связано с асинхронным выполнением операции отправки сообщения.
Процесс пересылки документов аналогичен доставке писем на электронную почту, но в реальности документы никуда не пересылаются. Вместо этого в ящиках отправителя и получателя формируются записи, позволяющие получить доступ к этим документам.
Документы, которые были сформированы и отправлены, отображаются в ящиках отправителя и получателя. Документы, которые были только сформированы, но не отправлены, называются черновиками и отображаются только в ящике отправителя.
Пересылка документов внутри организации¶
Диадок позволяет обмениваться документами не только между организациями, но и внутри одной организации — между отделами, сотрудниками и т.п.
За каждой организацией закреплен только один ящик. Поэтому для обеспечения документооборота внутри организации используются подразделения. Если нужно переслать документы между отделами и сотрудниками одной организации, то такие документы пересылаются не из одного ящика в другой, а из одного подразделения организации в другое.
Доступ к ящикам¶
Чтобы отправить документ из ящика или просмотреть полученный документ в ящике, пользователь должен иметь к нему доступ. При этом к одному ящику могут иметь доступ несколько пользователей, и один пользователь может иметь доступ к нескольким ящикам.
Чтобы получить доступ к ящику, пользователь должен авторизоваться в системе.
Формирование и хранение цепочки документооборота¶
Хранение сообщений в ящике¶
Ящик представляет собой логическое хранилище сообщений — отправленных из этого ящика и полученных в этот ящик. Содержимое ящика можно представить как единый список всех входящих и исходящих сообщений.
Чтобы получить доступ к конкретному сообщению в ящике, нужны два параметра:
идентификатор ящика,
идентификатор сообщения в ящике.
Хранение документов в сообщении¶
В каждом сообщении сгруппированы документы, относящиеся к одной бизнес-транзакции — т.е. входящих в одну цепочку документооборота. Например, в одном сообщении может содержаться пакет документов, закрывающий сделку: счет-фактура и акт о выполнении работ (оказании услуг).
Помимо основных пользовательских документов (счет-фактура, УПД, договор и т.п.), сообщение включает в себя служебные документы: например, извещение о получении, уведомления, электронные подписи к документам, комментарии и другие служебные данные.
Каждый такой пользовательский и служебный документ, хранящийся в сообщении, называется сущностью. Каждая сущность имеет идентификатор, тип и бинарное представление.
Чтобы однозначно идентифицировать сущность, нужны три параметра:
идентификатор ящика,
идентификатор сообщения в ящике,
идентификатор сущности внутри сообщения.
Формирование цепочки документооборота¶
После отправки сообщения в него нельзя добавить новые пользовательские документы, однако набор служебных документов, входящих в сообщение, может меняться со временем. Например, порядок обмена счетами-фактурами подразумевает, что покупатель в ответ на полученный счет-фактуру должен отправить продавцу документ, подтверждающий получение счета-фактуры. В этом случае счет-фактура и этот служебный документ будут храниться в одном сообщении.
По аналогии с электронной почтой, сообщение в Диадоке похоже не на отдельное письмо, а на цепочку писем, возникающую в ходе переписки. Такая цепочка в Диадоке формируется с помощью дополнений к сообщению (патчей). Дополнения к сообщению описывают изменения, произошедшие с сообщением, и могут содержать добавившиеся документы с электронной подписью.
Таким образом, сообщение представляет собой упорядоченный набор связанных дополнений (патчей). Дополнение, с которого «начинается» сообщение, называется заглавным.
Дополнение к сообщению является неделимым: либо оно доставляется целиком — то есть доставляются все документы и подписи из этого дополнения, либо не доставляется целиком в случае возникновения ошибок — то есть не доставляется ни один документ или подпись из такого дополнения.