Проблема, при которой сканер штрихкода Honeywell (Metrologic) MS9540 Voyager начинает выдавать некорректные символы (чаще всего букву «я») вместо ожидаемых цифр, является классической при настройке торгового оборудования. В этой ситуации устройство либо неверно распознает тип штрихкода, либо передает данные в неверной кодировке через интерфейс эмуляции клавиатуры. Рассмотрим подробно, как продиагностировать и устранить эту неисправность, вернув сканеру работоспособность в среде 1С.
Прежде всего, проанализируем, почему появляется именно буква «я». В кодировке Windows-1251 символ «я» имеет десятичный код 255. Если сканер настроен на режим USB HID (эмуляция клавиатуры), то любые данные, передаваемые им, проходят через драйвер клавиатуры операционной системы. Если в момент сканирования активна русская раскладка, а сканер передает определенные служебные префиксы или символы, ОС может интерпретировать их некорректно. Однако, если проблема наблюдается и в режиме эмуляции COM-порта, это свидетельствует о глубоком сбое настроек или использовании неподходящего драйвера.
Первым шагом в любой непонятной ситуации со сканером должна быть очистка внутренней памяти устройства от старых или ошибочных конфигураций. Разберем этот процесс по шагам:
EAN-13 в текстовый документ (например, Блокнот). Если данные начали отображаться корректно (в виде цифр), значит, проблема была в накопленных настройках.Recall Defaults не помог, воспользуйтесь более жестким методом — Load Integrated Full Defaults. Это удалит все пользовательские таблицы форматирования данных, которые могли быть ошибочно записаны в устройство.Для стабильной работы с 1С рекомендуется использовать режим USB Serial Emulation, а не режим клавиатуры. Это позволяет программе 1С перехватывать данные напрямую через драйвер, не обращая внимания на раскладку клавиатуры и фокус в текстовых полях. Выполним следующие действия:
Enable USB Serial Emulation).Honeywell (Metrologic) USB Serial (COMx), где x — номер порта.Иногда 1С «не видит» штрихкод, потому что сканер не передает сигнал завершения строки. Если в тестовом режиме данные приходят, а в документе 1С — нет, проверим настройки суффикса. Разберем процедуру:
CR (возврат каретки, код 013) и LF (перевод строки, код 010).Enter, что необходимо для срабатывания события в 1С.Если проблема с буквой «я» возникает только при работе в терминальной сессии, проанализируем настройки проброса портов. При использовании RDP данные могут искажаться из-за задержек сети. Посмотрим на возможные решения:
1С:Сканеры штрихкода (COM).После того как сканер настроен физически, необходимо правильно подключить его в интерфейсе 1С. Рассмотрим алгоритм для современных конфигураций на управляемых формах:
Администрирование — Подключаемое оборудование.Сканеры штрихкода и создайте новый экземпляр.Тест устройства. Если при сканировании в окне теста появляется корректный номер штрихкода без лишних символов, значит, задача решена.Важный нюанс: Если в тесте 1С вы все равно видите лишние буквы перед кодом (например, A12345678), проверьте настройку Code ID. Некоторые сканеры по умолчанию передают идентификатор типа штрихкода. Его нужно отключить, отсканировав код Disable Code ID Transmission.
Проанализировав все вышеперечисленные шаги, мы можем сделать вывод: буква «я» — это лишь симптом несогласованности кодировок или режимов работы. Последовательный сброс, перевод в режим COM-порта и установка актуальных драйверов NativeApi полностью устраняют данную проблему.