При работе с маркировкой молочной продукции, обуви или легкой промышленности программисты 1С часто сталкиваются с ситуацией, когда выгруженный из личного кабинета «Честного знака» (ГИС МТ) файл содержит только часть кода. Вместо полных 31 или более символов в распоряжении оказывается лишь 24 знака. Опираясь на практический опыт быстрой маркировки товаров без ошибок, разберем подробно, почему так происходит, где найти недостающие данные и как правильно настроить печать в 1С, чтобы коды считывались мобильным приложением и сканерами.
Для начала проанализируем, из чего состоит полный код маркировки (КМ). Он включает в себя:
Важно понимать: «Честный знак» выдает полный код с криптохвостом только один раз — в момент эмиссии (заказа) марок в Станции управления заказами (СУЗ). По правилам системы, крипточасть не подлежит повторной выдаче и длительному хранению в СУЗ в открытом виде. Чтобы не потерять данные, рекомендуется использовать инструменты для сохранения полных кодов маркировки сразу после их генерации. Если вы скачали файл спустя 24 часа или получили его в формате, отличном от первичной выгрузки, вы получите только Код идентификации (КИ) без криптохвоста. Печать этикетки на основе только КИ сделает марку невалидной.
Рассмотрим основные стратегии получения корректных данных для формирования DataMatrix:
ШтрихкодыУпаковок. Если же первичная печать не удалась, может потребоваться повторная печать кодов маркировки из Заказа на эмиссию, что требует определенных манипуляций со статусами в СУЗ.Base64, которые содержат полную последовательность данных.Частая ошибка при печати своим шаблоном — неправильная обработка спецсимвола FNC1. Даже имея полный код, разработчики получают нечитаемую марку. Стандарт GS1 DataMatrix требует наличия в начале кода невидимого символа FNC1 (ASCII 232). Если вы работаете с маркетплейсами, вам может пригодиться дубликатор кодов маркировки для WB и Ozon, который умеет корректно копировать и печатать любые КИЗы с сохранением структуры криптохвоста.
В современных конфигурациях 1С используется компонента ПечатьШтрихкодов. Для маркировки «Честный знак» необходимо использовать тип 24 (GS1 DataMatrix).
Разберем пример кода для вывода на печать:
// Пример подготовки данных для компоненты печати
Область = Макет.ПолучитьОбласть("ОбластьШтрихкод");
Рисунок = Область.Рисунки.Штрихкод;
// Устанавливаем тип GS1 DataMatrix
Рисунок.Объект.ТипКода = 24;
// Если код получен из СУЗ в формате Base64, передаем его напрямую
Рисунок.Объект.Сообщение = ПолныйКодВФорматеBase64;
Важно не добавлять символ с кодом 232 вручную в строку как текст при использовании типа 24 — это приведет к ошибке распознавания.
Проанализируем альтернативный вариант: система «Честный знак» поддерживает загрузку собственных шаблонов в формате .jrxml (создаются в Jaspersoft Studio).
Алгоритм действий следующий:
Выясним, как проверить, правильно ли напечатана этикетка. Обычный сканер в режиме клавиатуры может «проглатывать» спецсимволы. Для качественной проверки воспользуемся мобильным приложением «ЧЗ.Сканер».
Важные моменты при проверке:
]d2.GS (ASCII 29).Таким образом, мы выяснили, что ключ к успешной печати — это получение кодов в первые 24 часа после эмиссии и правильная настройка компоненты печати 1С. Это гарантирует наличие криптохвоста и управляющего символа FNC1, без которых легальный оборот продукции невозможен.