При работе с маркированным товаром, в частности с одеждой и товарами легкой промышленности в программе 1С:Розница 2.3, пользователи часто сталкиваются с системным сообщением: "Найдена ошибка при проверке кода по причине: Отсутствует полный код маркировки". Эта ошибка блокирует продажу и не позволяет пробить чек, требуя перейти в форму проверки для повторного сканирования — для этого есть проверка кодов маркировки на складе для 1С. Рассмотрим подробно, почему возникает эта проблема и как ее решить техническими средствами.
Для начала проанализируем, как устроена структура маркировки GS1 DataMatrix. Код, который мы видим на упаковке, состоит из нескольких частей: GTIN (14 цифр), индивидуальный серийный номер и так называемый криптохвост (ключ проверки и код проверки). Именно наличие криптохвоста делает код «полным» с точки зрения криптографической защиты «Честного знака».
Когда вы сканируете товар в режиме продажи (РМК), 1С ожидает получить всю строку целиком. Если сканер передает только открытую часть (без криптохвоста) или если в базе данных 1С код сохранен в урезанном виде, система выдает ошибку — для этой задачи есть инструмент контроля полноты кода маркировки. Выясним основные причины, по которым это происходит.
Как отмечается в обсуждениях, самой банальной причиной может быть физическое отсутствие криптохвоста на самой этикетке. Некоторые недобросовестные или технически неграмотные поставщики при «перемаркировке» или печати дубликатов копируют только визуальную часть кода или его текстовое представление, забывая о криптографической части. Проверить это можно, отсканировав код в обычный текстовый «Блокнот». Если длина считанной строки составляет всего 31 символ (или около того), значит, криптохвоста там нет. Настоящий полный код значительно длиннее (обычно более 40-80 символов в зависимости от товарной группы). Для этой задачи есть мобильное решение для сканирования маркировки.
Разберем техническую настройку оборудования. Это самая частая причина «невидимости» хвоста для программы. Большинство сканеров «из коробки» работают в режиме HID (эмуляция клавиатуры). В этом режиме сканер просто «печатает» символы туда, где стоит курсор. Проблема заключается в том, что стандарт GS1 DataMatrix содержит непечатный управляющий символ GS (ASCII 29) или FNC1, который служит разделителем групп данных.
Если сканер работает как клавиатура, он может «проглатывать» эти спецсимволы или некорректно обрабатывать последующую часть кода. Рассмотрим шаги по исправлению:
COM-порт.COM-порта.В таком режиме 1С получает данные напрямую через драйвер («сырые данные»), что гарантирует передачу полной строки кода со всеми скрытыми идентификаторами.
Современные версии БСП (библиотеки стандартных подсистем) в 1С требуют, чтобы сканер передавал префикс типа штрихкода. Для DataMatrix это префикс ]d2. Если эта настройка (обычно называется Code ID или Aim ID) отключена в самом сканере, 1С может не распознать структуру кода как правильный GS1 и посчитать его неполным. Проанализируйте настройки вашего устройства и включите передачу идентификатора символики.
Если вы всё же используете сканер в режиме клавиатуры, обратите внимание на параметр «Таймаут между символами» в настройках драйвера в 1С. Посмотрим на ситуацию: сканер передает длинный код маркировки, но делает это с небольшими задержками. 1С может «разорвать» одну длинную строку на две короткие. В результате первая часть (без хвоста) попадает в обработку, и система выдает ошибку. Установите таймаут в значение 0 или увеличьте его до 75-100 мс, чтобы 1С дожидалась окончания передачи всей посылки данных от сканера.
Проанализируем процесс поступления товара. Если вы принимали товар через ЭДО, в системе 1С в справочнике Штрихкоды упаковок создаются соответствующие записи. В ЭДО криптохвосты обычно не передаются (передается только GTIN и серийный номер), однако при розничной продаже 1С сопоставляет отсканированный физический код с данными в базе. Если в настройках интеграции с ИС МП (Честный знак) включена строгая проверка, а сканер настроен неверно, система не сможет «собрать» пазл из того, что пришло по ЭДО и того, что считал сканер.
Чтобы точно выяснить, на каком этапе «теряется» хвост, выполните следующие действия:
(01)... и содержащую спецсимволы в угловых скобках типа <GS>, значит сканер настроен верно.COM-режим или GS1-parsing).Если выяснилось, что поставщик действительно распечатал коды без криптохвоста (это часто бывает на одежде из старых партий или при нарушении технологии печати), у вас есть два пути:
ИС МП в разделе Настройки сканирования можно попробовать отключить опцию «Проверять коды маркировки средствами ККТ» или «Обязательная проверка в ГИС МТ». Однако помните, что это может привести к тому, что вы продадите код, который не пройдет проверку в самом «Честном знаке», что чревато штрафами.Рассмотрим ситуацию с кодом маркировки на примере. Правильный код в сыром виде должен выглядеть примерно так:
010460123456789021ABC12345<GS>91FF01<GS>92dGVzdGRhdGExMjM0NTY3ODkw
Где <GS> — это тот самый разделитель, который теряется при неправильной настройке оборудования. Если ваш сканер выдает только 010460123456789021ABC12345, 1С закономерно сообщит об отсутствии полной маркировки — есть распознавание поврежденных кодов DataMatrix.
Таким образом, решение проблемы чаще всего кроется в правильной настройке сканера (переход на COM/Native USB) и обновлении драйверов оборудования до актуальных версий, совместимых с релизом 1С:Розница 2.3.25.17.