При работе с маркированными товарами в системе 1С (будь то 1С:ERP или 1С:Комплексная автоматизация 2.4/2.5) часто возникает ситуация, когда стандартного функционала модуля Контур.EDI недостаточно для автоматической передачи кодов маркировки в электронный УПД. Основная проблема заключается в том, что классические EDI-сообщения (например, INVOIC или DESADV) базируются на международных стандартах, которые изначально не предусматривали полей для российских кодов «Честный ЗНАК». В этой статье мы подробно разберем, как интегрировать передачу марок, чтобы они корректно попадали в систему ЭДО и далее — торговым сетям.
Проанализируем ситуацию, с которой сталкиваются многие разработчики: при попытке найти поля для марок в стандартной схеме EDImessage.xsd, подтягиваемой с серверов Контура, поиски не приносят результата. Это происходит потому, что данные маркировки передаются не в основном теле EDI-сообщения, а через дополнительные структуры или механизмы расширения (ExtraFields). Если вы используете типовой программный модуль (ПМ) Контура, то данные по маркировке в INVOIC по умолчанию могут не записываться, так как модуль ожидает либо установку специальных расширений, либо ручную программную привязку кодов из регистров 1С к объектам XDTO.
Выясним наиболее простой и рекомендуемый способ решения задачи. Разработчики Контура создали специализированные расширения, которые дополняют логику основного модуля. Эти расширения позволяют автоматически «подхватывать» данные о подобранных марках из документов 1С (таких как Реализация товаров и услуг или Подбор и проверка маркированной продукции).
Для корректной работы необходимо проверить наличие и установить следующие расширения в вашей базе 1С:
После подключения данных расширений в настройках модуля появится возможность сопоставления полей, а при формировании исходящего сообщения система сама обратится к метаданным 1С для поиска кодов DataMatrix. Рассмотрим подробнее, откуда модуль берет данные: обычно это табличные части документа, связанные с маркировкой, либо записи регистра сведений МаркировкиУпаковокИзделий (в зависимости от версии конфигурации 1С).
Если по каким-то причинам использование расширений невозможно (например, у вас сильно кастомизированная конфигурация или вы хотите избежать конфликтов расширений), разберем путь программной модификации. Основной точкой входа в программном модуле (ПМ) является процедура ПослеЗаполнения_EdiMessage_XDTO.
Проанализируем алгоритм действий при этом подходе:
INVOIC система уже подготовила структуру XDTO, но еще не отправила её на сервер Контура.РеализацияТоваровУслуг) и извлечь из него коды маркировки.Посмотрим на пример логики, которую можно реализовать в процедуре:
// Пример логики в ПМ Контур.EDI
Процедура ПослеЗаполнения_EdiMessage_XDTO(ДанныеEDI, ОбъектXDTO, Документ1С) Экспорт
// Проверяем, что это сообщение типа INVOIC
Если ДанныеEDI.ТипСообщения = "INVOIC" Тогда
// Получаем таблицу марок из документа 1С
ТаблицаМарок = ПолучитьМаркиИзДокумента(Документ1С);
Для Каждого СтрокаМарки Из ТаблицаМарок Цикл
// Логика добавления кодов в структуру сообщения
// Здесь необходимо обращаться к подчиненным объектам LineItem
// и заполнять свойства, отвечающие за иерархию упаковок
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Важно помнить, что коды маркировки должны быть переданы в правильном формате. Для Честного ЗНАКА это обычно полный код с криптохвостом (если это требуется настройками сети) или очищенный код идентификации. Выясним причину, почему это важно: если передать код в неверном формате, валидация на стороне ЭДО Контура пройдет успешно, но документ будет отклонен на этапе обработки в ГИС МТ. Для предотвращения подобных ситуаций можно использовать расширение для проверки статусов кодов маркировки непосредственно в документах КА 2.4.
Разберем ситуацию с требованиями конкретных ритейлеров. Многие крупные сети требуют наличия марок уже в сообщении DESADV (уведомление об отгрузке). Это позволяет им произвести предварительную проверку кодов еще до физического прибытия машины на склад.
Рассмотрим важные нюансы:
INVOIC должны заполняться соответствующие поля в разрезе товарных позиций без детализации до каждой единицы продукции.Подводя итог, можно сказать, что решение задачи по передаче маркировки в Контур.EDI требует системного подхода. Мы рекомендуем сначала попробовать установить официальные расширения из библиотеки Контура, так как они поддерживаются разработчиком и обновляются при изменении законодательства. Своевременную установку патчей и техническое обслуживание нескольких информационных систем обеспечивает программа для автоматизации архивации и обновления 1С.
Если же вы выбираете путь доработки через ПослеЗаполнения_EdiMessage_XDTO, обязательно используйте отладку для контроля содержимого ОбъектXDTO. Помните, что структура этого объекта должна строго соответствовать ожиданиям транспортного шлюза Контура. Критически важно проверять заполнение марок именно в тех документах реализации, на основании которых строится EDI-сообщение, иначе данные просто не будут найдены в базе 1С.
Внедрение этих механизмов позволит вам полностью автоматизировать процесс отгрузки маркированной продукции и избежать ручного ввода данных в личном кабинете ЭДО, что значительно снижает риск ошибок и ускоряет приемку товара на стороне покупателя. Для выполнения действий в веб-интерфейсах, где невозможна прямая интеграция, применяется платформа для разработки программных роботов.