Интеграция с информационной системой

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

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

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

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

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

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

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

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

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

    На заметку!

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

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

  2. Для каждой организации, возвращённой методом, необходимо выполнить обработку служебных документов:
  1. Служебный этап, который клиент не может обработать в настоящий момент, например, из-за отсутствия подходящего ключа ЭП для подписания, необходимо отложить вызовом метода СБИС.ОтложитьСлужебныйЭтап. После вызова событие будет приостановлено на несколько минут. После каждого вызова интервал последующей приостановки увеличивается примерно в два раза. В крайнем случае, если не получается обработать служебный этап или его обработка считается не нужным, удалите его вызовом метода СБИС.УдалитьСлужебныйЭтап.

Если подписание выполняется в СБИС (рекомендуется)

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

Если подписание выполняется в вашей ИС (не рекомендуется)

  1. Сформировать электронные подписи под каждым вложением, требующим подписания (Документ.Вложение.ТребуетПодписания = "Да"):
  1. Отправить документ с помощью команды СБИС.ВыполнитьДействие — будет передана информация об этапе и его действии, а также идентификаторы вложений).
  1. Выбрать сертификат без носителя для подписания (из массива Документ.Этап.Действие.Сертификат возвращенного в результате вызова СБИС.ЗаписатьДокумент), при необходимости активировать.
  2. Подписать документы на сервере и отправить документ (команда СБИС.ВыполнитьДействие, на вход обязательно передаётся информация об этапе и действии и реквизиты выбранного сертификата без носителя). При согласовании входящих документов или генерации служебных документов перезаписать служебные вложения, сгенерированные online.sbis.ru служебными вложениями, сгенерированными в вашей ИС (для адресации обязательно необходимо использовать Документ.Вложение.Идентификатор).

На заметку!

Если при отправке документов реализации в параметрах запроса в качестве получателя указана головная организация, а в прилагаемых xml-документах указан филиал этой организации, то конечным получателем будет филиал.

Внимание!

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

Комментарий

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

Обработку служебных этапов по разным организациям допускается производить одновременно в несколько потоков.

При многопотоковой обработке документов по одной организации возможны ошибки:

  • «Действие не обратано» (код "00000000-0000-0000-0000-1AA000030000") или «Событие обрабатывается другим процессом» (код "00000000-0000-0000-0000-1FA0000B0002"), в обоих случаях попробуйте повторить обработку этапа через несколько секунд;

  • «Действие уже обработано» (код "00000000-0000-0000-0000-1FA0000B0001") — пропустите данную ошибку и переходите к обработке следующего этапа.

Если служебные вложения формируются в вашей ИС, рекомендуется вызывать метод СБИС.ПодготовитьДействие, при этом online.sbis.ru генерирует служебные вложения и возвращает в списке на подписание. Необходимо извлечь идентификаторы сформированных вложений (Документ.Вложение.Идентификатор) и при отправке команды СБИС.ВыполнитьДействие использовать полученные идентификаторы при прикладывании ваших вложений, что приведёт к перезаписи сгенерированных online.sbis.ru вложений вашими.

При самостоятельной генерации извещений необходимо использовать московское время. При записи извещений на сервере проверяется время в теле xml-вложения, если оно будет меньше времени фактического создания (получения) документа, то на сервере будет сгенерирована ошибка и событие останется не обработанным (код ошибки 00000000-0000-0000-0000-1FA0000B0000, сообщение "Ошибка установки значимых дат на событии").