Как правильно заполнить иерархию упаковок в справочнике ШтрихкодыУпаковокТоваров в 1С?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Торговля и дистрибуция
← На главную

При организации складского учета, приемки и отгрузки маркированной продукции (например, бутилированной воды или молочной продукции) часто возникает задача корректного отражения вложенности упаковок. Типичный сценарий: на склад поступает паллета, на которой нанесен код логистической упаковки (КИТУ), внутри паллеты находятся групповые упаковки — паки (КИГУ или КИТУ), а внутри каждого пака — штучные бутылки с индивидуальными кодами маркировки (КМ). Разберем, как устроена структура хранения этих данных в типовых конфигурациях 1С и как правильно заполнить справочник ШтрихкодыУпаковокТоваров.

Архитектура хранения иерархии упаковок в 1С

Проанализируем архитектуру библиотеки интеграции с ИС МП, используемую в решениях 1С (1С:ERP, 1С:Комплексная автоматизация, 1С:Управление торговлей). В отличие от большинства стандартных иерархических справочников, справочник ШтрихкодыУпаковокТоваров не использует стандартный реквизит Родитель платформы 1С:Предприятие. Иерархия выстраивается сверху вниз с помощью табличной части ВложенныеШтрихкоды, в которой реквизит Штрихкод ссылается на подчиненный элемент этого же справочника (тип данных СправочникСсылка.ШтрихкодыУпаковокТоваров).

Заполнение выполняется строго поуровнево, шаг за шагом:

  1. Верхний уровень (Паллета): создается отдельный элемент справочника для КИТУ паллеты. В его табличную часть ВложенныеШтрихкоды добавляются ссылки только на элементы следующего уровня — на паки.
  2. Промежуточный уровень (Пак/Короб): для каждого пака создается свой элемент справочника. В его табличную часть ВложенныеШтрихкоды добавляются ссылки на штучные потребительские упаковки — бутылки.
  3. Нижний уровень (Бутылка): создаются элементы справочника под индивидуальные КМ. Для них табличная часть ВложенныеШтрихкоды остается пустой.

Обратите внимание: попытка включить коды потребительских упаковок (бутылок) напрямую в табличную часть паллеты «через уровень» считается грубой ошибкой. При такой структуре типовая форма проверки и подбора маркируемой продукции не сможет построить корректное дерево агрегации, а при частичной распаковке, отгрузке или продаже отдельных паков возникнут неразрешимые коллизии и расхождения со сведениями в системе «Честный Знак».

Реквизитный состав элементов разных уровней

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

  1. Элемент паллеты: реквизит ТипШтрихкода принимает значение SSCC (или GS1_128), а реквизит ТипУпаковки устанавливается как ЛогистическаяУпаковка (в зависимости от структуры может быть МультитоварнаяУпаковка или МонотоварнаяУпаковка). В шапке мультитоварных упаковок номенклатура, как правило, не заполняется.
  2. Элемент групповой упаковки (пака): реквизит ТипШтрихкода принимает значение GS1_128 или GS1_DataMatrix, реквизит ТипУпаковки — МонотоварнаяУпаковка. Здесь указывается ссылка на номенклатуру и задается количество потребительских вложений.
  3. Элемент потребительской упаковки (бутылки): реквизит ТипШтрихкода устанавливается в значение GS1_DataMatrix, реквизит ТипУпаковки — МаркированныйТовар. Заполнение реквизитов Номенклатура и Характеристика является обязательным.

Особенности записи кодов и работа со спецсимволами

Выясним важную техническую деталь, касающуюся сохранения кодов потребительских упаковок. В реквизит ЗначениеШтрихкода код маркировки DataMatrix должен записываться в нормализованном виде — без криптографического хвоста (отсекаются символ-разделитель GS с кодом ASCII 29 и проверочный ключ с электронной подписью). Сохранение сырой строки с криптохвостом и спецсимволами в реквизитах справочника приводит к ошибкам XML-сериализации при передаче данных в документы и при печати этикеток.

Для программного создания упаковок разработчикам рекомендуется использовать штатную функцию модуля менеджера справочника:

ШтрихкодыУпаковокТоваров.СоздатьШтрихкодУпаковки(...)

Данный типовой метод автоматически рассчитывает хеш-суммы содержимого, корректно распознает тип переданного штрихкода и безошибочно выстраивает ссылки подчинения в базе данных.

Штатные способы наполнения справочника в 1С

Разберем, как получить заполненную структуру упаковок без написания собственного кода:

  1. Электронный документооборот (ЭДО): при получении входящего универсального передаточного документа (УПД) от поставщика конфигурация автоматически разбирает дерево упаковки из XML-файла сообщения, создает все взаимосвязанные элементы в справочнике ШтрихкодыУпаковокТоваров и помещает их в табличную часть ШтрихкодыУпаковок входящего документа поступления.
  2. Запрос структуры агрегации через API: если контрагент прислал по накладной только код агрегата верхнего уровня (паллету), в форме «Проверка и подбор маркируемой продукции» доступна онлайн-синхронизация. По команде запроса данных агрегата система через True API обращается к серверам «Честного Знака» и автоматически разворачивает всю цепочку подчиненных упаковок до единичной бутылки прямо в информационной базе.
  3. Документ агрегации: при самостоятельном формировании коробов и паллет на собственном производстве применяется документ Маркировка товаров ИС МП с операцией Агрегация, который при проведении штатно заполняет справочник и регистрирует связи упаковок.
← На главную