Документооборот с контрагентами

Обработать служебные документы в API

Обработать служебные документы в API

Регламенты ЭДО предусматривают уведомление о доставке документа получателю. Для этого формируется, подписывается и отправляется извещение о получении. В СБИС это отдельный служебный этап документооборота. Извещение о получении может быть сформировано и подписано после обработки документа.

При запуске в документооборот документа с любым количеством вложений генерируется:

  • общее подтверждение о получении оператором;
  • отдельное извещение на каждое вложение.

Служебные документы могут создаваться сервером online.sbis.ru либо в сторонней информационной системе (ИС).

На online.sbis.ru

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

В сторонней системе

При генерации в вашей информационной системе отслеживать изменения и вносить их в формат документов нужно самостоятельно.

Алгоритм работы

  1. Вызовите метод «СБИС.ИнформацияОСлужебныхЭтапах». В ответе вернется массив со списком «наших организаций», по которым нужно обработать служебные документы.

    Если метод не вернул список организаций, приостановите запросы на 1-5 минут.

    Если в ответе «СБИС.ИнформацияОСлужебныхЭтапах» поле «ПрекратитьЗапросы» = «Да» — прекратите вызовы для текущего пользователя. Это может быть связано с тем, что у пользователя:

  2. Для каждой организации, которая была возвращена командой, обработайте служебные документы:
  3. Если служебный этап обработать сейчас нет возможности (например, нет подходящего ключа ЭП), его можно отложить. Это можно сделать с помощью вызова метода «СБИС.ОтложитьСлужебныйЭтап». После вызова событие будет приостановлено на несколько минут. После каждого вызова метода интервал следующей приостановки увеличивается в два раза.

    Когда служебный этап обработать не получается или его обработка не нужна, удалите его. Для этого используйте метод «СБИС.УдалитьСлужебныйЭтап».

  4. Подпишите документы в СБИС или в вашей ИС.
    В СБИС
    В вашей ИС
    1. Выберите подписанта (сертификат для подписания) и вызовите «СБИС.ПодготовитьДействие». На вход передайте информацию:
    2. При необходимости скачайте с сервера измененные и сформированные вложения. Это можно сделать с помощью отправки HTTP GET-запроса по URL-адресу в поле «Документ.Этап.Вложение.Файл.Ссылка». Скачать можно вложения со значением поля «Документ.Этап.Вложение.Модифицирован» = «Да».
    3. Сформируйте электронные подписи под каждым вложением, которое требует подписания («Документ.Этап.Вложение.ТребуетПодписания» = «Да»).
    4. Отправьте документ с помощью команды «СБИС.ВыполнитьДействие». В результате будет передана информация об этапе, его действии и идентификаторы вложений.
    1. Сформируйте электронные подписи под каждым вложением, которое требует подписания («Документ.Этап.Вложение»).
    2. Отправьте документ с помощью команды «СБИС.ВыполнитьДействие». В результате выполнения будет передана информация об этапе,его действии и идентификаторы вложений.

Чтобы достичь максимальной производительности при обработке:

  • распараллельте* запросы метода «СБИС.СписокСлужебныхЭтапов» по разным «нашим организациям». Документы из полученных списков обрабатывайте параллельно*. Вызовы «СБИС.ПодготовитьДействие» и «СБИС.ВыполнитьДействие» по одному документу должны выполняться последовательно.
  • не допускайте одновременной обработки служебных этапов из разных точек (ваша ИС, личный кабинет, СБИС Коннект и другие) от пользователей, у которых пересекаются права или области видимости по «нашим организациям» или документам.
  • Ошибки «Событие обрабатывается другим процессом» (код «00000000-0000-0000-0000-1FA0000B0002») или «Действие уже обработано» (код «00000000-0000-0000-0000-1FA0000B0001») указывают на неверную настройку или интеграцию. Для исправления ошибки:
    • распределите пользователей по областям видимости или «нашим организациям»;
    • укажите конкретного сотрудника в поле «Получение документов подтверждает» в личном кабинете, в карточке каждой «нашей организации»;
    • проверьте наличие доступа у пользователя к собственному или делегированному ключу ЭП.

* — число одновременных запросов от одного пользователя не должно превышать 10.

Комментарий

  1. В контейнер с ЭП из вашей системы на стороне online.sbis.ru может быть добавлена техническая информация, которая не изменяет юридической значимости ЭП.
  2. Если при обработке извещения на сервере появляется ошибка, выдача этого события в методе «СБИС.СписокСлужебныхЭтапов» для текущей сессии приостанавливается. При повторении ошибок интервал приостановки увеличивается по экспоненте, с начальным шагом 10 минут после каждой ошибки.
    Для получения приостановленных событий конкретного документа или редакции вызовите метод «СБИС.СписокСлужебныхЭтапов» и передайте в нем идентификатор документа или редакции документа. События вернутся без учета предыдущих ошибок и приостановок.
  3. Если служебные вложения формируются в вашей ИС, мы рекомендуем вызывать метод «СБИС.ПодготовитьДействие». В этом случае online.sbis.ru генерирует служебные вложения и возвращает их в списке на подписание. Извлеките идентификаторы сформированных вложений («Документ.Этап.Вложение.Идентификатор»). Используйте их при добавлении вложений и отправке команды «СБИС.ВыполнитьДействие». Это позволит заменить сгенерированные online.sbis.ru вложения на ваши.
  4. При самостоятельной генерации извещений используйте московское время. При записи извещений на сервере проверяется время в теле xml-вложения. Если оно меньше времени фактического создания (получения) документа, сервер сформирует ошибку и событие останется не обработанным (код ошибки «00000000-0000-0000-0000-1FA0000B0000», сообщение «Ошибка установки значимых дат на событии»).
  5. Команда «СБИС.СписокСлужебныхЭтапов» возвращает только один служебный этап по одному и тому же документу, даже если этапов несколько.