При настройке торгового оборудования для работы с маркировкой и акцизным алкоголем (ЕГАИС) часто возникает ситуация, когда сканер штрихкодов Honeywell Voyager 1450g (или 1400g) успешно проходит тест в настройках подключаемого оборудования 1С, но данные в документы и форму рабочего места кассира (РМК) не поступают. Разберем подробно причины такого поведения оборудования и рассмотрим эффективные способы решения этой проблемы.
В стандартном режиме работы по USB сканер эмулирует обычную клавиатуру (USB HID). При сканировании кода в этом режиме символы передаются в активное поле ввода. В 1С:Рознице это приводит к тому, что оператору приходится каждый раз нажимать комбинацию клавиш (например, Alt+F7) для вызова окна ввода штрихкода. Чтобы избавиться от лишних действий, сканер переводят в режим эмуляции COM-порта или режим HID POS, позволяющие платформе 1С перехватывать внешнее событие напрямую.
Однако при переходе на виртуальный COM-порт пользователи сталкиваются со следующими сложностями:
#13 / CR или значение None), внешняя компонента 1С не получает сигнал о завершении чтения и не генерирует внешнее событие.COM1 до COM9. Если Windows назначила порт с более высоким номером (например, COM12), сканер пройдет тест, но считывание в формах работать не будет.Рассмотрим по шагам правильный алгоритм настройки сканера в режиме виртуального COM-порта:
COM1–COM9.13 (перевод каретки CR). Если в самом сканере суффикс отменен, очистите поле суффикса до значения (None).Проанализируем альтернативный метод подключения, который избавляет от необходимости устанавливать сторонние драйверы виртуального COM-порта в операционную систему.
Сканеры Honeywell поддерживают спец-режим USB HID POS. При его активации сканер перестает имитировать нажатия клавиш клавиатуры и начинает передавать данные через специальный интерфейс HID POS, генерируя внешнее событие в 1С.
Клавиатура или HID-устройство.Главное преимущество этого способа — полная независимость от текущей раскладки клавиатуры Windows (русская/английская) и отсутствие необходимости подбирать COM-драйверы под конкретную версию ОС.
Разберем ситуацию, когда при сканировании двумерных кодов DataMatrix или акцизных марок ЕГАИС в 1С появляется критическая ошибка Индекс находится за границами массива.
Эта ошибка возникает на уровне кода конфигурации 1С при попытке разобрать прочитанный штрихкод на составляющие элементы. Алгоритмы обработки марок завязаны на строго определенную длину строки и наличие спецсимволов-разделителей (Group Separator / GS, код ASCII 29).
Посмотрим, как исправить эту проблему:
GS (ASCII 29) для кодов DataMatrix.CTRL+X Mode) и задайте межсимвольную задержку (Inter-character Delay) в районе 10–20 мс, чтобы буфер платформы 1С успевал принимать длинные строки без потери символов.