При автоматизации рабочего места кассира или кладовщика в конфигурации «1С:Управление нашей фирмой» часто возникает задача непрерывного ввода товаров. Пользователи стремятся сканировать позиции одну за другой без необходимости подходить к клавиатуре и каждый раз вручную открывать окно поиска по клавише F7. Нередко при попытке запрограммировать функциональную клавишу F7 в качестве префикса сканера система вместо открытия окна поиска начинает подставлять текст «F7» прямо в тело штрихкода, из-за чего 1С не может найти товар и предлагает создать новый. Разберем детально, почему так происходит и как правильно подключить оборудование.
По умолчанию большинство сканеров при подключении по USB определяются операционной системой как обычная HID-клавиатура. Когда вы программируете префикс по инструкции, сканер передает текстовые ASCII-литералы, а не аппаратно-зависимый скан-код (HID Usage ID) функциональной клавиши F7. В результате вместо события нажатия клавиши учетная программа получает символы «F» и «7», которые сразу приклеиваются к штрихкоду, превращая его в строку вида F72000000016153.
Кроме того, даже если сканер корректно отправляет скан-код функциональной клавиши, между вызовом диалогового окна и считыванием самого кода должна быть выдержана задержка. Если окно ввода штрихкода в 1С не успеет открыться и перехватить фокус ввода, последующие цифры будут потеряны либо попадут в случайные реквизиты формы.
Современные версии 1С, включая УНФ на управляемых формах, используют Библиотеку подключаемого оборудования (БПО). Штатные механизмы платформы позволяют обрабатывать штрихкоды в фоновом режиме, перехватывая события ввода на лету. В этом случае программировать префикс F7 вообще не требуется: достаточно задать стандартный суффикс возврата каретки (Enter).
Разберем по шагам, как настроить работу оборудования:
#13 или Enter). Префиксы настраивать не нужно.Клавиатура;
NONE);
13 (CR);
30 до 75 мс (это значение позволяет компоненте отличать быстро введенные данные со сканера от ручного набора символов пользователем).После такой настройки 1С перехватывает считывание штрихкода на уровне события формы через стандартный обработчик ОбработкаОповещения. Номенклатура будет моментально добавляться в табличную часть документа без необходимости вызова модальных окон.
Проанализируем альтернативный вариант, который считается наиболее отказоустойчивым в торговых точках и на складах. Перевод сканера в режим виртуального последовательного порта полностью исключает влияние текущей раскладки клавиатуры (русская/английская) и предотвращает потерю символов при нестабильной связи или работе через удаленный рабочий стол (RDP).
Посмотрим на порядок действий:
COM3). При необходимости установим VCP-драйвер от производителя сканера.COM3).13 (CR). Префикс оставляем пустым.В этом режиме сканер отправляет данные напрямую в последовательный порт, откуда компонента 1С мгновенно считывает строку независимо от того, где установлен курсор в программе.
Если на одном рабочем месте сканер успешно считывает штрихкоды, а на другом выдает ошибки или не перехватывает ввод, обратим внимание на следующие технические нюансы:
scanpos.dll) разработаны исключительно под 32-битную архитектуру (x86). Если на компьютере запущен 64-битный клиент платформы «1С:Предприятие», такие библиотеки не смогут инициализироваться. Современная компонента 1С:Сканеры штрихкода (NativeApi) поставляется сразу в двух разрядностях и работает штатно.