Как передать дополнительные реквизиты контрагента в поле ИнфПолФХЖ при работе с Диадоком?

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При интеграции 1С с сервисом Диадок часто возникает необходимость передачи специфических данных, которые не входят в стандартный набор полей формата УПД. Одним из таких инструментов являются поля ИнфПолФХЖ (Информационное поле факта хозяйственной жизни). Рассмотрим, как программно реализовать наполнение этих полей данными из справочника Контрагенты.

Понимание структуры ИнфПолФХЖ

Эти поля являются универсальным механизмом для передачи дополнительной информации. Они делятся на два типа:

Для корректной обработки данных системой получателя важно заранее согласовать идентификаторы (ключи), которые будут использоваться в XML-структуре. Без этого автоматизированная система контрагента не сможет распознать переданные значения.

Реализация через подключаемый модуль

Если стандартный конструктор настроек в модуле Диадок не позволяет выбрать необходимые поля, мы прибегаем к программной доработке. Основным местом для внесения изменений является событие После заполнения контента в подключаемом модуле.

Рассмотрим пример того, как можно инициализировать структуру для передачи данных:


ДокПодтвОтгр = Новый ТаблицаЗначений;
ДокПодтвОтгр.Колонки.Добавить("Name");
ДокПодтвОтгр.Колонки.Добавить("Number");
ДокПодтвОтгр.Колонки.Добавить("Date");

Стр = ДокПодтвОтгр.Добавить();
Стр.Number = СсылкаНаДокумент.Номер;
Стр.Date = Формат(СсылкаНаДокумент.Дата, "ДЛФ=Д");

Протоконтент.DocumentShipments = ДокПодтвОтгр;

В данном примере мы создаем таблицу значений, наполняем её нужными данными из документа и присваиваем свойству DocumentShipments объекта Протоконтент. При реализации передачи реквизитов контрагента, вы должны обратиться к объекту СсылкаНаДокумент.Контрагент, получить необходимые дополнительные реквизиты и сформировать аналогичную структуру.

Пошаговый алгоритм действий

  1. Анализ метаданных: Прежде всего, убедитесь, где именно хранятся дополнительные реквизиты контрагента. Если это план видов характеристик ДополнительныеРеквизитыИСведения, воспользуйтесь методом ПолучитьЗначениеСвойства.
  2. Инициализация структуры: Создайте объект ТаблицаЗначений в коде подключаемого модуля. Добавьте в нее колонки Name (наименование поля) и Value (значение поля).
  3. Заполнение: Перенесите данные из карточки контрагента в созданную таблицу. Убедитесь, что формат данных соответствует требованиям API Диадока (как правило, это строковые представления).
  4. Передача в контент: Назначьте подготовленную таблицу соответствующему полю в Протоконтент. Важно соблюдать актуальную версию формата УПД (например, 5.01 или 5.03), так как от этого зависит имя свойства объекта, куда вы передаете таблицу.

Важные рекомендации при разработке

Приоритет настроек: Всегда проверяйте возможность реализации задачи штатными средствами модуля. Использование встроенного конструктора в настройках ЭДО или справочнике контрагентов предпочтительнее, так как это упрощает последующее обновление модуля 1С.

Согласование данных: Поскольку ИнфПолФХЖ подразумевает работу с «ключ-значение», обязательно получите от вашего контрагента перечень идентификаторов, которые они ожидают увидеть. Попытка внедрить «произвольные» названия полей приведет к тому, что информация останется невостребованной на стороне получателя.

Отладка: При отладке обязательно формируйте XML-файл перед отправкой и проверяйте, попадают ли данные в узлы ТекстИнф. Проверяйте наличие атрибутов Идентиф и Значен — именно они являются критическими для успешного парсинга данных на принимающей стороне.

Работая вместе над такой интеграцией, мы обеспечиваем высокую степень автоматизации обмена данными, исключая ручной ввод информации и ошибки при переносе реквизитов контрагентов.

← На главную