При работе с системой маркировки «Честный ЗНАК» многие пользователи сталкиваются с тем, что один и тот же код выглядит по-разному при считывании в обычный текстовый редактор (Блокнот) и в программу 1С. В Блокноте код отображается как сплошная строка символов, а в 1С в нем появляются круглые скобки вокруг цифр 01 и 21. В этой статье мы подробно разберем, почему это происходит, проанализируем структуру кода GS1 DataMatrix и выясним, какие настройки оборудования необходимы для успешной валидации марки.
Первое, что нам необходимо понять: появление скобок в интерфейсе 1С — это не ошибка, а работа встроенных алгоритмов разбора стандарта GS1. Код маркировки состоит из нескольких групп данных, которые разделяются специальными идентификаторами применения (Application Identifiers, AI). Рассмотрим основные из них:
GTIN (глобальный номер товарной продукции), состоящий из 14 цифр.В самом штрихкоде, напечатанном на товаре, скобок нет. Однако стандарт GS1 требует, чтобы при визуальном представлении кода для человека эти идентификаторы выделялись скобками. Программа 1С, используя драйвер 1C:Сканер штрихкода, распознает структуру DataMatrix и автоматически добавляет скобки для наглядности. Если в Блокноте вы видите «голый» текст, это означает, что сканер работает в режиме эмуляции клавиатуры и передает данные «как есть», не понимая, что перед ним код маркировки.
Проанализируем ситуацию, когда код в Блокноте и в 1С различается не только скобками, но и самими символами в «хвосте» кода. Одной из главных причин является символ GS (Group Separator). Этот непечатный символ с кодом ASCII 29 служит разделителем между блоками данных переменной длины (например, после серийного номера перед криптохвостом). Часто возникает проблема символа GS при сканере, подключенном в разрыв клавиатуры, так как при таком способе подключения спецсимволы могут теряться или заменяться.
Разберем по шагам, что происходит при разных режимах работы сканера:
F12) или просто проигнорировать. В результате 1С не видит разделителя и не может правильно распарсить структуру кода.Если ваш сканер работает в режиме HID, критически важным фактором становится текущая раскладка клавиатуры в операционной системе. Выясним причину искажения символов:
Код маркировки содержит символы латиницы, цифры и спецсимволы (;, /, =). Если в момент сканирования в Windows включена русская раскладка, сканер «нажмет» клавиши, соответствующие английским буквам, но система интерпретирует их как русские. Например, символ ; может превратиться в букву ж или другой знак, что мгновенно делает код невалидным для системы «Честный ЗНАК».
Для решения этой проблемы мы рекомендуем:
Рассмотрим еще одну техническую тонкость. Корректный код GS1 DataMatrix должен начинаться со специального невидимого признака FNC1. Этот символ сообщает сканеру и программному обеспечению, что данные закодированы по стандарту GS1. Если при печати этикеток этот символ был пропущен, 1С может отказаться воспринимать код как маркировку, даже если визуально он кажется правильным.
Также проанализируем ограничение по количеству знаков. Некоторые модели сканеров по умолчанию могут иметь лимит на длину считываемой строки. В случае с маркировкой воды, где код может содержать 31 символ, или в ситуациях, когда рассматривается маркировка обуви и решение проблем сканирования, сканер может просто «обрезать» часть криптохвоста. Без полной последовательности символов проверка подписи в системе «Честный ЗНАК» всегда будет выдавать ошибку «Код не найден».
Рассмотрим последовательность действий, которые помогут нам настроить оборудование правильно:
'GS' в результатах теста.CR (13).GTIN).Рассмотрим пример того, как должен выглядеть результат обработки в 1С:
// Пример структуры, которую получает 1С после парсинга
ДанныеМаркировки = Новый Структура;
ДанныеМаркировки.Вставить("GTIN", "04603738004003");
ДанныеМаркировки.Вставить("СерийныйНомер", "5G;Qe55/ne=EE");
ДанныеМаркировки.Вставить("Криптохвост", "93e92j");
Если в вашей системе вместо этого получается каша из русских букв или отсутствуют разделители, воспользуйтесь функцией отладки, чтобы посмотреть, что именно приходит на вход в процедуру ОбработкаОповещения или в методы БПО (Библиотеки подключаемого оборудования).
Важный момент: если вы используете типовые конфигурации (УТ 11, Розница 2.3, БП 3.0), за обработку кодов отвечает встроенный механизм интеграции с ИС МП. Учитывайте, что с недавнего времени был введен разрешительный режим на кассах для онлайн-проверки в Честном знаке, который предъявляет повышенные требования к корректности считанных данных — для работы касс в этом режиме поможет драйвер подключения онлайн-касс с разрешительным режимом. В некоторых случаях помогает обновление драйвера 1C:Сканер штрихкода до последней версии, где исправлены ошибки разбора длинных последовательностей в режиме клавиатуры.
Подводя итог, можно сказать, что в большинстве случаев проблема решается переходом на COM-эмуляцию и тщательной проверкой настроек символа GS. Помните, что визуальное наличие скобок в 1С — это признак того, что программа пытается работать по стандарту, и это хороший знак.