Как настроить сканер штрихкодов для автоматического добавления товаров и подсчета количества в 1С?

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

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

Выясним причину проблемы: почему 1С требует нажимать F7

По умолчанию большинство USB-сканеров поставляются настроенными в режиме эмуляции клавиатуры (HID-устройство). В этом режиме операционная система и платформа 1С воспринимают сканер как человека, который быстро печатает цифры на физической клавиатуре. Если в момент считывания курсор не установлен в специальное поле поиска или не открыто диалоговое окно по кнопке F7, 1С не знает, в какой именно объект направить поступившие символы.

Существует два пути решения задачи: перевод устройства в режим виртуального последовательного порта (COM-порт) либо корректное программирование управляющего префикса в память самого сканера.

Способ 1. Перевод сканера в режим эмуляции COM-порта (рекомендуемый)

Это самый надежный и промышленный стандарт подключения торгового оборудования к 1С. В режиме Virtual COM Port сканер передает данные напрямую через драйвер оборудования, генерируя платформенное внешнее событие независимо от того, где находится курсор мыши или фокус ввода.

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

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

При таком подключении в модуле формы или глобальном обработчике платформа автоматически перехватывает событие через предопределенную процедуру ОбработкаВнешнегоСобытия. Типовой механизм 1С при получении штрихкода находит номенклатуру: если строка с товаром уже присутствует в табличной части, счетчик количества увеличивается на единицу, если нет — добавляется новая строка.

Способ 2. Настройка префикса F7 в режиме эмуляции клавиатуры

Если перевести сканер в режим COM-порта невозможно (например, отсутствуют драйверы для конкретной ОС или сканер работает по протоколу Bluetooth без поддержки SPP), можно заставить работать и клавиатурный режим. Главная ошибка разработчиков заключается в попытке прописать префикс только в настройках программы в 1С. Этого недостаточно: префикс должен посылать сам сканер перед отправкой цифр штрихкода.

Проанализируем правильный алгоритм настройки:

  1. Программирование префикса в памяти сканера. Возьмем мануал к сканеру, найдем раздел настройки префиксов (Prefix / Preamble). Последовательно отсканируем настроечные штрихкоды: вход в режим программирования, выбор настройки префикса, ввод управляющего кода клавиши F7 (в таблице управляющих символов ASCII/HID инструкции сканера) и сохранение параметров.
  2. Проверка суффикса. Убедимся, что в сканере активен суффикс возврата каретки (Enter или код CR / 13). Без завершающего суффикса драйвер 1С не сможет понять, где заканчивается штрихкод.
  3. Настройка в 1С. В параметрах сканера в 1С очистим поле «Префикс», чтобы драйвер программы не ждал двойного нажатия F7. Первым сигналом физический сканер отправит в систему эмуляцию нажатия кнопки F7 (что откроет или активирует окно ввода штрихкода в 1С), следом передаст символы штрихкода и завершит передачу суффиксом перевода строки.
  4. Межсимвольный интервал (Inter-character delay). Драйвер 1С различает сканер и ручной набор по скорости передачи символов. Если сканер передает данные слишком медленно, платформа воспринимает это как клавиатурный ввод пользователя и окно ввода штрихкода закрывается по таймауту. В мануале сканера выставим минимальную межсимвольную задержку.

Отладка и проверка типовых обработчиков

Если после выполнения настроек сканер по-прежнему не добавляет товар, проверим логику работы конфигурации в режиме отладки. В конфигурациях на обычных формах (таких как «1С:Комплексная автоматизация» ред. 1.1) за обработку отвечает общий модуль торгового оборудования.

Поставим точку останова в процедуре общего модуля:


Процедура ВвестиШтрихкод(Штрихкод, Форма) Экспорт
    // Точка останова
    Если ПустаяСтрока(Штрихкод) Тогда
        Возврат;
    КонецЕсли;
КонецПроцедуры

Проанализируем поведение системы:

  1. Если точка останова в процедуре РаботаСТорговымОборудованием.ВвестиШтрихкод() срабатывает, проверим значение переменной Штрихкод. В нее должны попадать чистые цифры кода без лишних непечатных символов и префиксов.
  2. Если точка останова не срабатывает вовсе, значит, префикс F7 не доходит до платформы, либо в свойствах торгового оборудования не включен перехват клавиатурных событий драйвером.

Использование режима виртуального COM-порта полностью исключает зависимость от префиксов и фокуса ввода, гарантируя безошибочный подсчет количества номенклатуры при каждом сканировании.

← На главную