При настройке сканеров штрихкодов, таких как Honeywell Voyager XP 1472g, для работы с системой «Честный ЗНАК» в 1С часто возникает специфическая проблема. Сканер успешно считывает код маркировки DataMatrix, однако фискальный регистратор (ККТ) отказывается его принимать (в этом поможет подключение касс с поддержкой маркировки в 1С), что делает невозможным разрешительный режим на кассах. Проанализируем ситуацию подробнее: при проверке отсканированной строки выясняется, что в ней отсутствует первый служебный символ, а именно [FNC1] (232-й символ ASCII). Разберем по шагам, почему это происходит и как правильно настроить оборудование для корректной работы.
Для начала выясним причину потери символа. В стандарте GS1 самый первый символ [FNC1] не является частью полезных данных. Это исключительно внутренний маркер (алгоритм декодирования), который сообщает сканеру, что перед ним находится не обычный DataMatrix, а код в формате GS1. По умолчанию сканеры Honeywell вырезают этот стартовый символ, хотя в некоторых задачах, таких как выгрузка полных кодов маркировки в csv, требуется сохранение всех спецсимволов.
Рассмотрим пример того, как выглядит строка кода без нужных символов (неправильная) и с ними (правильная), для получения которой может понадобиться декодер Base64-кодов маркировки:
// Неправильная строка (как передает ненастроенный сканер):
0103286340509817215FwprNM863L1i91EE0692H0iDrR0VzYCSL8UKVKJeDO2hRVnRH70HVpbvKnWpzl8=
// Правильная строка со служебными символами:
[FNC1]0103286340509817215FwprNM863L1i[GS]91EE06[GS]92H0iDrR0VzYCSL8UKVKJeDO2hRVnRH70HVpbvKnWpzl8=[GS][CR]
Попытки заставить сканер передать стартовый [FNC1] через внутренний редактор форматирования обычно не приносят результата, так как функционал сканера не имеет доступа к этому техническому маркеру. Посмотрим на правильные методы решения этой задачи и комплексное решение для Честного Знака — для этого есть комплексная автоматизация работы с кодами маркировки в 1С.
Вместо того чтобы пытаться передать [FNC1], стандартизированным подходом является использование префикса AIM. Разберем этот метод:
]d2 (для GS1 DataMatrix).Проанализируем подключение оборудования. Если сканер подключен в режиме эмуляции клавиатуры (USB HID), передача непечатных спецсимволов, таких как [GS] (символ 29 ASCII), будет происходить с ошибками или они будут полностью теряться.
Важно: Для работы с маркировкой сканер необходимо перевести в режим эмуляции COM-порта (USB Serial). Для этого потребуется отсканировать соответствующий управляющий штрихкод из официального мануала (режим USB Serial) и установить драйверы виртуального COM-порта от Honeywell на ПК. После этого в 1С сканер настраивается именно как COM-устройство.
Если по каким-то причинам перевод в COM-порт невозможен, рассмотрим использование клавиатурного режима с включенной функцией ALT Mode. В этом режиме все спецсимволы передаются через эмуляцию нажатия клавиши Alt и ввода цифрового кода символа на цифровом блоке клавиатуры (например, Alt + 029 для символа [GS]).
Обратите внимание на критический нюанс: для корректной отработки этого режима на компьютере обязательно должен быть включен NumLock. Если сканер подключен к ноутбуку без выделенного цифрового блока, может потребоваться подключение внешней клавиатуры или включение эмуляции NumLock в BIOS, иначе символы-разделители потеряются.
Если у вас нет под рукой печатной инструкции с настроечными кодами, рассмотрим альтернативные варианты конфигурации:
Совет: Если сканер ведет себя нестабильно при смене режимов (например, не принимает новые настройки), попробуйте удалить устройство из «Диспетчера устройств» Windows, отключить его физически, затем снова подключить и первым делом отсканировать штрихкод сброса к заводским настройкам (Defalut). После этого повторите настройку для маркировки с чистого листа.