При подключении нового торгового оборудования, такого как сканер Honeywell MS5145 Eclipse, технические специалисты часто сталкиваются с ситуацией, когда устройство успешно проходит тесты, но ведет себя непредсказуемо в рабочем месте кассира (РМК). Одной из самых загадочных проблем является автоматическая подстановка странных префиксов или замена кода на строку вида 2_0000100000_. При этом сканирование нецифровых кодов может проходить корректно, а повторные сканирования в той же форме иногда "исправляют" ситуацию.
В данной статье мы подробно разберем причины такого поведения, проанализируем настройки программной части 1С и конфигурацию самого сканера, чтобы обеспечить стабильную работу оборудования.
Разберем ситуацию, когда при первом сканировании любого чисто цифрового штрихкода 1С выдает строку, начинающуюся на «2». Проанализируем внутренние механизмы платформы: в большинстве типовых конфигураций (УТ 11, Розница, ERP) символ «2» зарезервирован для внутренних штрихкодов и весового товара. Если система видит код, начинающийся с двойки, она перестает воспринимать его как обычный EAN-13 и начинает искать в нем код весового товара и вес по заданному шаблону.
Для исправления этой настройки выполним следующие шаги:
Выясним причину, по которой это проявляется только при первом сканировании. Часто это связано с кэшированием данных драйвером или особенностью инициализации формы РМК, которая при первом обращении к оборудованию более жестко применяет правила форматирования. Если в демо-базе или чистой базе настройки отличаются от рабочих, поведение сканера будет разным.
Рассмотрим техническую сторону работы Honeywell MS5145 в режиме HID (Keyboard Emulation). В этом режиме сканер имитирует очень быстрого оператора, набирающего цифры на клавиатуре. Проблема заключается в том, что интерфейс 1С на управляемых формах может не успевать обрабатывать поток символов, из-за чего часть данных теряется или интерпретируется неверно.
Чтобы стабилизировать ввод, рекомендуется добавить Intercharacter Delay (задержку между символами). Это делается путем считывания специальных управляющих штрихкодов из инструкции к сканеру (User Guide):
Это позволит драйверу NativeApi корректно "проглатывать" каждый символ, не создавая очереди событий, которая приводит к ошибкам парсинга.
Проанализируем настройки самого драйвера в 1С. Для корректной работы события ВнешнееСобытие программе необходимо четко понимать, где заканчивается штрихкод. Обычно для этого используется суффикс CR (код 13) или LF (код 10).
Посмотрим на типичную ошибку: в настройках 1С указан суффикс 13, но сам сканер "из коробки" может выдавать только код, либо код с другим суффиксом. Для Honeywell MS5145 настройку нужно выполнять строго последовательно:
'#', значит суффикс не передается.Enter Configuration -> Configurable Suffix -> 1 -> 3 -> Exit Configuration.Если работа через NativeApi в режиме клавиатуры продолжает вызывать сбои (как упоминалось в Сообщении 2 форума), наиболее профессиональным решением будет перевод сканера в режим USB Serial Emulation. Это полностью исключит влияние раскладки клавиатуры и фокуса ввода на результат сканирования.
Разберем этот процесс по шагам:
В этом режиме данные передаются напрямую в порт, и 1С перехватывает их мгновенно, что исключает появление лишних символов типа 2_..., вызванных "дребезгом" клавиатурного ввода.
Модель MS5145 Eclipse обладает уникальной кнопкой CodeGate. Если она активна, сканер может светить лазером, но передавать данные только при нажатии кнопки. Рассмотрим ситуацию: если пользователь случайно нажимает кнопку не в тот момент или сканер настроен на "автоматическое чтение с подтверждением", в буфер могут попасть обрывки предыдущих неудачных сканирований.
Проанализируем ситуацию с "чисто цифровыми" кодами. Если сканер настроен на слишком короткую минимальную длину кода, он может принять любой блик за штрихкод. Мы рекомендуем установить параметр Minimum Symbol Length на значение 4 или выше, чтобы отсечь мусорные данные, которые могут восприниматься системой как начало весового префикса.
Подводя итог, если вы видите странные цифры при сканировании в 1С:
Такой комплексный подход позволяет решить проблему не только с моделью Honeywell MS5145, но и с любым другим лазерным сканером, работающим в среде 1С:Предприятие 8.3.