При подключении беспроводных сканеров, таких как Proton 3100 или модели от Honeywell, пользователи часто сталкиваются с неприятной ситуацией: вместо того чтобы мгновенно найти товар в базе, программа «печатает» цифры штрихкода в то поле, где стоит курсор (например, в наименование или количество). Это происходит потому, что 1С воспринимает сканер как обычную клавиатуру, а не как устройство ввода данных. В этой статье мы подробно разберем, как правильно сконфигурировать оборудование, чтобы поиск работал в автоматическом режиме.
Проанализируем ситуацию: если сканер выдает данные в блокнот или в любое активное поле ввода в 1С, значит, он работает в режиме эмуляции клавиатуры (HID). По умолчанию 1С «не слушает» клавиатуру постоянно — она ожидает либо специального сигнала (префикса), либо события от COM-порта. Если настройки не согласованы, программа просто получает последовательность нажатий клавиш, как если бы их ввел человек. Чтобы исправить это, нам нужно либо перевести сканер в режим COM-порта, либо правильно настроить перехват клавиатурных событий.
Прежде всего, нам необходимо определиться с физическим интерфейсом подключения. Рассмотрим два основных варианта:
Enter и часто чувствителен к текущей раскладке клавиатуры в Windows. Если установлена русская раскладка, спецсимволы могут передаваться неверно.Для перехода в режим SPP (Virtual COM) на сканере Proton 3100 необходимо найти в бумажной инструкции управляющий штрихкод «Bluetooth SPP» и считать его. После этого в диспетчере устройств Windows появится новый COM-порт, который нужно будет указать в настройках 1С.
Одной из главных ошибок является игнорирование настроек самого сканера. Выясним причину: 1С должна понимать, где заканчивается штрихкод. Для этого сканер после каждой считанной комбинации должен посылать символ «возврата каретки» — CR (код 13).
Посмотрим, как это сделать. Возьмите инструкцию к вашему сканеру (Proton или Honeywell) и найдите раздел «Suffix Configuration». Вам нужно последовательно считать коды:
CR или Enter.Без этого суффикса 1С получит цифры, но «событие» (команда к поиску) не сработает, и данные просто останутся висеть в буфере или поле ввода.
Перейдем в программу 1С и проанализируем настройки подключаемого оборудования. Зайдем в раздел Администрирование — Подключаемое оборудование.
Если вы решили оставить сканер в режиме клавиатуры, выполните следующие действия:
13 (CR). Поле «Префикс» в современных версиях «Розницы 2» лучше оставить пустым.Забудьте про F7! В старых версиях программ (например, Розница 1.0) требовалось настраивать префикс F7, чтобы имитировать нажатие кнопки поиска. В «Розница 2.x» драйверы работают с генерацией событий. Использование F7 сегодня часто вредно и приводит к дублированию окон или ошибкам ввода.
Иногда возникает ситуация, когда сканер настроен верно, но программа ошибочно определяет его как другое устройство (например, как считыватель магнитных карт). Рассмотрим пример из практики, когда в системе одновременно установлены сканер и ридер. Программа может классифицировать входящий поток данных неверно.
Для диагностики используйте кнопку «Тест устройства» в настройках оборудования 1С. Если при сканировании в окне теста вы видите, что данные приходят, но в поле «Тип события» указано что-то отличное от «Barcode» (Штрихкод), значит, есть конфликт драйверов.
В таких случаях программисту может потребоваться вмешательство в код обработки внешнего события. Посмотрим на пример кода, который помогает жестко идентифицировать данные:
Процедура ВнешнееСобытие(Источник, Событие, Данные)
// Если система ошибочно считает сканер ридером магнитных карт
Если Событие = "TracksData" Тогда
// Принудительно обрабатываем данные как штрихкод
СтруктураШтрихкода = Новый Структура("Штрихкод, ТипШтрихкода", Данные, "");
ОбработатьШтрихкод(СтруктураШтрихкода);
Иначе
// Стандартная обработка
ПодключаемоеОборудованиеРТ.ВнешнееСобытие(Источник, Событие, Данные);
КонецЕсли;
КонецПроцедуры
Если сканер ведет себя непредсказуемо (например, добавляет лишние символы или обрезает код), рекомендуем выполнить полный сброс. Для Proton 3100 это делается считыванием последовательности кодов из мануала:
После сброса не забудьте заново настроить интерфейс (USB-COM или Bluetooth-SPP) и суффикс, как мы разбирали выше.
Проанализировав все способы, можно сделать вывод: наиболее стабильная работа Bluetooth-сканера в 1С:Розница 2 достигается при использовании режима эмуляции COM-порта (SPP). Это избавляет от зависимости от раскладки клавиатуры и фокуса курсора. Если же вы используете режим клавиатуры (HID), обязательно убедитесь, что в сканере запрограммирован суффикс CR (13), а в 1С выбран правильный NativeApi драйвер с типом порта «Клавиатура».