
Чтобы отслеживать прохождение документов, нужно «научить» вашу информационную систему обновлять состояние документа. Состояние документа обновляется по данным конверта, который СБИС Коннект выгружает в каталог «Состояние».
Формат файла конверта
Файл конверта со списком статусов документов содержит:
- данные о пакете документов. Это идентификатор пакета, ИНН/КПП отправителя и получателя, дата отправки и т.д.;
- код состояния обработки пакетов документов;
- время формирования документов. Содержится в файле конверта, если документ был утвержден, отклонен или сформирован на стороне контрагента.
Стандартные форматы
Файл со списком статусов — это конверт с обязательным блоком, в котором описывается состояния пакета. Список статусов можно выгрузить СБИС Коннектом в любом стандартном формате конверта — native.xml (произвольный xml) или sbis.xml.
Примеры конвертов:
Нестандартные форматы статусов
Список состояний входящих и исходящих документов можно выгрузить и в других форматах. Если ваша система не загружает информацию о статусах из xml-файла стандартного формата, СБИС Коннект может выгрузить список состояний в:
- произвольный csv-файл — с помощью xslt-преобразования;
- dbf-файл фиксированного формата — без дополнительных преобразований;
- произвольный dbf-файл — аналогично произвольному csv-файлу, dbf-файл будет сформирован с помощью xslt-преобразования из стандартного конверта.
Для форматов native.xml, произвольного CSV и произвольного DBF в файл статуса могут подгружаться документы, по которым сгенерировано изменение и выгружен статус.
Алгоритм обработки статусов документов
Информационная система обрабатывает статусы документов определенным образом.
- В каталоге «Состояние» отслеживается появление новых файлов конвертов.
- Файлы конвертов обрабатываются одним из способов:
- по дате создания файлов в каталоге — от самого «старого» файла конверта к более новому.
Дата и время установки состояния на документе определяется по значениям атрибутов:- для sbis.xml — «Реестр.Пакет.ДатаВремяФормирования»;
- для native.xml — «Документ.СписокСобытие.Событие.ДатаВремя».
- либо по приоритету событий документооборота — когда обработка файлов начинается с события, которое имеет более высокий приоритет. Найболее высокий приоритет у событий внизу списка.
- по дате создания файлов в каталоге — от самого «старого» файла конверта к более новому.
- По коду состояния определяется состояние пакета с документами.
- Находится идентификатор пакета, к которому относятся состояние.
- Отображается состояние документов в вашей информационной системе.
- Обработанные файлы конверта удаляются.
Обратите внимание: «Состояние» и «Событие» — два разных понятия.
- Состояние — текущий статус пакета с документами, который определяется кодом состояния;
- Событие — прохождение этапа документооборота, которое может перевести пакет в другое состояние.
Рассмотрим оба способа обработки файлов конверта.
Ваша информационная система:
- Отслеживает появление новых файлов в каталоге «Состояние». Например, по двум документам появилось пять файлов конвертов:
- файл 1 (от 01.01.17) по документу №1 — код состояния «3»;
- файл 2 (от 03.01.17) по документу №1 — код состояния «4»;
- файл 3 (от 02.01.17) по документу №2 — код состояния «1»;
- файл 4 (от 06.01.17) по документу №2 — код состояния «7»;
- файл 5 (от 04.01.17) по документу №1 — код состояния «7».
- Затем, система сортирует файлы по их дате создания в каталоге — от самого старого к новому:
- файл 1 (от 01.01.17) по документу №1 — код состояния «3»;
- файл 3 (от 02.01.17) по документу №2 — код состояния «1»;
- файл 2 (от 03.01.17) по документу №1 — код состояния «4»;
- файл 5 (от 04.01.17) по документу №1 — код состояния «7»;
- файл 4 (от 06.01.17) по документу №2 — код состояния «7».
- Определяет документ по:
- «Идентификатору комплекта документов». Для sbis.xml — элемент «ИдДокСпецоператора», для native.xml — элемент «Документ», код «Идентификатор»;
- «Пользовательскому идентификатору комплекта документов». Для sbis.xml — элемент «ИдДок», для native.xml — элемент «Редакция», код «Идентификатор».
- После этого, система отображает состояние документов в следующем порядке:
- для документа №1:
- «3» — «Отправлен»;
- «4» — «Доставлен»;
- «7» — «Выполнение завершено успешно».
- для документа №2:
- «1» — «Есть документ»;
- «7» — «Выполнение завершено успешно».
- для документа №1:
- «Реестр.Пакет.Событие.ДатаВремяФормирования» — для sbis.xml;
- «Документ.СписокСобытие.Событие.ДатаВремя» — для native.xml.
- Удаляет обработанные файлы конвертов.
Дата и время состояния на документе, которое принял файл статуса, определяется по значениям атрибутов:
Ваша информационная система:
- Отслеживает появление новых файлов в каталоге «Состояние». Например, по двум документам появилось пять файлов конвертов:
- файл 4 (от 06.01.17) по документу №2 — код состояния «7»;
- файл 2 (от 03.01.17) по документу №1 — код состояния «4»;
- файл 3 (от 02.01.17) по документу №2 — код состояния «1»;
- файл 1 (от 06.01.17) по документу №2 — код состояния «7»;
- файл 5 (от 04.01.17) по документу №1 — код состояния «7».
- Для каждого файла конверта система идентифицирует документ и находит, к какому состоянию он относится. В зависимости от кода состояния в файле конверта определяется его приоритет. Если код состояния в конверте больше, чем в вашей системе — его нужно изменить.
- Удаляет обработанные файлы конвертов.
Обратите внимание: если в каталоге «Состояние» количество файлов более 2000, в СБИС Коннекте появится ошибка «Выгрузка статусов невозможна, достигнуто ограничение в 2000 файлов для папки C:\СБИС Коннект\Состояния». После этого, выгрузка архива, статусов и входящих будет приостановлена. Если вы не отслеживаете статусы документов, отключите выгрузку статусов.