Подключение сканера штрихкода — стандартная задача, однако модель CipherLab 1070 часто вызывает вопросы при переходе из режима эмуляции клавиатуры (HID) в режим виртуального COM-порта (VCOM). Основная сложность заключается в том, что сканер физически считывает код (издает характерный звуковой сигнал), но данные не доходят до учетной системы. В этой статье мы подробно разберем, почему работа через COM-порт предпочтительнее, как правильно установить драйверы и настроить систему для корректного приема данных.
Проанализируем ситуацию: в режиме клавиатуры сканер просто «печатает» символы туда, где установлен курсор. Это создает массу неудобств в 1С (например, в 1С:Управление торговлей 11 или 1С:Розница 2.x):
F7 для вызова окна поиска, что замедляет работу кассира.В режиме COM-порта 1С перехватывает «внешнее событие» от сканера независимо от того, где находится фокус и какая раскладка включена. Товар подбирается в корзину мгновенно и без лишних диалоговых окон.
Выясним причину, по которой сканер может «пикать», но не передавать данные. Чаще всего это связано с тем, что в системе установлен некорректный или устаревший драйвер виртуального порта. Сканер CipherLab 1070 базируется на чипе Silicon Labs CP210x.
Для корректной работы выполним следующие действия:
CP210x USB to UART Bridge VCP Drivers. Важно использовать драйверы именно от производителя чипа, так как стандартные драйверы Windows могут работать нестабильно.Silicon Labs CP210x USB to UART Bridge (COMx).Рассмотрим проблему, когда после перезагрузки компьютера 1С перестает видеть сканер. Это часто связано с агрессивным энергосбережением Windows. Выполним настройку:
В Диспетчере устройств найдем USB-корневой концентратор, к которому подключен сканер. В свойствах на вкладке «Управление электропитанием» снимем галочку «Разрешить отключение этого устройства для экономии энергии». Также рекомендуется отключить «Быстрый запуск» в настройках электропитания панели управления Windows.
Разберем процесс подключения в самой программе 1С. В современных конфигурациях на управляемых формах (УТ 11, Розница 2, БП 3.0) лучше использовать библиотеку подключаемого оборудования (БПО).
8.1.6.1. Как показывает практика, старые версии (например, от АТОЛ) могут конфликтовать с новыми релизами платформы 8.3.9600, биты данных — 8, стоповые биты — 1.Нажмем кнопку «Тест устройства». Если при сканировании в окне теста появляется строка со штрихкодом — настройка выполнена верно. Если же окно остается пустым, хотя сканер издает сигнал, проанализируем настройки суффикса.
Для работы в 1С через COM-порт обязательным является наличие суффикса CR (возврат каретки, код 13). Без него драйвер 1С не поймет, что передача штрихкода завершена, и событие ВнешнееСобытие не будет сгенерировано. Настроить суффикс можно двумя способами:
0D (в шестнадцатеричной системе).Если вы все же решили остаться в режиме эмуляции клавиатуры, но страдаете от зависимости от раскладки (русский/английский), воспользуемся хитростью. В настройках CipherLab 1070 есть режим Universal Keyboard (или Alt-mode).
При его активации сканер передает каждый символ штрихкода как комбинацию клавиш Alt + [код символа на цифровой клавиатуре]. Для операционной системы это выглядит как ввод универсальных кодов, которые преобразуются в цифры независимо от того, какой язык выбран в языковой панели. Это исключает появление «кракозябр» вместо цифр.
Если ваша 1С запущена на сервере через терминальный доступ, подключение в режиме COM-порта становится еще более актуальным. Посмотрим на алгоритм проброса порта:
COMx (перенаправлено).Важный нюанс: при работе через RDP в режиме эмуляции клавиатуры символы часто приходят с задержкой или теряются. Режим COM-порта полностью решает эту проблему за счет буферизации данных драйвером.
Для разработчиков, которые хотят убедиться, что событие доходит до системы, напомним типовой механизм обработки данных в модуле формы:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "BarCodeScaner" Тогда
// Проанализируем полученные данные
Штрихкод = СокрЛП(Данные);
ОбработатьШтрихкод(Штрихкод);
КонецЕсли;
КонецПроцедуры
Использование современных методов БПО позволяет избежать написания такого кода вручную, так как система автоматически вызывает процедуру ОбработатьШтрихкод в соответствующих модулях.
Подводя итог: если ваш CipherLab 1070 «пикает, но не работает», первым делом проверьте версию драйвера Silicon Labs в системе и версию NativeApi в 1С. Переход на COM-порт — это не «геморрой», как выразились некоторые участники форума, а профессиональный стандарт настройки торгового оборудования, обеспечивающий стабильность и скорость работы кассира.