При организации рабочих мест для складов или магазинов часто возникает ситуация, когда мы подключаем беспроводной сканер штрихкодов (например, модели линейки Mercury или Mertech) по USB, и система распознает его исключительно как обычную клавиатуру. Ситуация усложняется, если работа с базой 1С ведется через удаленный рабочий стол (RDP). По умолчанию сканер просто вставляет цифры в активное поле, а в 1С для поиска номенклатуры требуется вызов специального окна штрихкода (часто по нажатию клавиши F7).
Давайте подробно разберем, почему возникает такая проблема, проанализируем доступные варианты решения и по шагам настроим наше торговое оборудование для корректной работы с платформой 1С без лишних ручных действий пользователя.
Когда сканер работает в режиме USB-HID (эмуляция клавиатуры), он просто очень быстро «нажимает» клавиши с цифрами штрихкода. Если мы работаем через RDP, этот поток нажатий передается по сети. В результате мы можем столкнуться со следующими проблемами:
F7 для активации поиска.Давайте посмотрим, как мы можем решить эту задачу тремя разными способами, начиная от аппаратной настройки самого сканера и заканчивая правильной конфигурацией драйверов в 1С.
Если производитель или техническая поддержка утверждают, что устройство может работать только как клавиатура, мы можем заставить сам сканер нажимать клавишу F7 перед отправкой цифр штрихкода. Важно понимать: сканер должен нажать эту кнопку аппаратно, настройки внутри 1С для этого недостаточны.
Для этого нам понадобится полная инструкция по программированию (часто она называется расширенным руководством пользователя или таблицей штрихкодов для настройки). Краткой инструкции из коробки обычно не хватает. Выполним следующие шаги:
Enter Setup. Отсканируем его.Set Custom Prefix (Установить пользовательский префикс).F7 согласно таблице ASCII, которая приведена в конце инструкции. Отсканируем соответствующие числовые штрихкоды.Confirm или Exit Setup.Теперь проанализируем результат: при каждом сканировании устройство будет сначала посылать сигнал нажатия клавиши F7, открывая окно поиска в 1С, затем быстро вводить сам штрихкод и (если настроен суффикс) нажимать Enter для подтверждения.
Рассмотрим более надежный вариант. Несмотря на то что по умолчанию устройство определяется как клавиатура, большинство современных сканеров (включая линейку Mercury CL) поддерживают программное изменение интерфейса на виртуальный COM-порт.
Для работы через RDP использование COM-порта является стандартом, так как этот порт легко "пробросить" в удаленную сессию, и платформа 1С сможет получать данные напрямую через ВнешнееСобытие, минуя любые проблемы с раскладкой клавиатуры или пропущенными символами.
Разберем по шагам, как это реализовать:
USB-COM или Virtual COM. Устройство перезагрузится, и в Диспетчере устройств Windows появится новый COM-порт.При таком подключении нажимать F7 не требуется вообще. 1С перехватывает событие от драйвера аппаратно в фоновом режиме.
Если перевести сканер в режим COM-порта по каким-то причинам невозможно, выясним, как правильно настроить 1С для работы с режимом клавиатуры, чтобы избавиться от необходимости ручного вызова поиска.
Современные версии библиотек подключаемого оборудования 1С умеют работать со сканерами "в разрыв клавиатуры". Механизм работы следующий: драйвер постоянно анализирует скорость ввода символов с клавиатуры. Если символы поступают с неестественно высокой для человека скоростью (менее 10-20 миллисекунд между нажатиями), драйвер понимает, что работает сканер, перехватывает этот поток и сам генерирует событие в 1С.
Для корректной работы этого механизма критически важно наличие суффикса. Суффикс — это символ, который сканер посылает в самом конце штрихкода. Обычно это #13 (код возврата каретки, CR или клавиша Enter).
Проанализируем шаги по настройке в 1С:
1С:Сканеры штрихкода (NativeApi).Клавиатура (или Разрыв клавиатуры).13 (или CR). Если сканер после сброса к заводским настройкам не посылает Enter, обязательно настройте этот суффикс аппаратно с помощью инструкции к сканеру.Подведем итог: попытка решить проблему вводом префикса непосредственно в драйвере 1С часто приводит к путанице. Префикс F7 необходимо программировать на самом устройстве. Однако наилучшим подходом для работы в среде RDP всегда является перевод сканера в режим эмуляции виртуального COM-порта или правильная настройка суффиксов при работе через порт "Клавиатура" с использованием штатных механизмов перехвата драйвера 1С.