Как правильно настроить сканер штрихкода в 1С:УНФ и избавиться от необходимости нажимать F7

Пользователь 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Торговля и дистрибуция
← На главную

При автоматизации рабочего места кассира или кладовщика в конфигурации «1С:Управление нашей фирмой» часто возникает задача непрерывного ввода товаров. Пользователи стремятся сканировать позиции одну за другой без необходимости подходить к клавиатуре и каждый раз вручную открывать окно поиска по клавише F7. Нередко при попытке запрограммировать функциональную клавишу F7 в качестве префикса сканера система вместо открытия окна поиска начинает подставлять текст «F7» прямо в тело штрихкода, из-за чего 1С не может найти товар и предлагает создать новый. Разберем детально, почему так происходит и как правильно подключить оборудование.

Выясним причину: почему сканер передает символы «F» и «7» вместо нажатия клавиши

По умолчанию большинство сканеров при подключении по USB определяются операционной системой как обычная HID-клавиатура. Когда вы программируете префикс по инструкции, сканер передает текстовые ASCII-литералы, а не аппаратно-зависимый скан-код (HID Usage ID) функциональной клавиши F7. В результате вместо события нажатия клавиши учетная программа получает символы «F» и «7», которые сразу приклеиваются к штрихкоду, превращая его в строку вида F72000000016153.

Кроме того, даже если сканер корректно отправляет скан-код функциональной клавиши, между вызовом диалогового окна и считыванием самого кода должна быть выдержана задержка. Если окно ввода штрихкода в 1С не успеет открыться и перехватить фокус ввода, последующие цифры будут потеряны либо попадут в случайные реквизиты формы.

Вариант 1. Корректная настройка сканера через штатный драйвер 1С (Рекомендуемый способ)

Современные версии 1С, включая УНФ на управляемых формах, используют Библиотеку подключаемого оборудования (БПО). Штатные механизмы платформы позволяют обрабатывать штрихкоды в фоновом режиме, перехватывая события ввода на лету. В этом случае программировать префикс F7 вообще не требуется: достаточно задать стандартный суффикс возврата каретки (Enter).

Разберем по шагам, как настроить работу оборудования:

  1. Сброс и настройка сканера: отсканируйте из инструкции к вашему сканеру управляющий штрихкод сброса на заводские настройки (Reset / Factory Default). Затем считайте сервисный штрихкод добавления суффикса CR (Carriage Return, код #13 или Enter). Префиксы настраивать не нужно.
  2. Подключение в 1С: перейдем в раздел Настройки (или «Администрирование»), откроем пункт РКП и оборудование и перейдем по гиперссылке Подключаемое оборудование.
  3. Добавление экземпляра: создадим новое устройство с типом Сканеры штрихкода. В качестве драйвера оборудования выберем встроенный драйвер «1С:Сканеры штрихкода (NativeApi)».
  4. Настройка параметров связи: нажмем кнопку Настроить. В открывшемся окне установим следующие параметры:
    — Порт: укажем Клавиатура;
    — Префикс: оставим поле пустым (NONE);
    — Суффикс: выберем значение 13 (CR);
    — Таймаут: зададим интервал от 30 до 75 мс (это значение позволяет компоненте отличать быстро введенные данные со сканера от ручного набора символов пользователем).
  5. Проверка: нажмем кнопку Тест устройства и выполним сканирование тестового товара. В окне теста должен отобразиться чистый штрихкод без лишних букв и символов. Сохраним настройки по кнопке Записать и закрыть.

После такой настройки 1С перехватывает считывание штрихкода на уровне события формы через стандартный обработчик ОбработкаОповещения. Номенклатура будет моментально добавляться в табличную часть документа без необходимости вызова модальных окон.

Вариант 2. Работа через эмуляцию виртуального COM-порта (USB-COM)

Проанализируем альтернативный вариант, который считается наиболее отказоустойчивым в торговых точках и на складах. Перевод сканера в режим виртуального последовательного порта полностью исключает влияние текущей раскладки клавиатуры (русская/английская) и предотвращает потерю символов при нестабильной связи или работе через удаленный рабочий стол (RDP).

Посмотрим на порядок действий:

  1. Найдем в мануале к сканеру настроечный штрихкод с названием «USB Serial Emulation» или «USB COM Mode» и отсканируем его.
  2. Убедимся, что операционная система определила новое устройство. В Диспетчере устройств Windows в ветке «Порты (COM и LPT)» должен появиться виртуальный COM-порт (например, COM3). При необходимости установим VCP-драйвер от производителя сканера.
  3. В настройках торгового оборудования 1С для сканера штрихкода выберем драйвер 1С, перейдем в параметры и вместо клавиатуры укажем соответствующий номер порта (например, COM3).
  4. В поле суффикса также укажем 13 (CR). Префикс оставляем пустым.

В этом режиме сканер отправляет данные напрямую в последовательный порт, откуда компонента 1С мгновенно считывает строку независимо от того, где установлен курсор в программе.

Почему сканер может работать на одном компьютере и не работать на другом

Если на одном рабочем месте сканер успешно считывает штрихкоды, а на другом выдает ошибки или не перехватывает ввод, обратим внимание на следующие технические нюансы:

  1. Разрядность платформы и драйверов: старые бесплатные внешние компоненты (например, драйвер АТОЛ 2009 года или устаревший scanpos.dll) разработаны исключительно под 32-битную архитектуру (x86). Если на компьютере запущен 64-битный клиент платформы «1С:Предприятие», такие библиотеки не смогут инициализироваться. Современная компонента 1С:Сканеры штрихкода (NativeApi) поставляется сразу в двух разрядностях и работает штатно.
  2. Блокировка клавиатурных хуков: драйвер сканера в режиме клавиатуры устанавливает глобальный перехват ввода Windows. Антивирусное ПО, политики безопасности или запуск программы под пользователем с жестко ограниченными правами могут блокировать установку хука, из-за чего 1С перестает «слышать» сканер.
  3. Конфликт старых библиотек: если ранее на компьютере устанавливались различные версии драйверов торгового оборудования, оставшиеся в системе службы и файлы могут перехватывать порт. Перед настройкой штатного драйвера БПО рекомендуется удалить старые утилиты и драйверы сторонних производителей.
← На главную