Как заполнить строку 12 («Иные сведения об отгрузке») в УПД через компоненту Диадок в 1С

Программист 1С v7.7 Торговля и дистрибуция
← На главную

При организации электронного документооборота (ЭДО) с крупными торговыми сетями (например, «Ашан») поставщики часто сталкиваются с требованием передавать номер заказа покупателя в определенных полях универсального передаточного документа (УПД). Одно из таких полей — строка 12 «Иные сведения об отгрузке, передаче».

Рассмотрим, как правильно передать эту информацию при использовании внешней COM-компоненты Диадок в 1С (в том числе на платформе 1С 7.7), а также разберем структуру соответствующего XML-файла ФНС.

Структура строки 12 в XML-формате УПД

С точки зрения официального формата ФНС (приказы № 820 и № 970), строка 12 печатной формы УПД соответствуют информационному полю факта хозяйственной жизни на уровне всего документа — тегу <ИнфПолФХЖ1>.

Данные внутри этого узла передаются в виде дочерних элементов <ТекстИнф> с атрибутами:

  1. Идентиф — идентификатор или наименование ключа (например, «Номер заказа» или «Заказ на поставку»).
  2. Значен — непосредственно номер документа в системе покупателя.

Важно: торговые сети сверяют входящие электронные документы в автоматическом режиме. Идентификатор ключа в атрибуте Идентиф должен строго совпадать с требованиями сети (включая регистр букв и спецсимволы), иначе автоматическая привязка УПД к входящему заказу (ORDERS) у покупателя не сработает.

Заполнение строки 12 через COM-компоненту Диадока

При использовании внешней компоненты Диадок разработчикам не требуется вручную формировать XML-дерево. Для управления дополнительными сведениями шапки документа предназначена коллекция StructedAdditionalInfos (связанная с AdditionalInfoId).

Проанализируем пошаговый алгоритм добавления номера заказа в строку 12 через объектирование компоненты:

  1. Обращаемся к объекту формируемого документа Диадок (например, UtdSellerContent).
  2. Находим коллекцию дополнительных сведений шапки — StructedAdditionalInfos.
  3. Добавляем новый элемент, где указываем строковый ключ Key и соответствующее ему значение Value.

Рассмотрим пример кода на языке 1С:


// Создаем новый элемент в коллекции дополнительных сведений шапки УПД
НовоеСведение = ДокументДиадок.StructedAdditionalInfos.Add();

// Указываем наименование поля (ключ, требуемый торговой сетью)
НовоеСведение.Key = "Номер заказа"; 

// Передаем значение номера заказа из 1С
НовоеСведение.Value = СокрЛП(НомерЗаказаПокупателя);

После выполнения данного кода компонента Диадок автоматически сформирует тег <ИнфПолФХЖ1> в исходящем XML-файле, а в печатной форме УПД у получателя данные отобразятся в строке 12.

Особенности работы в 1С 7.7

Если вы настраиваете интеграцию в платформе 1С 7.7, обратите внимание на следующие технические нюансы:

  1. Разрядность компоненты: Платформа 1С 7.7 является 32-разрядным приложением. COM-компонента Диадока должна быть зарегистрирована в системе через 32-битную версию утилиты regsvr32 (на 64-битных ОС Windows она находится в каталоге C:\Windows\SysWOW64\regsvr32.exe).
  2. Кодировка строк: 1С 7.7 работает в кодировке Windows-1251. При передаче текстовых значений ключей и номеров заказа убедитесь, что компонента корректно транслирует их в UTF-8, исключая искажение кириллических символов.
  3. EDI-цепочка: В крупных торговых сетях номер заказа передается в документе ORDERS. Если интеграция настроена с использованием модуля EDI, заполнение строки 12 может происходить автоматически при связывании документов цепочки.
← На главную