Как настроить сканер штрихкода для маркировки сигарет в 1С:Управление торговлей 10.3 и устранить ошибку формата

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

С выходом обновлений 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 алгоритмы проверки более жесткие, чем в некоторых других конфигурациях, и требуют идеальной передачи структуры кода.

Решение 1: Перевод сканера в режим эмуляции COM-порта

Первым делом рассмотрим самый надежный способ — перевод сканера в режим USB Serial (эмуляция COM-порта). Это позволит 1С общаться со сканером напрямую через драйвер, минуя буфер клавиатуры и региональные раскладки Windows.

Выполним следующие шаги для сканера Honeywell 1450g:

  1. Найдем инструкцию к сканеру (User Guide). Нам нужна страница с настройками интерфейса (обычно раздел USB Product Specific).
  2. Считаем штрихкод Standard Product Defaults, чтобы сбросить устройство к заводским настройкам.
  3. Считаем штрихкод USB Serial. После этого Windows обнаружит новое устройство.
  4. Установим соответствующий драйвер от производителя (Honeywell JPOS/USB Serial Driver), если система не определила его автоматически. В "Диспетчере устройств" должен появиться раздел Порты (COM и LPT) с новым виртуальным COM-портом (например, COM3).

Важный нюанс: В режиме COM-порта сканер перестанет "писать" в блокнот, и это нормально. Теперь данные будут попадать сразу в обработчик события 1С.

Решение 2: Настройка торгового оборудования в 1С УТ 10.3

После подготовки "железа" перейдем к настройке программы. Разберем, как правильно подключить оборудование в конфигурации на обычных формах.

Проанализируем необходимые действия:

  1. Перейдем в меню Сервис — Настройка торгового оборудования.
  2. В некоторых релизах УТ 10.3 важно использовать механизм через константу. Проверим: Настройки параметров учета — Торговое оборудование. Установим флаг "Использовать подключаемое оборудование".
  3. Откроем "Подключение и настройка оборудования (тонкий клиент)" (даже если работаем в обычном приложении, этот интерфейс часто используется для новых драйверов).
  4. Создадим новый экземпляр оборудования. Выберем тип "Сканеры штрихкода" и драйвер "1С:Сканер штрихкода (NativeApi)". Использование именно Native-драйвера критично для корректной работы с GS1-кодами.
  5. В параметрах подключения выберем наш COM-порт (например, COM3).
  6. Нажмем кнопку "Тест устройства". Сканируем пачку. В окне теста мы должны увидеть код. Обратите внимание: если в строке присутствуют символы типа <GS> или код разбит на блоки — значит, сканер настроен верно.

Решение 3: Работа со спецсимволами и суффиксами

Если перевод в COM-порт по каким-то причинам невозможен, или ошибка сохраняется, нам нужно убедиться, что сканер передает символ GS. Рассмотрим, как это проверить.

В настройках драйвера 1С в поле "Суффикс" обычно стоит значение #13 (CR). Это символ возврата каретки, который сообщает программе об окончании ввода. Для маркировки этого достаточно, если сам код передается полностью. Однако, если сканер в режиме клавиатуры "склеивает" GTIN и серийник без разделителя, 1С не примет его.

Посмотрим на пример того, как должен выглядеть код в отладке:


// Правильный код с разделителем (символ ASCII 29 не виден, но он есть)
"010462186745000121T6rxB*ABoA"
// Ошибочный код (если сканер обрезает данные или не передает GS)
"000000462186745T6rxB*ABoAHa+F"

Чтобы сканер Honeywell передавал GS, можно попробовать считать управляющий штрихкод из инструкции, который называется "Enable GS1 DataMatrix" или "Data Formatting". Также убедитесь, что у сканера очищены все префиксы, которые он может добавлять по умолчанию (например, идентификаторы типа штрихкода).

Решение 4: Использование специализированных форм ввода

В УТ 10.3 механизм работы с маркировкой реализован через специальную библиотеку. Проанализируем типичную ошибку пользователя: попытку сканировать код маркировки в поле поиска товара или просто в табличную часть документа.

Для корректной обработки табака в УТ 10.3 рекомендуется:

Если вы используете РМК (Рабочее место кассира), убедитесь, что в настройках РМК также выбран правильный профиль торгового оборудования и настроено рабочее место. Иногда рабочее место в справочнике Рабочие места нужно создать вручную и привязать к конкретному компьютеру, иначе настройки оборудования не будут "подхватываться" при открытии чека.

Итоги и рекомендации

Подведем итоги нашего исследования. Если ваша УТ 10.3 "ругается" на формат сигарет после обновления:

  1. Сбросьте сканер к заводским настройкам и переведите его в режим COM-порта (USB Serial).
  2. Используйте NativeApi драйвер от 1С версии 10.x.
  3. Убедитесь, что в 1С настроено Рабочее место и оборудование привязано к нему.
  4. Проверьте раскладку клавиатуры (если остались в режиме клавиатуры) — она должна быть английской в момент сканирования, иначе буквы в коде заменятся на кириллицу.
  5. При возникновении проблем используйте "Тест устройства" в настройках оборудования, чтобы увидеть "сырые" данные, которые приходят со сканера.

Следуя этим шагам, вы обеспечите стабильную работу системы маркировки в "1С:Управление торговлей 10.3" и избавитесь от ошибок несоответствия формата штрихкода.

← На главную