Что делать, если сканер Honeywell MS9540 выдает букву «я» вместо цифр штрихкода?

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

Проблема, при которой сканер штрихкода Honeywell (Metrologic) MS9540 Voyager начинает выдавать некорректные символы (чаще всего букву «я») вместо ожидаемых цифр, является классической при настройке торгового оборудования. В этой ситуации устройство либо неверно распознает тип штрихкода, либо передает данные в неверной кодировке через интерфейс эмуляции клавиатуры. Рассмотрим подробно, как продиагностировать и устранить эту неисправность, вернув сканеру работоспособность в среде 1С.

Выясняем причину появления символа «я»

Прежде всего, проанализируем, почему появляется именно буква «я». В кодировке Windows-1251 символ «я» имеет десятичный код 255. Если сканер настроен на режим USB HID (эмуляция клавиатуры), то любые данные, передаваемые им, проходят через драйвер клавиатуры операционной системы. Если в момент сканирования активна русская раскладка, а сканер передает определенные служебные префиксы или символы, ОС может интерпретировать их некорректно. Однако, если проблема наблюдается и в режиме эмуляции COM-порта, это свидетельствует о глубоком сбое настроек или использовании неподходящего драйвера.

Решение 1: Полный сброс к заводским настройкам (Recall Defaults)

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

  1. Найдите в руководстве по программированию штрихкод Recall Defaults (Загрузка стандартных параметров).
  2. Отсканируйте его. Сканер должен издать звуковой сигнал, подтверждающий сброс.
  3. Попробуйте отсканировать обычный штрихкод EAN-13 в текстовый документ (например, Блокнот). Если данные начали отображаться корректно (в виде цифр), значит, проблема была в накопленных настройках.
  4. Если сброс Recall Defaults не помог, воспользуйтесь более жестким методом — Load Integrated Full Defaults. Это удалит все пользовательские таблицы форматирования данных, которые могли быть ошибочно записаны в устройство.

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

Для стабильной работы с 1С рекомендуется использовать режим USB Serial Emulation, а не режим клавиатуры. Это позволяет программе 1С перехватывать данные напрямую через драйвер, не обращая внимания на раскладку клавиатуры и фокус в текстовых полях. Выполним следующие действия:

  1. Убедитесь, что на компьютере установлены драйверы Honeywell HSM USB Serial Driver.
  2. Отсканируйте управляющий штрихкод Enable Uni-Directional USB Serial Emulation Mode (в некоторых инструкциях он называется Enable USB Serial Emulation).
  3. После этого устройство должно определиться в диспетчере устройств Windows как Honeywell (Metrologic) USB Serial (COMx), где x — номер порта.
  4. Проанализируем ситуацию: если номер порта появился, значит, железная часть настроена верно.

Решение 3: Настройка суффиксов и префиксов

Иногда 1С «не видит» штрихкод, потому что сканер не передает сигнал завершения строки. Если в тестовом режиме данные приходят, а в документе 1С — нет, проверим настройки суффикса. Разберем процедуру:

  1. Войдите в режим программирования, отсканировав Enter/Exit Configuration Mode.
  2. Отсканируйте штрихкод Configurable Suffix 1.
  3. Затем выберите код, соответствующий CR (возврат каретки, код 013) и LF (перевод строки, код 010).
  4. Завершите программирование. Теперь после каждого штрихкода сканер будет имитировать нажатие клавиши Enter, что необходимо для срабатывания события в 1С.

Решение 4: Проблема работы через RDP (удаленный рабочий стол)

Если проблема с буквой «я» возникает только при работе в терминальной сессии, проанализируем настройки проброса портов. При использовании RDP данные могут искажаться из-за задержек сети. Посмотрим на возможные решения:

  1. Задержка между символами: Найдите штрихкод Intercharacter Delay и установите значение 10–20 мс. Это замедлит поток данных, давая возможность удаленному серверу корректно обработать каждый символ.
  2. Смена способа подключения: Если эмуляция клавиатуры через RDP продолжает выдавать «я», необходимо переключиться на проброс реального COM-порта. В настройках RDP-клиента на вкладке «Локальные ресурсы» отметьте галочку «Порты». В 1С на сервере настройте сканер как 1С:Сканеры штрихкода (COM).

Решение 5: Настройка драйвера в самой 1С

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

  1. Перейдите в раздел Администрирование — Подключаемое оборудование.
  2. Выберите тип оборудования Сканеры штрихкода и создайте новый экземпляр.
  3. В качестве драйвера выберите 1С:Сканеры штрихкода (NativeApi). Это наиболее современный и стабильный драйвер.
  4. В параметрах подключения укажите номер COM-порта, который мы получили на этапе настройки эмуляции.
  5. Нажмите кнопку Тест устройства. Если при сканировании в окне теста появляется корректный номер штрихкода без лишних символов, значит, задача решена.

Важный нюанс: Если в тесте 1С вы все равно видите лишние буквы перед кодом (например, A12345678), проверьте настройку Code ID. Некоторые сканеры по умолчанию передают идентификатор типа штрихкода. Его нужно отключить, отсканировав код Disable Code ID Transmission.

Проанализировав все вышеперечисленные шаги, мы можем сделать вывод: буква «я» — это лишь симптом несогласованности кодировок или режимов работы. Последовательный сброс, перевод в режим COM-порта и установка актуальных драйверов NativeApi полностью устраняют данную проблему.

← На главную