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

Согласование (обработка) входящих документов в API-интерфейсе

Согласование (обработка) входящих документов в API-интерфейсе

Ваша информационная система должна работать с документами, которые состоят из нескольких первичных вложений. Если это не так — реализуйте эту поддержку или откажитесь от согласования документов в вашей информационной системе. Все вложения документа согласовываются (отклоняются/утверждаются) одновременно.

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

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

      На заметку!

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

      • ответный титул для каждого вложения, которое требует ответный титул;
      • один общий документ «Уведомление об утверждении».

      При отклонении документа с любым количеством вложений генерируется отдельный документ «Уведомление об отклонении» на каждое вложение.

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

      Внимание!

      При самостоятельной генерации уведомления о приеме/отклонении используйте московское время. При записи на сервер проверяется время в теле xml-вложения. Если время будет меньше времени фактического создания (получения) документа на сервере, то сформируется ошибка, а событие останется необработанным.

    2. Выполните подписание документов в вашей ИС.

    Если служебные вложения формируются в вашей ИС:

    1. Вызовите метод «СБИС.ПодготовитьДействие». Online.sbis.ru сформирует вложения и вернет список на подписание.
    2. Извлеките идентификаторы сгенерированных вложений («Документ.Вложение.Идентификатор») и используйте их при отправке команды «СБИС.ВыполнитьДействие» и загрузке вложений. Сформированные служебные вложения на online.sbis.ru будут заменены вашими.
    3. Не передавайте поля «Вложение.СсылкаНаФайл» и «Вложение.ДвоичныеДанные» для вложений, которые не требуют замены:
      • если ссылка ведет на то-же самое вложение — она будет проигнорирована;
      • во всех остальных случаях будет либо создана новая версия для подписанного вложения, либо неподписанное вложения перезапишется.

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

Пример утверждения документа

Пример отклонения входящего документа

Пример обработки входящего заказа с подменой подтверждения