Механизмы проведения документов при обмене по универсальному формату
Как проводятся документы при обмене по универсальному формату. Пример доработки типовых правил обмена с переносом состояния документа: проведен/не поведен/пометка удаления.
- Описание
- Подробнее
Описание
Не нашел нигде описание процесса получения и проведения документов при обмене по универсальному формату. Ответ пришлось искать в недрах БСП (версии 3.0.3.164).
Логику поведения обмена документами можно понять из функции общего модуля ОбменДаннымиXDTOСервер.СтруктураОбъектаXDTOВДанныеИБ.
Логика получения документа из файла обмена:
1. Получаются данные из файла обмена и находится соответствующий им объект в базе.
ПолученнныеДанные — объект сформированный из полученных из xml файла обмена данных. Ссылку не содержит.
ДанныеИБ — объект информационной базы, соответсвующий (согласно правилам идентификации) объекту из файла. Если объекта в базе нет, то Неопределено.
2. Вызвается процедура из правил конвертации ПередЗаписьюПолученныхДанных, в которой с этими объектами можно произвести нужные манипуляции (но не все будет действовать). Или можно совсем отказаться от дальнейшей работы БСП, прописав свою логику и установив ПолученнныеДанные=Неопределено и ДанныеИБ=Неопределено.
3. Из ПолученнныеДанные и ДанныеИБ определяется объект ДанныеДляЗаписиВИБ с которым и происходит дальнейшая работа. Если ДанныеИБ существует, происходит заполнение его свойств из ПолученнныеДанные (ЗаполнитьДанныеИБПоПолученнымДанным), но при этом не переносится ПометкаУдаления и признак Проведено. По сути Проведено будет действовать только для новых документов. Для уже существующих будет использоваться их признак Проведено.