"Первая Форма" может получать документы, отправлять документы, подписывать или отклонять входящие документы (с указанием причины отказа) и отслеживать статус документов в системе электронного документооборота Диадок.
Для автоматизации используются очереди событий. За счет этого если какое-то действие не отработало с первого раза (например, сервис был временно недоступен), будут выполнены повторные попытки выполнить это действие.
У пользователей есть возможность подключения нескольких личных кабинетов Диадок, что может быть актуально для компаний с несколькими юридическими лицами, на каждое из которых оформляется отдельный личный кабинет. Это даёт возможность:
•фиксировать юридическое лицо, от которого получены документы
•отправлять статус документа в личный кабинет Диадок, соответствующий юр. лицу входящего документа
•определять личный кабинет Диадок, соответствующий юридическому лицу исходящего документа
Акцептанту ЭДО не доступны для выбора сертификаты с истекшим или ещё не вступившим в действие сроком действия. Сертификаты в выпадающем списке располагаются по убыванию срока действия сертификата, срок действия отображается в скобках рядом с сертификатом.
В системе Диадок
Предоставьте учетной записи необходимые права:
Настройки учетной записи в системе Диадок
На рабочем месте пользователя
Чтобы подписывать и отправлять электронные документы в системе Диадок необходимо использовать квалифицированную электронную подпись (КЭП). В Диадоке можно работать с различными СКЗИ, например с КриптоПро CSP.
•плагин КриптоПро (ссылка на сайт КриптоПро). Не забудьте его включить!
•КриптоПро CSP (ссылка на сайт КриптоПро)
Технические требования к рабочему месту
В "Первой Форме"
Действия для настройки интеграции:
1. Добавьте сервис с типом Diadoc.
2. Выберите его в качестве значения Diadoc service в общих настройках приложения.
3. Убедитесь, что задание SyncEdocumentsFromDiadocJob работает.
4. Убедитесь, что в очереди событий создан поток Edocument для обработки событий обмена данными с Диадоком (поток автоматически создается заданием).
5. Добавьте пользовательский ключ DiadocLastEventsId.
6. Автоматизируйте обработку событий, которые могут возникать при интеграции с Диадок:
•Отправка документа в Диадок.
•Изменение статуса документа в Диадоке.
•Получение документа из Диадока.
Для автоматизации используйте:
Системные события •ChangeEdocumentStatus •ReceiveNewEdocument |
Смарт-действия •Диадок - Ответить на электронный документ •Диадок - Ответить титулом на электронный документ •Диадок - Отправить подписанное извещение о получении •Диадок - Отправить подписанный отказ от аннулирования •Диадок - Отправить подписанный отказ от подписи •Диадок - Отправить подписанный файл об аннулировании •Диадок - Отправить подписанный файл соглашения об аннулировании •Диадок - Отправить электронный документ •Диадок - Получить документ •Диадок - Получить идентификатор МЧД (возвращает System.Int32) •Диадок - Получить контрагентов (возвращает System.Int32) •Диадок - Получить статус МЧД (возвращает System.Int32) •Диадок - Получить тэги документа (возвращает System.Int32) •Диадок - Получить файлы МЧД (возвращает System.Int32) •Диадок - Сгенерировать пустой xml титул покупателя для документа (возвращает TCClassLib.Orm.FileStorageFileInfo) •Диадок - Сгенерировать xml титул для документа (возвращает TCClassLib.Orm.FileStorageFileInfo) •Диадок - Синхронизировать статусы документов в сообщении (возвращает System.Int32) •Диадок - Создать файл аннулирования подписи (возвращает TCClassLib.Orm.FileStorageFileInfo) •Диадок - Создать файл извещения о получении (возвращает TCClassLib.Orm.FileStorageFileInfo) •Диадок - Создать файл отказа от подписи (возвращает TCClassLib.Orm.FileStorageFileInfo) •Диадок - Создать файл отклонения аннулирования подписи (возвращает TCClassLib.Orm.FileStorageFileInfo) |
Файл аннуляции сохраняется с помощью действия SaveRevocationFile, после чего либо отправляется подписанный файл об аннулировании (AttachRevocationRequestedSignature), либо создается файл отклонения аннулирования подписи (GenerateRejectRevocationSignature) и отправляется подписанный отказ от подписи (AttachRevocationRejectionSignature) |
---|
Логирование ответов
В "Первой Форме" есть возможность логировать ответы при интеграции с сервисом Диадок. По умолчанию логирование отключено.
Для его включения необходимо добавить пользовательский ключ DiadocLogEnabled и установить его в значении true.
После включения в системе будут логироваться все события: их EventId, дата этого события (Timestamp), серверное время, MessageId документа, по которому пришло событие, EntityId этого документа, BoxId и ClientId ящика, по которому пришел этот документ. В том числе определяется новый ли это документ или происходит изменение уже существующего.
Записи в журнале не появляются, если при итерации заданий не было событий на обработку.
Отправка документа в Диадок
Пример: вы создали документ и вложили его в задачу или в ДП. Теперь нужно подписать его с помощью электронной подписи и отправить контрагенту через Диадок.
Подписание документа с помощью электронной подписи и отправка его контрагенту через Диадок инициируется внутри "Первой Формы", обычно при переходе по маршруту. Для запуска соответствующего действия используется привязка смарт-пакета к смарт-событию "После перехода".
Привязка действия
Привяжите действие к смарт-событию После перехода. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".
Привязка пакета действий к событию в категории
Скрипт для автоматизации
Скрипт удобнее писать на языке Lua, хотя те же действия можно реализовать с помощью смартов.
Пример Lua-скрипта для отправки файла в Диадок
Изменение статуса документа в Диадок
Пример: вы создали документ, подписали его с помощью электронной подписи, вложили в задачу и отправили на подписание контрагенту через Диадок. Теперь нужно отследить изменение статуса документа в Диадоке: если контрагент подписал документ, задачу нужно перевести в статус Завершено, а если не подписал — в статус Отклонено.
Привязка действия
Для обработки внешнего события — изменения статуса документа в Диадоке — используйте очередь событий. Привяжите действие к системному событию ChangeEdocumentStatus. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".
Привязка действий к системному событию
Скрипт для автоматизации
Скрипт удобнее писать на языке Lua, хотя те же действия можно реализовать с помощью смартов.
В скрипте нужно проверить сообщение, присылаемое Диадоком, и в зависимости от него перевести задачу в нужный статус.
Пример Lua-скрипта для события ChangeEdocumentStatus
Получение документа из Диадок
Пример: контрагент прислал документ через Диадок. Возможны два варианта:
•документ прислан без запроса подписи,
•документ отправлен на подпись, вы должны обработать ее — подписать или отклонить.
При получении документа возможны два варианта:
•контрагент просто прислал вам документ без запроса подписи,
•контрагент отправил вам документ на подпись. Вы должны обработать ее — подписать или отклонить.
Привязка действия
Для обработки внешнего события — получения документа через Диадок — используйте очередь событий. Привяжите действие к системному событию ReceiveNewEdocument. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".
Привязка действий к системному событию
Скрипт для автоматизации
Скрипт удобнее писать на языке Lua, хотя те же действия можно реализовать с помощью смартов.
Если документ прислан без запроса подписи, достаточно сохранить присланный файл в файловое хранилище "Первой Формы", затем создать задачу и загрузить в нее этот файл из хранилища.
Пример Lua-скрипта для события ReceiveNewEdocument
Если документ прислан с запросом подписи, нужно выполнить следующие действия:
a)сохранить присланный файл в файловое хранилище "Первой Формы",
b)создать задачу и загрузить в нее этот файл из хранилища,
c)запросить подпись в задаче,
d)в зависимости от результата обработки подписи нужно отправить обратно в Диадок подписанный документ или файл отказа.
Пункты a и b соответствуют предыдущему разделу Без запроса подписи.
Для запроса подписи (пункт c) добавьте в тот же пакет действий смарт-действие "Выполнить переход по маршруту". На переходе должен быть настроен запрос подписи с включенным признаком ЭЦП.
Для обработки подписи (пункт d) настройте в категории две привязки:
•пакет действий к событию "После подписания статической подписи" - если подпись подписывается, нужно прикрепить к файлу ЭП. Тогда статус документа в Диадок изменится на "подписано"
Пример Lua-скрипта для прикрепления подписи
•пакет действий к событию "После отклонения статической подписи" - если подпись отклоняется, нужно сгенерировать файл отказа
Пример Lua-скрипта для генерации файла отказа
Форматы документов
В Диадок поддерживаются следующие типы документов:
•AcceptanceCertificate — акт о выполнении работ и оказании услуг (неформализованный),
•ActOfsetting — акт на взаимозачёт,
•AdjustmentOfClaim — корректировка претензии,
•ApplicationForForwardingServices — заявка Т-ЭУ,
•ApplicationForFunding — заявка в банк,
•ApplicationForTransport — заявка на перевозку,
•AttorneyLetterForGoodsAcceptance — доверенность на получение товаров,
•BonusCertificate — акт премий,
•CertificateRegistry — реестр сертификатов,
•Claim — претензия,
•Contract — договор,
•ContractAppendix — приложение к договору,
•CreditForm — кредитная анкета,
•ElectricityIndication — показания электроэнергии,
•ForwarderAssignment — поручение экспедитору,
•ForwardingReceipt — экспедиторская расписка,
•Invoice — счет-фактура,
•InvoiceCorrection — корректировочный счет-фактура,
•InvoiceCorrectionRevision — исправление корректировочного счета-фактуры,
•InvoiceRevision — исправление счета-фактуры,
•LeaveApplication — заявление на отпуск,
•Letter — письмо,
•LogisticsEpl — путевой лист,
•LogisticsWaybill — титул транспортной накладной,
•LogisticsWaybillDelivery — транспортная накладная о сдаче груза,
•LogisticsWaybillForwarding — титул транспортной накладной,
•LogisticsWaybillReception — транспортная накладная о приёме груза,
•MesNotification — уведомление о переходе на ЭДО,
•Nonformalized — неформализованный документ,
•NotificationOfClaim — уведомление о претензии,
•PerformedWorkAcceptanceCertificate — акт приемки выполненных работ КС-2,
•PerformedWorkCostCertificate — справка о стоимости выполненных работ и затрат КС-3,
•PowerOfAttorney — доверенность,
•PriceList — ценовой лист,
•PriceListAgreement — протокол согласования цены,
•ProformaInvoice — счет на оплату,
•ReconciliationAct — акт сверки,
•ReportPrincipal — отчёт комитенту,
•ResignationLetter — заявление на увольнение,
•ReturnInventoryAcceptanceCertificate — акт МХ-3,
•ServiceDetails — детализация,
•SpotCheckAvailabilityCertificate — акт МХ-14,
•StorageInventoryAcceptanceCertificate — акт МХ-1,
•SupplementaryAgreement — дополнительное соглашение к договору,
•Torg1 — акт о приемке товаров ТОРГ-1,
•Torg2 — акт об установленном расхождении ТОРГ-2,
•Torg12 — товарная накладная ТОРГ-12 (неформализованная),
•Torg13 — накладная ТОРГ-13,
•TrustConnectionRequest — запрос на инициацию канала обмена документами через Диадок,
•UniversalCorrectionDocument — универсальный корректировочный документ,
•UniversalCorrectionDocumentRevision — универсальный корректировочный документ (исправление),
•UniversalTransferDocument — универсальный передаточный документ,
•UniversalTransferDocumentAppendix — приложение к УПД,
•UniversalTransferDocumentRevision — универсальный передаточный документ (исправление),
•WaterConsumptionInformation — сведения о расходах воды,
•Waybill — транспортная накладная,
•WithdrawalOfClaim — отзыв претензии,
•WorkOrder — заказ-наряд,
•XmlAcceptanceCertificate — акт о выполнении работ и оказании услуг в XML-формате,
•XmlTorg12 — товарная накладная ТОРГ-12 в XML-формате.
С форматами документов вы можете ознакомиться по ссылке.
Полезные ссылки