При переходе с устаревших версий «1С:Розница» (например, с 2.2 на 2.3) многие технические специалисты сталкиваются с неприятным сюрпризом: старый добрый драйвер 1С:Сканеры штрихкода (COM) оказывается удаленным из конфигурации. Ему на смену пришел современный 1С:Сканеры штрихкода (Native API). Однако на практике новый драйвер часто ведет себя нестабильно, особенно при работе со сканерами Honeywell в режиме эмуляции клавиатуры. Типичный симптом — при быстром сканировании или даже в обычном темпе штрихкод «разрывается», в 1С попадает только его часть, и программа вместо добавления товара открывает окно выбора номенклатуры.
В этой статье мы подробно разберем, почему это происходит, проанализируем механизмы работы Native API и рассмотрим пошаговые инструкции по исправлению данной ситуации.
Рассмотрим ситуацию глубже. В режиме эмуляции клавиатуры (HID-Keyboard) сканер посылает символы штрихкода так, будто их очень быстро набирает человек. Драйвер 1С должен отличить этот поток ввода от обычного набора на клавиатуре. Для этого используется параметр «Таймаут клавиатуры». Если интервал между пришедшими символами меньше заданного таймаута, драйвер считает, что данные идут от сканера, и «собирает» их в единую строку.
Проблема Native API (особенно версии 10 и выше) заключается в высокой чувствительности к задержкам системы. Если процессор занят обработкой формы или сетевой пакет (в случае RDP) задержался, интервал между символами увеличивается. Драйвер «решает», что сканирование завершено, и пробрасывает в 1С только ту часть кода, которую успел получить. Остальная часть кода прилетает следом и либо теряется, либо воспринимается как ввод с клавиатуры, открывая случайные окна поиска.
Самый надежный способ избавиться от проблем с раскладкой клавиатуры и скоростью передачи — это перевести сканер (в нашем примере Honeywell 1450g) в режим USB-COM. В этом режиме данные передаются не как нажатия клавиш, а как прямой поток данных в порт, который драйвер 1С перехватывает гарантированно целиком.
Проанализируем шаги для выполнения этой настройки:
USB Serial (иногда он обозначается как TERMID 130). Считайте его сканером. Устройство перезагрузится.Honeywell HSM USB Serial Driver.COM3), который появился в системе. Теперь драйвер 1С будет использовать прямое соединение, и проблема с «разрывом» строк исчезнет.Если по каким-то причинам вы обязаны остаться в режиме эмуляции клавиатуры (например, из-за ограничений терминального сервера), попробуем оптимизировать работу текущего драйвера. Разберем, как правильно поиграться с настройками.
По умолчанию в 1С параметр Таймаут может стоять в значении 75 мс. Проанализируем ситуацию: если значение слишком мало — штрихкод рвется. Если слишком велико — клавиатура начинает «тормозить», так как система ждет окончания таймаута после каждого нажатия клавиши.
Попробуйте установить значение в диапазоне 100–120 мс. Это «золотая середина» для большинства офисных ПК. Также крайне важно убедиться, что в настройках сканера на уровне самой «железки» настроен Суффикс.
// В настройках драйвера 1С это выглядит примерно так:
Параметры.Суффикс = "13"; // Код клавиши Enter (CR)
Параметры.Таймаут = 100;
Наличие суффикса CR (Carriage Return) или LF (Line Feed) позволяет драйверу мгновенно понять, что передача кода завершена, не дожидаясь истечения таймаута. Это значительно ускоряет работу и снижает вероятность ошибок при быстром сканировании.
Иногда проблема кроется не в 1С, а в том, что сканер «выплевывает» данные быстрее, чем Windows успевает их обработать в буфере клавиатуры. Рассмотрим, как замедлить сам сканер, чтобы система успевала «переварить» каждый символ штрихкода.
В руководстве Honeywell найдите раздел Intercharacter Delay. Установите небольшую задержку, например, 5 или 10 миллисекунд. Это добавит крошечные паузы между передачей каждого символа штрихкода. Визуально для продавца скорость не изменится, но для драйвера 1С поток станет гораздо более стабильным и предсказуемым.
Если вы работаете с маркировкой (Честный Знак), то используете 2D-коды DataMatrix. Они длиннее обычных EAN-13 и часто содержат спецсимволы. В режиме эмуляции клавиатуры русская раскладка в ОС может превратить штрихкод в «тыкву» (символы заменятся на кириллицу).
Рассмотрим рекомендации для этого случая:
GS1 кодов.F7 или специфический непечатный символ), чтобы драйвер 1С гарантированно переключался в режим приема данных от торгового оборудования в момент начала сканирования.Проанализировав все возможные варианты, мы приходим к выводу, что наиболее стабильным решением для «Розницы 2.3» является отказ от эмуляции клавиатуры в пользу USB-COM порта. Это избавляет систему от зависимости от таймаутов, раскладки клавиатуры и загруженности процессора. Если же переход на COM невозможен, сосредоточьтесь на установке корректного суффикса CR и увеличении межсимвольной задержки в настройках самого сканера Honeywell.
Помните, что драйверы Native API версии 10.х требуют более тщательной настройки, чем старые компоненты. Следуя нашим шагам, вы обеспечите быструю и безошибочную работу кассиров даже при очень высокой интенсивности продаж.