Передача документа в формате Enterprise data с табличной частью
В данной статье рассмотрим код процедур и основные действия для доработки обмена документами на Enterprise data (КД3), на случай, если у вас нет возможности сгенерировать его через саму конфигурацию КД3. Изменения регистрируются к обмену вручную. Доработка регистрации и пакета XDTO не является темой данной статьи.
Необходимые действия для доработки :
1) Добавить в состав плана обмена документ, доработать его регистрацию в случае необходимости.
2) Выгрузить правила регистрации и доработать их, например, через КД2.
Загрузить доработанные правила обратно в настройки обмена. Разместить в макете доработанные правила.
3) Загрузить доработанные правила обратно в настройки обмена. Разместить в макете доработанные правила.
4) Добавить новый нужный объект формата в пакет в двух базах по аналогии с уже имеющимися объектами. Для проверки идентичности пакетов можно выгрузить их и сравнить через Файл — Сравнить файлы.
5) Добавить типы допустимых объектов в двух базах, указывать необходимо именно объект формата, объект который добавляем в пакет XDTO. Добавление производится в Общем модуле ОбменДаннымиXDTOСервер Процедура ЗаполнитьСтруктуруНастроекXDTO.
Далее необходимо написать процедуры в модуле «МенеджерОбменаЧерезУниверсальныйФормат»:
6) «ДобавитьПОД_Документ_ИмяВашегоДокумента_Отправка» — добавляет правила ПКО, может содержать несколько правил для одного объекта. Её вызов необходимо добавить в процедуру «ЗаполнитьПравилаОбработкиДанных».
Рис.1
7) «ДобавитьПКО_ИмяВашегоДокумента_Отправка» — Правила конвертации объекта.
— «ИмяПКО» должен совпадать со строкой, добавляемой в процедуре ИспользуемыеПКО.
— Для преобразования примитивных типов достаточно указать только свойство конфигурации и свойство формата ( «Дата» рис.2 )
— Для ссылочных типов необходимо указать правило конвертации свойства («Организация» рис.2 )
— Для табличных частей необходимо добавить отдельную таблицу свойств в «СвойстваТабличныхЧастей» ( ТЧ «Товары» с колонками «Количество» и «Номенклатура» на рис.2), для заполнения табличной части необходимо будет передать её значения в «ДанныеXDTO» в процедуре «ПриОтправкеДанных»
— Для свойств, которые не нужно конвертировать на прямую поле «Свойство конфигурации», можно оставить пустым. В таком случае для них необходимо указать, что используется алгоритм конвертации. Если оно (это правильно ОНО?) ссылочное, нужно указывать правило конвертации свойства.
Вызов Процедуры «ДобавитьПКО_ИмяВашегоДокумента_Отправка» необходимо добавить в процедуру «ЗаполнитьПравилаКонвертацииОбъектов»
Рис. 2
8) «ПКО_ИмяВашегоДокумента_Отправка_ПриОтправкеДанных».
Ключевые поля документа поместить в ключевые поля. (Рис.3 «Номер»)
Написать процедуры для свойств, у которых используется алгоритм конвертации, поместить их значения в ДанныеXDTO. (Рис.3 «Номер»)
Заполнить таблицы значений для табличных частей, поместить в ДанныеXDTO, имена колонок должны совпадать с именами, которые вы указали как свойства «СвойствоФормата» в процедуре «ДобавитьПКО_ИмяВашегоДокумента_Отправка». (Рис.3 «Товары»).
Процедура должна быть указана в «ДобавитьПКО_ИмяВашегоДокумента_Отправка», и вызвана в «ВыполнитьПроцедуруМодуляМенеджера».
9) «ПОД_Документ_ИмяВашегоДокумента_Отправка_ПриОбработке»
Если есть условия обработки объектов, например документы для разных подразделений должны выгружаться по-разному, в отдельной процедуре «ПОД_ИмяВашегоДокумента_Отправка_ПриОбработке» можно определить использование ПКО. Данная процедура выполняется для каждого выгружаемого объекта типа. Её надо добавить в процедуру «ДобавитьПОД_Документ_ИмяВашегоДокумента_Отправка» и в «ВыполнитьПроцедуруМодуляМенеджера»
Доработки на стороне отправки выполнены. Для приема на стороне приемнике необходимо выполнить аналогичные доработки с некоторыми изменениями в процедурах.
10) «ДобавитьПОД_Документ_ИмяВашегоДокумента_Получение»
Необходимо вызвать в «ЗаполнитьПравилаОбработкиДанных».
11) «ДобавитьПКО_Документ_ИмяВашегоДокумента_Получение»
Необходимо вызвать в «ЗаполнитьПравилаКонвертацииОбъектов».
12) «ПКО_Док_уатРемонтныйЛист_ИмяВашегоДокумента_ПриКонвертацииДанныхXDTO»
Необходимо вызвать в «ВыполнитьПроцедуруМодуляМенеджера».
13) «ПолучитьСтрокиТоваров»
Так же можно отключать ПКС в событии «ПриОбработке» см. аналогичную процедуру отправки.
Comments
So empty here ... leave a comment!