Часто при работе с маркированным товаром мы сталкиваемся с неочевидной проблемой: если в карточке номенклатуры указан штрихкод из 13 символов (EAN-13), то при сканировании кода маркировки (DataMatrix) товар успешно находится. Но если в карточку записать 14-значный код (GTIN), который мы видим в самой марке, система отказывается находить товар. Разберем по шагам, почему так происходит и как правильно настроить учетную систему.
Для начала проанализируем структуру кода маркировки и стандарты GS1. На самом штучном товаре чаще всего напечатан стандартный штрихкод формата EAN-13 (13 цифр). Однако внутри кода DataMatrix (например, от «Честного ЗНАКа») зашит идентификатор применения (01), который всегда содержит GTIN длиной ровно 14 знаков. Чтобы 13-значный код превратился в 14-значный, система маркировки добавляет к нему ведущий ноль в качестве технического заполнителя.
Рассмотрим, как эту ситуацию обрабатывают типовые конфигурации 1С (через подсистемы «Библиотека интеграции ГосИС» и «Библиотека подключаемого оборудования»):
(01) — тот самый 14-значный GTIN.ШтрихкодEANИзGTIN, проверяет извлеченный код. Если он имеет длину 14 символов и начинается с цифры 0, система понимает, что перед ней дополненный EAN-13, и принудительно отсекает ведущий ноль.ШтрихкодыНоменклатуры и ищет строго полученное 13-значное значение.Именно поэтому, если вы вручную или через загрузку добавили в карточку товара 14-значный код с лидирующим нулем, совпадение не находится — 1С ищет код без нуля. Полная 14-значная строка в параметры поискового запроса в этом случае просто не передается.
Выясним причину, по которой запись 14-значного кода с нулем для штучного товара считается некорректной. По стандартам 14-значные штрихкоды (ITF-14) предназначены для групповых логистических упаковок (коробок, паллет). У таких кодов первая цифра обозначает логистический уровень упаковки (от 1 до 8), но никогда не бывает нулем. Если первая цифра — ноль, это просто штучный EAN-13, искусственно растянутый до 14 знаков.
Следовательно, записывать в карточку номенклатуры 14-значный код с нулем в начале методологически неверно. Для штучного товара в регистре должен храниться чистый EAN-13.
Посмотрим на практические шаги, которые помогут избавиться от путаницы со штрихкодами и обеспечить стабильное сканирование:
ШтрихкодыНоменклатуры и удалите лидирующий ноль у таких записей, приведя их к длине в 13 знаков.ПередЗаписью для регистра ШтрихкодыНоменклатуры. В обработчике пропишем простую логику: если длина сохраняемого штрихкода равна 14 и первый символ — это ноль, автоматически усекаем код до 13 символов с помощью функции Сред(Штрихкод, 2).Таким образом, разобравшись в алгоритмах нормализации, мы видим, что типовое поведение 1С полностью оправдано и соответствует стандартам кодирования. Главное правило при работе с маркировкой штучного товара — хранить в справочниках и регистрах 1С только базовые коды EAN-13 без технических нулей.