При интеграции 1С с сервисом Диадок часто возникает необходимость передачи специфических данных, которые не входят в стандартный набор полей формата УПД. Одним из таких инструментов являются поля ИнфПолФХЖ (Информационное поле факта хозяйственной жизни). Рассмотрим, как программно реализовать наполнение этих полей данными из справочника Контрагенты.
Эти поля являются универсальным механизмом для передачи дополнительной информации. Они делятся на два типа:
Для корректной обработки данных системой получателя важно заранее согласовать идентификаторы (ключи), которые будут использоваться в XML-структуре. Без этого автоматизированная система контрагента не сможет распознать переданные значения.
Если стандартный конструктор настроек в модуле Диадок не позволяет выбрать необходимые поля, мы прибегаем к программной доработке. Основным местом для внесения изменений является событие После заполнения контента в подключаемом модуле.
Рассмотрим пример того, как можно инициализировать структуру для передачи данных:
ДокПодтвОтгр = Новый ТаблицаЗначений;
ДокПодтвОтгр.Колонки.Добавить("Name");
ДокПодтвОтгр.Колонки.Добавить("Number");
ДокПодтвОтгр.Колонки.Добавить("Date");
Стр = ДокПодтвОтгр.Добавить();
Стр.Number = СсылкаНаДокумент.Номер;
Стр.Date = Формат(СсылкаНаДокумент.Дата, "ДЛФ=Д");
Протоконтент.DocumentShipments = ДокПодтвОтгр;
В данном примере мы создаем таблицу значений, наполняем её нужными данными из документа и присваиваем свойству DocumentShipments объекта Протоконтент. При реализации передачи реквизитов контрагента, вы должны обратиться к объекту СсылкаНаДокумент.Контрагент, получить необходимые дополнительные реквизиты и сформировать аналогичную структуру.
ДополнительныеРеквизитыИСведения, воспользуйтесь методом ПолучитьЗначениеСвойства.ТаблицаЗначений в коде подключаемого модуля. Добавьте в нее колонки Name (наименование поля) и Value (значение поля).Протоконтент. Важно соблюдать актуальную версию формата УПД (например, 5.01 или 5.03), так как от этого зависит имя свойства объекта, куда вы передаете таблицу.Приоритет настроек: Всегда проверяйте возможность реализации задачи штатными средствами модуля. Использование встроенного конструктора в настройках ЭДО или справочнике контрагентов предпочтительнее, так как это упрощает последующее обновление модуля 1С.
Согласование данных: Поскольку ИнфПолФХЖ подразумевает работу с «ключ-значение», обязательно получите от вашего контрагента перечень идентификаторов, которые они ожидают увидеть. Попытка внедрить «произвольные» названия полей приведет к тому, что информация останется невостребованной на стороне получателя.
Отладка: При отладке обязательно формируйте XML-файл перед отправкой и проверяйте, попадают ли данные в узлы ТекстИнф. Проверяйте наличие атрибутов Идентиф и Значен — именно они являются критическими для успешного парсинга данных на принимающей стороне.
Работая вместе над такой интеграцией, мы обеспечиваем высокую степень автоматизации обмена данными, исключая ручной ввод информации и ошибки при переносе реквизитов контрагентов.