Интеграция со СБИС

Обработка служебных документов (извещение о получении) в API-интерфейсе

Обработка служебных документов (извещение о получении) в API-интерфейсе

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

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

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

Служебные документы генерируются автоматически — сервером online.sbis.ru, или самостоятельно — в вашей информационной системе. При автоматической генерации гарантируется правильность заполнения, соответствие формата документов законодательству и регламенту документооборота. При генерации в вашей системе, отслеживать изменения и вносить их в формат документов нужно самостоятельно.

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

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

    На заметку!

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

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

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

Подписание выполняется либо в СБИС, либо в вашей ИС.

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

Комментарий

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