Show/Hide Toolbars

Руководство администратора

Интеграция с Diadoc

Ссылки Назад Вверх Вперед

"Первая Форма" может получать документы, отправлять документы, подписывать или отклонять входящие документы (с указанием причины отказа) и отслеживать статус документов в системе электронного документооборота Диадок.

Для автоматизации используются очереди событий. За счет этого если какое-то действие не отработало с первого раза (например, сервис был временно недоступен), будут выполнены повторные попытки выполнить это действие.

У пользователей есть возможность подключения нескольких личных кабинетов Диадок, что может быть актуально для компаний с несколькими юридическими лицами, на каждое из которых оформляется отдельный личный кабинет. Это даёт возможность:

фиксировать юридическое лицо, от которого получены документы

отправлять статус документа в личный кабинет Диадок, соответствующий юр. лицу входящего документа

определять личный кабинет Диадок, соответствующий юридическому лицу исходящего документа

Акцептанту ЭДО не доступны для выбора сертификаты с истекшим или ещё не вступившим в действие сроком действия. Сертификаты в выпадающем списке располагаются по убыванию срока действия сертификата, срок действия отображается в скобках рядом с сертификатом.

В системе Диадок

Предоставьте учетной записи необходимые права:

Кликните мышью для просмотра изображения в полном размере

Настройки учетной записи в системе Диадок

На рабочем месте пользователя

Чтобы подписывать и отправлять электронные документы в системе Диадок необходимо использовать квалифицированную электронную подпись (КЭП). В Диадоке можно работать с различными СКЗИ, например с КриптоПро 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)

warning_icon  В случае аннулирования резолюция требуется не для файла, полученного из системы Диадок, а для файла аннуляции.

Файл аннуляции сохраняется с помощью действия SaveRevocationFile, после чего либо отправляется подписанный файл об аннулировании (AttachRevocationRequestedSignature), либо создается файл отклонения аннулирования подписи (GenerateRejectRevocationSignature) и отправляется подписанный отказ от подписи (AttachRevocationRejectionSignature)

Логирование ответов

В "Первой Форме" есть возможность логировать ответы при интеграции с сервисом Диадок. По умолчанию логирование отключено.
Для его включения необходимо добавить пользовательский ключ DiadocLogEnabled и установить его в значении true.

После включения в системе будут логироваться все события: их EventId, дата этого события (Timestamp), серверное время, MessageId документа, по которому пришло событие, EntityId этого документа, BoxId и ClientId ящика, по которому пришел этот документ. В том числе определяется новый ли это документ или происходит изменение уже существующего.

Записи в журнале не появляются, если при итерации заданий не было событий на обработку.

Отправка документа в Диадок

Пример: вы создали документ и вложили его в задачу или в ДП. Теперь нужно подписать его с помощью электронной подписи и отправить контрагенту через Диадок.

Подписание документа с помощью электронной подписи и отправка его контрагенту через Диадок инициируется внутри "Первой Формы", обычно при переходе по маршруту. Для запуска соответствующего действия используется привязка смарт-пакета к смарт-событию "После перехода".

Привязка действия

Привяжите действие к смарт-событию После перехода. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".

diadoc_send

Привязка пакета действий к событию в категории

Скрипт для автоматизации

Скрипт удобнее писать на языке Lua, хотя те же действия можно реализовать с помощью смартов.

Пример Lua-скрипта для отправки файла в Диадок

Изменение статуса документа в Диадок

Пример: вы создали документ, подписали его с помощью электронной подписи, вложили в задачу и отправили на подписание контрагенту через Диадок. Теперь нужно отследить изменение статуса документа в Диадоке: если контрагент подписал документ, задачу нужно перевести в статус Завершено, а если не подписал — в статус Отклонено.

Привязка действия

Для обработки внешнего события — изменения статуса документа в Диадоке — используйте очередь событий. Привяжите действие к системному событию ChangeEdocumentStatus. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".

diadoc_change

Привязка действий к системному событию

Скрипт для автоматизации

Скрипт удобнее писать на языке Lua, хотя те же действия можно реализовать с помощью смартов.

Контекст события

В скрипте нужно проверить сообщение, присылаемое Диадоком, и в зависимости от него перевести задачу в нужный статус.

Пример Lua-скрипта для события ChangeEdocumentStatus

Получение документа из Диадок

Пример: контрагент прислал документ через Диадок. Возможны два варианта:

документ прислан без запроса подписи,

документ отправлен на подпись, вы должны обработать ее — подписать или отклонить.

При получении документа возможны два варианта:

контрагент просто прислал вам документ без запроса подписи,

контрагент отправил вам документ на подпись. Вы должны обработать ее — подписать или отклонить.

Привязка действия

Для обработки внешнего события — получения документа через Диадок — используйте очередь событий. Привяжите действие к системному событию ReceiveNewEdocument. В пакете достаточно настроить смарт-действие "Выполнить смарт-скрипт".

diadoc_receive

Привязка действий к системному событию

Скрипт для автоматизации

Скрипт удобнее писать на языке 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-формате.

С форматами документов вы можете ознакомиться по ссылке.

Полезные ссылки