С выходом обновлений 1С:Управление торговлей (УТ) 10.3 до релизов 10.3.66.1 и выше многие пользователи столкнулись с проблемой: при попытке пробить табачную продукцию программа выдает ошибку "штрихкод не соответствует формату кода маркировки табачной продукции". При этом тот же сканер и та же пачка сигарет могут успешно обрабатываться в конфигурации "1С:Розница" или просто считываться в блокнот. Проблема чаще всего связана с тем, как старая добрая "десятка" (УТ 10.3) взаимодействует с современными двумерными кодами DataMatrix и оборудованием.
В этой статье мы подробно разберем, как настроить сканер (на примере популярного Honeywell 1450g) и саму конфигурацию, чтобы маркировка заработала корректно. Мы пройдем путь от аппаратной настройки устройства до программных манипуляций в базе 1С.
Для начала проанализируем ситуацию. Код маркировки сигарет представляет собой сложную структуру GS1 DataMatrix. В отличие от обычного штрихкода (EAN-13), он содержит невидимые служебные символы, наиболее важным из которых является GS (Group Separator) с кодом ASCII 29. Этот символ служит разделителем между блоками данных в коде (например, между GTIN и серийным номером).
Когда мы используем сканер в режиме клавиатуры (USB HID), он просто "печатает" символы в активное поле. Однако режим клавиатуры часто "съедает" невидимые символы разделителей или заменяет их на другие, из-за чего 1С не может корректно разобрать строку на составляющие и выдает ошибку формата. В УТ 10.3 алгоритмы проверки более жесткие, чем в некоторых других конфигурациях, и требуют идеальной передачи структуры кода.
Первым делом рассмотрим самый надежный способ — перевод сканера в режим USB Serial (эмуляция COM-порта). Это позволит 1С общаться со сканером напрямую через драйвер, минуя буфер клавиатуры и региональные раскладки Windows.
Выполним следующие шаги для сканера Honeywell 1450g:
Важный нюанс: В режиме COM-порта сканер перестанет "писать" в блокнот, и это нормально. Теперь данные будут попадать сразу в обработчик события 1С.
После подготовки "железа" перейдем к настройке программы. Разберем, как правильно подключить оборудование в конфигурации на обычных формах.
Проанализируем необходимые действия:
COM-порт (например, COM3).<GS> или код разбит на блоки — значит, сканер настроен верно.Если перевод в COM-порт по каким-то причинам невозможен, или ошибка сохраняется, нам нужно убедиться, что сканер передает символ GS. Рассмотрим, как это проверить.
В настройках драйвера 1С в поле "Суффикс" обычно стоит значение #13 (CR). Это символ возврата каретки, который сообщает программе об окончании ввода. Для маркировки этого достаточно, если сам код передается полностью. Однако, если сканер в режиме клавиатуры "склеивает" GTIN и серийник без разделителя, 1С не примет его.
Посмотрим на пример того, как должен выглядеть код в отладке:
// Правильный код с разделителем (символ ASCII 29 не виден, но он есть)
"010462186745000121T6rxB*ABoA"
// Ошибочный код (если сканер обрезает данные или не передает GS)
"000000462186745T6rxB*ABoAHa+F"
Чтобы сканер Honeywell передавал GS, можно попробовать считать управляющий штрихкод из инструкции, который называется "Enable GS1 DataMatrix" или "Data Formatting". Также убедитесь, что у сканера очищены все префиксы, которые он может добавлять по умолчанию (например, идентификаторы типа штрихкода).
В УТ 10.3 механизм работы с маркировкой реализован через специальную библиотеку. Проанализируем типичную ошибку пользователя: попытку сканировать код маркировки в поле поиска товара или просто в табличную часть документа.
Для корректной обработки табака в УТ 10.3 рекомендуется:
Если вы используете РМК (Рабочее место кассира), убедитесь, что в настройках РМК также выбран правильный профиль торгового оборудования и настроено рабочее место. Иногда рабочее место в справочнике Рабочие места нужно создать вручную и привязать к конкретному компьютеру, иначе настройки оборудования не будут "подхватываться" при открытии чека.
Подведем итоги нашего исследования. Если ваша УТ 10.3 "ругается" на формат сигарет после обновления:
Следуя этим шагам, вы обеспечите стабильную работу системы маркировки в "1С:Управление торговлей 10.3" и избавитесь от ошибок несоответствия формата штрихкода.