В процессе реализации системы обмена документами ключевым этапом является получение документов из системы электронного документооборота СБИС. Это включает в себя сохранение входящих файлов в файловое хранилище, что позволяет хранить исходные документы, их печатные версии и ФНС-архив, включая подписанные обеими сторонами документы в формате PDF. Также предусмотрено автоматизированное извлечение атрибутов формализованных документов, таких как дата, номер, тип документа, номер и дата договора, сумма и комментарий, а также основание. В дополнение к этому система способна обрабатывать данные неформализованных документов и извлекать атрибуты входящих пакетов, включая юридическое лицо, ИНН и КПП контрагента.
В системе СБИС
У пользователя, под которым идет работа, должна быть зарегистрирована электронная подпись в системе СБИС.
На рабочем месте пользователя
Чтобы подписывать и отправлять электронные документы в системе СЬИС необходимо использовать квалифицированную электронную подпись (КЭП). В СБИС можно работать с различными СКЗИ, например с КриптоПро CSP.
•плагин КриптоПро (ссылка на сайт КриптоПро). Не забудьте его включить!
•КриптоПро CSP (ссылка на сайт КриптоПро)
Технические требования к рабочему месту
В "Первой Форме"
Действия для настройки интеграции:
1. Добавьте сервис с типом Sbis.
2. Выберите его в качестве значения Sbis service в общих настройках приложения.
3. Убедитесь, что задание SyncEdocumentsFromSbisJob работает.
4. Добавьте пользовательский ключ SbisLastEventsId.
5. Автоматизируйте действия, которые могут потребоваться при интеграции со СБИС.
Доступные смарт-действия при создании пакета действий:
•Отправить подписание в СБИС
•Отправить подписанный отказ от подписи в СБИС
•Отправить отказ от аннулирования в СБИС
•Отправить соглашение об аннулировании в СБИС
•Получить сертификаты
•Получить статус МЧД в CБИС
Доступные смарт-действия при создании смарт-скрипта (LUA):
•GenerateRejectionSbisSignature — Создать файл отказа от подписи
•GenerateRevocationRejectionSbisSignature — Создать файл отказа от аннулирования
•SbisAttachRejectSignature — Отправить подписанный отказ от подписи в СБИС
•SbisAttachRevocationRequestedSignature — Отправить соглашение об аннулировании в СБИС
•SbisAttachRevocationSignature — Отправить соглашение об аннулировании в СБИС
•SbisAttachSignature — Отправить подписание в СБИС
•SbisGenerateRevocationTitle — Создать файл аннулирования подписи
Отклонение документа
Для отклонения сперва создается файл отказа от подписи с помощью смарт-действия GenerateRejectionSbisSignature.
Входящие параметры:
•File* — ID файла
•Reason* — Причина отказа
•Thumbprint* — Отпечаток сертификата, находится в системе СБИС в информации о сертификатах для подписи
•ServiceId* — ID сервиса
•PowerOfAttorney* — МЧД
Смарт возвращает объект с параметрами: {FileId, VersionId, AttachmentId, DocumentId}. Сохраните AttachmentId, DocumentId и сам файл.
Файл необходимо подписать ЭЦП, отпечаток которой был передан в параметре Thumbprint.
Затем отправляется подписанный отказ от подписи в СБИС с помощью смарт-действия SbisAttachRejectSignature.
Входящие параметры:
•File* — ID файла
•RejectionFile* — ID файла отказа, который был получен из смарт-действия GenerateRejectionSbisSignature и затем подписан.
•ServiceId* — ID сервиса
•Signature* — Подпись
•Reason* — Комментарий
•AttachmentId* — Идентификатор титула
•PowerOfAttorney* — МЧД
Аннулирование документа со стороны "Первой Формы"
Предварительно создается файл аннулирования подписи с помощью смарт-действия SbisGenerateRevocationTitle.
Входящие параметры:
•File* — ID файла. Может описывать любое вложение из документа, поскольку аннулируется весь документ, а не только отдельные вложения в нем.
•Reason* — Причина аннулирования
•Thumbprint* — Отпечаток сертификата, находится в системе СБИС в информации о сертификатах для подписи
•ServiceId* — ID сервиса
•PowerOfAttorney* — МЧД
Смарт возвращает массив объектов {FileId, VersionId, AttachmentId, DocumentId} для каждого вложения, которое есть в документе.
Полученные файлы необходимо подписать, а также сохранить связь между FileId и AttacmentId.
После создания файла требуется отправить соглашение об аннулировании в СБИС с помощью смарт-действия SbisAttachRevocationSignature.
Входящие параметры:
•Files* — ID файла. В параметр передается массив объектов { FileId, VersionId, AttachmentId, DocumentId }
•ServiceId* — ID сервиса
•Signature* — Подпись
•Reason* — Комментарий
•PowerOfAttorney* — МЧД
Принять аннулирование входящего документа
При запросе на аннулирование в EdocumentSbisLink придет N количество вложений со статусом 27 — в ожидании аннулирования.
Они связаны с аннулируемыми вложениями только по DocumentId.
Для аннулирования документа с тем же DocumentId необходимо отправить соглашение об аннулировании в СБИС с помощью смарт-действия SbisAttachRevocationRequestedSignature.
Входящие параметры:
•Files* — Файлы. В параметр передается массив объектов {FileId, VersionId, AttachmentId, DocumentId} для уже подписанных ЭЦП вложений на стороне "Первой Формы" со статусом 27 (в ожидании аннулирования).
•ServiceId* — ID сервиса
•Signature* — Подпись
•Reason* — Комментарий
•PowerOfAttorney* — МЧД
В данном смарт-действии первостепенно необходимо заполнить FileId и VersionId, т.к. они сохраняются в таблице EdocumentSbisLink и вы получаете его контент, когда он придет как "новый документ". Стоит понимать, что это не полноценный "новый документ", а только соглашение на аннулирование.
Отклонение аннулирования входящего документа
Предварительно создается файл отказа от аннулирования с помощью смарт-действия GenerateRevocationRejectionSbisSignature.
Входящие параметры:
•File* — ID файла. Может описывать любое вложение из документа, поскольку аннулируется весь документ, а не только отдельные вложения в нем.
•Reason* — Причина отказа
•Thumbprint* — Отпечаток сертификата, находится в системе СБИС в информации о сертификатах для подписи
•ServiceId* — ID сервиса
•PowerOfAttorney* — МЧД
Смарт возвращает массив объектов {FileId, VersionId, AttachmentId, DocumentId} для каждого вложения, которое есть в документе. Эти документы должны быть подписаны
После создания файла требуется отправить отказ от аннулирования в СБИС с помощью смарт-действия SbisAttachRevocationRejectionSignature.
Входящие параметры:
•Files* — ID файла. В параметр передается массив объектов { FileId, VersionId, AttachmentId, DocumentId } из файлов, которые были получены в действии GenerateRevocationRejectionSbisSignature и затем подписаны.
•ServiceId* — ID сервиса
•Signature* — Подпись
•Reason* — Комментарий
•PowerOfAttorney* — МЧД
Логирование ответов
В "Первой Форме" есть возможность логировать ответы при интеграции с сервисом СБИС. По умолчанию логирование отключено.
Для его включения необходимо добавить пользовательский ключ SbisLastEventsId и установить его в значении true.
После включения в системе будут логироваться все события, в том числе определяется новый ли это документ или происходит изменение уже существующего.
Записи в журнале не появляются, если при итерации заданий не было событий на обработку.
Полезные ссылки