Почему сканер штрихкода Honeywell MS5145 передает неверные данные в 1С и как это исправить?

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

При подключении нового торгового оборудования, такого как сканер Honeywell MS5145 Eclipse, технические специалисты часто сталкиваются с ситуацией, когда устройство успешно проходит тесты, но ведет себя непредсказуемо в рабочем месте кассира (РМК). Одной из самых загадочных проблем является автоматическая подстановка странных префиксов или замена кода на строку вида 2_0000100000_. При этом сканирование нецифровых кодов может проходить корректно, а повторные сканирования в той же форме иногда "исправляют" ситуацию.

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

Причина №1: Конфликт префиксов весового товара в 1С

Разберем ситуацию, когда при первом сканировании любого чисто цифрового штрихкода 1С выдает строку, начинающуюся на «2». Проанализируем внутренние механизмы платформы: в большинстве типовых конфигураций (УТ 11, Розница, ERP) символ «2» зарезервирован для внутренних штрихкодов и весового товара. Если система видит код, начинающийся с двойки, она перестает воспринимать его как обычный EAN-13 и начинает искать в нем код весового товара и вес по заданному шаблону.

Для исправления этой настройки выполним следующие шаги:

  1. Перейдем в раздел Администрирование.
  2. Выберем пункт Номенклатура.
  3. Найдем подраздел Настройки создания и перейдем в Шаблоны префиксов внутренних штрихкодов.
  4. Проверим список настроенных префиксов. Если там указан код «2» (или диапазон, начинающийся на «2») как весовой, а ваш товар имеет штрихкоды поставщика на эту же цифру, возникнет конфликт.

Выясним причину, по которой это проявляется только при первом сканировании. Часто это связано с кэшированием данных драйвером или особенностью инициализации формы РМК, которая при первом обращении к оборудованию более жестко применяет правила форматирования. Если в демо-базе или чистой базе настройки отличаются от рабочих, поведение сканера будет разным.

Причина №2: Скорость передачи данных в режиме эмуляции клавиатуры

Рассмотрим техническую сторону работы Honeywell MS5145 в режиме HID (Keyboard Emulation). В этом режиме сканер имитирует очень быстрого оператора, набирающего цифры на клавиатуре. Проблема заключается в том, что интерфейс 1С на управляемых формах может не успевать обрабатывать поток символов, из-за чего часть данных теряется или интерпретируется неверно.

Чтобы стабилизировать ввод, рекомендуется добавить Intercharacter Delay (задержку между символами). Это делается путем считывания специальных управляющих штрихкодов из инструкции к сканеру (User Guide):

Это позволит драйверу NativeApi корректно "проглатывать" каждый символ, не создавая очереди событий, которая приводит к ошибкам парсинга.

Причина №3: Некорректная настройка суффикса в драйвере NativeApi

Проанализируем настройки самого драйвера в 1С. Для корректной работы события ВнешнееСобытие программе необходимо четко понимать, где заканчивается штрихкод. Обычно для этого используется суффикс CR (код 13) или LF (код 10).

Посмотрим на типичную ошибку: в настройках 1С указан суффикс 13, но сам сканер "из коробки" может выдавать только код, либо код с другим суффиксом. Для Honeywell MS5145 настройку нужно выполнять строго последовательно:

  1. Зайдите в настройки подключаемого оборудования в 1С.
  2. Нажмите кнопку Тест устройства.
  3. Выполните сканирование. Если в окне теста вы видите штрихкод, а в конце нет символа переноса строки или спецсимвола '#', значит суффикс не передается.
  4. Возьмите инструкцию и запрограммируйте сканер на передачу суффикса CR. Обычно это последовательность: Enter Configuration -> Configurable Suffix -> 1 -> 3 -> Exit Configuration.

Причина №4: Переход на эмуляцию COM-порта (наиболее надежный метод)

Если работа через NativeApi в режиме клавиатуры продолжает вызывать сбои (как упоминалось в Сообщении 2 форума), наиболее профессиональным решением будет перевод сканера в режим USB Serial Emulation. Это полностью исключит влияние раскладки клавиатуры и фокуса ввода на результат сканирования.

Разберем этот процесс по шагам:

  1. Скачайте с официального сайта Honeywell драйвер HSM USB Serial Driver и установите его в операционной системе.
  2. Переведите сканер в режим COM-порта, считав из инструкции штрихкод Enable Uni-Directional USB Serial.
  3. В диспетчере устройств Windows появится новый COM-порт (например, COM3).
  4. В 1С в настройках оборудования измените драйвер на 1С:Сканеры штрихкода (COM) и укажите номер созданного порта.

В этом режиме данные передаются напрямую в порт, и 1С перехватывает их мгновенно, что исключает появление лишних символов типа 2_..., вызванных "дребезгом" клавиатурного ввода.

Причина №5: Особенности функции CodeGate

Модель MS5145 Eclipse обладает уникальной кнопкой CodeGate. Если она активна, сканер может светить лазером, но передавать данные только при нажатии кнопки. Рассмотрим ситуацию: если пользователь случайно нажимает кнопку не в тот момент или сканер настроен на "автоматическое чтение с подтверждением", в буфер могут попасть обрывки предыдущих неудачных сканирований.

Проанализируем ситуацию с "чисто цифровыми" кодами. Если сканер настроен на слишком короткую минимальную длину кода, он может принять любой блик за штрихкод. Мы рекомендуем установить параметр Minimum Symbol Length на значение 4 или выше, чтобы отсечь мусорные данные, которые могут восприниматься системой как начало весового префикса.

Резюме по настройке

Подводя итог, если вы видите странные цифры при сканировании в 1С:

Такой комплексный подход позволяет решить проблему не только с моделью Honeywell MS5145, но и с любым другим лазерным сканером, работающим в среде 1С:Предприятие 8.3.

← На главную