Почему сканер штрихкодов не ищет товар в 1С:Розница 2.2 и как это исправить

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

При подключении торгового оборудования к конфигурациям на базе современных библиотек (в частности, 1С:Розница 2.2 на управляемых формах) часто возникает ситуация: сканер успешно считывает штрихкод в окне добавления нового товара, проходит внутренний тест в настройках оборудования, но при попытке поиска в РМК (Рабочем месте кассира) или документах выдает ошибку: «данные по коду не найдены». При этом на старых релизах или других конфигурациях (например, 1С:Управление торговлей 10.3) устройство может функционировать без сбоев.

Разберем подробнее, почему возникает такое поведение в среде БПО (Библиотеки подключаемого оборудования), проанализируем основные причины конфликта и настроим оборудование правильным способом.

Основные причины проблемы при работе со сканером

Выясним, почему система считывает корректный штрихкод, но не может спозиционировать номенклатуру:

  1. Коллизия префиксов весового товара. В параметрах учета программы задаются префиксы для фасованного/весового товара (например, 20, 21, 22). Если штучный товар имеет штрихкод, начинающийся на эти цифры, алгоритм 1С пытается выделить из него код и вес, а не ищет полное соответствие по регистру сведений ШтрихкодыНоменклатуры.
  2. Передача служебных идентификаторов (AIM ID / Code ID). Некоторые сканеры (в частности, линейки Honeywell) по умолчанию передают в порт префикс типа штрихкода (например, ]E0 для кода формата EAN-13). При тесте в строке могут отображаться только цифры, но в обработчик события попадает скрытый массив байт, что ломает поиск.
  3. Некорректный тайм-аут клавиатурного драйвера NativeAPI. Если сканер работает в режиме эмуляции клавиатуры (HID), драйвер 1С перехватывает поток нажатий клавиш. При заниженном таймауте (30–50 мс) или задержках в системе пакет символов «разрывается» на части, и 1С выполняет поиск по неполному коду.
  4. Устаревшая внешняя компонента ScanOPOS. Использование 32-разрядной компоненты ScanOPOS в современных управляемых интерфейсах приводит к ошибкам обработки асинхронных событий торгового оборудования.
  5. Спящий режим USB в Windows. Если сканер настроен через виртуальный COM-порт, операционная система Windows 10 через некоторое время может перевести USB-контроллер в режим экономии энергии, из-за чего поток данных прерывается.

Способ 1. Правильная настройка сканера через виртуальный COM-порт (Рекомендуемый)

Перевод сканера в режим эмуляции COM-порта с использованием встроенного драйвера 1С:Сканеры штрихкода (NativeApi) является наиболее надежным стандартом для 1С, так как исключает влияние языка раскладки клавиатуры и скорости передачи символов.

Выполним настройку по шагам:

  1. Сброс сканера к заводским параметрам. Считаем из сервисной инструкции настроечный штрихкод Recall Defaults (Def_Alt).
  2. Установка драйвера виртуального порта. Установим в операционную систему актуальный официальный драйвер производителя (например, Honeywell HSM USB Serial Driver).
  3. Активация эмуляции COM. Считаем настроечный штрихкод активации COM-порта: Enable Uni-Directional USB Serial Emulation (или USB Serial Emulation Mode). В диспетчере устройств Windows в разделе «Порты (COM и LPT)» должен появиться виртуальный порт с присвоенным номером (например, COM3).
  4. Настройка оборудования в 1С:Розница 2.2:
    • Перейдем в раздел Администрирование -> Подключаемое оборудование.
    • Создадим новое устройство с типом Сканеры штрихкода, выберем драйвер 1С:Сканеры штрихкода (NativeApi) и проверим, что в поле Рабочее место указано текущее рабочее место пользователя.
    • Нажмем Настроить: укажем определившийся Порт (например, COM3), скорость (обычно 9600), а в поле Суффикс зададим значение 13 (символ возврата каретки CR).
    • Выполним тест устройства: при сканировании штрихкод должен отображаться без посторонних префиксов со значением суффикса CR [13].
  5. Отключение спящего режима USB в Windows:

    Откроем Диспетчер устройств, найдем раздел Контроллеры USB -> Корневой USB-концентратор (USB Root Hub). В свойствах на вкладке Управление электропитанием снимем флажок «Разрешить отключение этого устройства для экономии энергии». Это предотвратит зависание сканера через 30–60 минут работы.

Способ 2. Настройка в режиме клавиатуры (HID) через NativeAPI

Если нет возможности использовать эмуляцию COM-порта, настроим сканер в режиме клавиатурного ввода без использования устаревших сторонних драйверов.

Разберем порядок действий:

  1. Сбросим сканер в заводские настройки (Recall Defaults) для очистки всех ранее запрограммированных префиксов и суффиксов.
  2. Убедимся, что сканер передает стандартный суффикс CR (код #13). По умолчанию в большинстве сканеров этот суффикс включен.
  3. В 1С откроем параметры подключаемого оборудования:
    • Драйвер: 1С:Сканеры штрихкода (NativeApi).
    • Порт: Клавиатура.
    • Префикс: Пусто (никаких префиксов вроде F7 или 150 программировать не нужно).
    • Суффикс: 13.
    • Таймаут клавиатурного ввода: увеличим значение со стандартных 30 до 75–100 мс. Это позволит 1С корректно склеивать все символы штрихкода при микрозадержках операционной системы.
  4. Проверим работу сканирования в РМК и документах поступления/реализации.

Способ 3. Проверка настроек префиксов и рабочих мест в базе 1С

Если физическое подключение и тест устройства отрабатывают без ошибок, но ошибка «данные по коду не найдены» сохраняется, проанализируем параметры учета внутри конфигурации:

  1. Проверка префиксов весовых товаров:

    Перейдем в Администрирование -> Номенклатура (или Параметры учета). Проверим раздел настройки весовых штрихкодов. Если штрихкод обычного товара начинается, например, с цифр 20, а в программе префикс 20 закреплен за весовым товаром с плавающим весом, система не сможет найти совпадение в справочнике. Необходимо изменить префикс весового товара или перемаркировать продукцию.

  2. Проверка справочника «Рабочие места»:

    В конфигурациях на управляемых формах идентификатор рабочего места генерируется автоматически на основании сетевого имени ПК и системного идентификатора пользователя. Если база запускалась под другой учетной записью или через RDP, создается новый элемент справочника РабочиеМеста. Сканер, привязанный к старому рабочему месту, не будет инициализировать обработчик внешнего события в текущей сессии.

    Убедимся, что текущее рабочее место сеанса совпадает с тем, к которому привязано торговое оборудование.

Особенности использования префикса F7

В среде специалистов часто встречается рекомендация запрограммировать в память сканера передачу префикса F7 (код 150). Рассмотрим этот механизм:

Клавиша F7 в интерфейсе 1С предназначена для ручного вызова диалогового окна поиска по штрихкоду. Передача этого префикса сканером принудительно открывает диалог, куда последующими символами вставляется штрихкод. Однако такой подход является временным решением (костылем), так как на медленных компьютерах диалоговое окно может не успеть открыться вовремя, что приведет к потере первых символов штрихкода.

В типовых конфигурациях 1С на базе БПО штатный драйвер 1С:Сканеры штрихкода (NativeApi) перехватывает событие ввода целиком без необходимости ручного открытия диалоговых окон.

← На главную