Процедура отправки электронного документа состоит из серии обменов файлами между всеми участниками обмена — отправителем, получателем и оператором.
В зависимости от регламента, серии таких обменов могут отличаться. Некоторые из них определяются государством, например обмен счетами-фактурами или больничными. В рамках такого обмена, помимо файла самой фактуры или ее ответной части, отправитель или получатель должны в определенный момент формировать, подписывать и отправлять извещения о приеме.
При помощи API вы можете упростить эту процедуру и поручить СБИС сделать все необходимые служебные операции. Для этого в цикле обработки документов добавляется обработка служебных документов.
На уровне API СБИС для обработки служебных документов нужно:
- запросить список этапов — СБИС.СписокСлужебныхЭтапов. Метод возвращает список документов, на каждом из них указано действие, которое нужно выполнить;
- для каждого полученного документа нужно вызвать СБИС.ПодготовитьДействие и СБИС.ВыполнитьДействие. Первая команда сгенерирует служебные документы и укажет какие из них нужно подписать, вторая — куда передать подписи под служебными файлами.
Для максимальной производительности рекомендуем обрабатывать документы параллельно. Количество документов, которые вы получаете за один вызов СБИС.СписокСлужебныхЭтапов, выбирайте таким образом, чтобы все они успевали обрабатываться за 1 минуту. Именно на это время документы блокируются от аналогичных запросов. Вызов СБИС.СписокСлужебныхЭтапов делайте до тех пор, пока он не вернет пустой список.
В ExtSDK2 мы еще больше упростили эту процедуру и для обработки служебных этапов достаточно вызвать метод ProcessServiceStagesEx. За один вызов он выполнит описанную выше последовательность. Вызывать ProcessServiceStagesEx нужно до момента, пока он не вернет пустой список. В случаях, когда количество необработанных служебных документов измеряется десятками или сотнями тысяч, их обработка может занять продолжительное время. Рекомендуем показывать пользователю количество обработанных служебных документов, чтобы не возникало ощущения, что процесс завис.
Для увеличения производительности можно одновременно выполнять несколько ProcessServiceStagesEx, так же, как и в сценарии Массовой отправки документов. Рекомендуется не более 5 параллельных вызовов. Самостоятельное превышение лимита приведет к нестабильной и медленной работе именно вашей сессии. Для увеличения пропускной способности обратитесь к менеджеру.
У клиента есть возможность самостоятельно сгенерировать и подписать служебные документы. Для этого нужно сформировать и подписать документы, необходимые по регламенту обмена, и передать их в СБИС при помощи СБИС.ВыполнитьДействие через прокси метод вызова API CallSabyApi.