Нередко на рабочих местах кассиров и операторов в конфигурациях 1С:Розница или других решениях на платформе 1С возникает нетипичная ситуация: клавиатура исправно работает во всех приложениях Windows (в Блокноте, браузере, текстовых редакторах), но при переключении в окно 1С ввод полностью прекращается. При этом курсор мыши активен, экранная клавиатура может функционировать, но ввод символов с физической клавиатуры (как USB, так и PS/2), а также через удаленный доступ (TeamViewer, AnyDesk, RDP) в поля 1С не проходит.
Разберем, почему возникает эта проблема, как быстро диагностировать источник сбоя и какие действия предпринять для его надежного устранения.
Выясним причину такого поведения системы. В абсолютном большинстве случаев виновником проблемы является сканер штрихкодов, настроенный для работы в режиме эмуляции клавиатуры (HID Keyboard / в разрыв клавиатуры).
Для корректного приема данных от клавиатурного сканера драйвер торгового оборудования в 1С (библиотека 1С:Сканеры штрихкода или компоненты БПО) использует низкоуровневый перехват клавиатурных сообщений операционной системы (так называемый Keyboard Hook). Механизм работает следующим образом:
CR или Enter).Проанализируем шаги быстрой диагностики: достаточно физически вынуть провод сканера штрихкодов из USB-разъема компьютера. Если сразу после отключения сканера клавиатура в 1С начинает безошибочно вводить цифры и буквы, источник проблемы подтвержден на 100%.
Наиболее стабильным и технически правильным решением является полный отказ от режима эмуляции клавиатуры. Перевод сканера (например, Zebra DS4308 или аналогичных моделей) в режим последовательного порта полностью исключает необходимость перехвата клавиатурного потока драйвером 1С.
Разберем по шагам порядок настройки:
USB CDC Host или Symbol Native API (SNAPI)) и отсканируем его.COM3).Откроем раздел Администрирование — Подключаемое оборудование.
Выберем наш экземпляр сканера штрихкодов и перейдем в форму его настройки.
Изменим тип порта с «Клавиатура» на назначенный виртуальный порт (COM3).
Установим стандартные параметры связи (скорость 9600, биты данных 8, четность Нет, стоповые биты 1) и нажмем кнопку Тест устройства.
После сохранения параметров 1С станет считывать данные напрямую из COM-потока. Клавиатура и сканер разделятся на аппаратном и программном уровнях, и блокировка клавиш больше никогда не повторится.
Если перевести сканер в виртуальный COM-порт по какой-либо причине невозможно (например, конфигурация работает в режиме, требующем исключительно HID, или ограничены права пользователя на установку драйверов), настроим эмуляцию клавиатуры так, чтобы предотвратить зависание хука.
Рассмотрим подробнее необходимые настройки:
Disable Fast HID или выберем стандартный режим HID Keyboard with Keystroke Delay).Intercharacter Delay) со сканера. Рекомендуется установить значение порядка 5–10 мс. Это сделает ввод более стабильным для драйвера операционной системы.13 или CR), и этот же суффикс явно указан в свойствах торгового оборудования в 1С.Иногда ввод «отваливается» через несколько минут простоя рабочего места. Это происходит из-за того, что операционная система Windows временно отключает питание USB-порта для экономии энергии. При выходе из спящего режима сканер переинициализируется некорректно, а драйвер 1С блокирует ввод.
Проанализируем схему отключения энергосбережения:
Корневой USB-концентратор (USB Root Hub) и Generic USB Hub откроем Свойства.Применение этих мер устраняет системные сбои в цепочке «сканер — клавиатурный хук — 1С» и обеспечивает бесперебойную работу ввода при оформлении продаж.