Как настроить сканер штрихкода Atol SB2103 Plus в 1С:Управление торговлей 10.3: Решение проблемы с клавиатурным режимом и драйверами

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

Настройка торгового оборудования в среде 1С часто преподносит сюрпризы специалистам по автоматизации и системным администраторам. Особенно это актуально для классических конфигураций на обычных формах, таких как «1С:Управление торговлей 10.3» (УТ 10.3). В этой статье мы подробно разберем проблему, с которой сталкиваются пользователи при попытке подружить беспроводной сканер штрихкода Atol SB2103 Plus с УТ 10.3, когда устройство работает в режиме эмуляции клавиатуры, но драйвер 1С отказывается видеть этот интерфейс.

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

Способ 1. Установка корректной версии драйвера «1С:Сканер штрихкода» (Решение с форума)

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

Для решения этой проблемы выполним откат драйвера к стабильной и проверенной версии:

  1. Полностью закроем систему 1С:Предприятие.
  2. Удалим текущую установленную версию драйвера устройств ввода (через «Панель управления» Windows -> «Программы и компоненты»).
  3. Скачаем и установим официальный драйвер 1С:Сканер штрихкода версии 8.1.7.5 (или более раннюю стабильную версию 8.0.x). Именно в этих версиях библиотека корректно работает с клавиатурным портом на операционных системах семейства Windows.
  4. Запустим 1С:Предприятие в режиме предприятия, перейдем в меню Сервис -> Торговое оборудование -> Подключение и настройка торгового оборудования.
  5. На вкладке «Сканеры штрихкода» добавим новое устройство, выберем обработку обслуживания 1с сканер штрихкода.
  6. Нажмем кнопку «Параметры». В появившемся окне настройки в выпадающем списке «Порт» найдем пункт Клавиатура (обычно он находится в самом конце списка доступных портов, после всех физических и виртуальных COM-портов).
  7. Сохраним настройки и проверим работу сканера кнопкой «Тест устройства».

При использовании этого метода перехват данных будет осуществляться на уровне драйвера, и 1С будет генерировать стандартное внешнее событие при каждом сканировании.

Способ 2. Перевод сканера Atol SB2103 Plus в режим виртуального COM-порта (Рекомендуемый способ)

Работа сканера в режиме клавиатуры (USB-HID) имеет существенные недостатки: пользователю необходимо постоянно контролировать фокус ввода (курсор должен находиться в строго определенном поле или документе), а при быстрой работе или высокой загрузке процессора ПК отдельные символы штрихкода могут теряться. Самым профессиональным и надежным решением является перевод беспроводного сканера Atol SB2103 Plus в режим виртуального COM-порта (Virtual COM).

В этом режиме сканер работает независимо от фокуса ввода и раскладки клавиатуры. 1С перехватывает данные мгновенно через механизм внешнего события. Разберем этот процесс подробно:

  1. Подготовка операционной системы: Скачаем с официального сайта АТОЛ драйвер виртуального COM-порта (пакет драйверов обычно называется VCOM driver или EasyCOM Driver). Установим его на рабочий компьютер.
  2. Определение версии прошивки сканера: Версия прошивки влияет на то, какими именно штрихкодами программируется сканер. Считаем сервисный штрихкод Version V5.8 из оригинальной инструкции к сканеру. На экране компьютера отобразится текущая версия ПО устройства.
  3. Программирование для версии SimBol V5.9.30:
    • Подключим беспроводной USB-приемник (ресивер) к свободному USB-порту компьютера.
    • Последовательно отсканируем управляющие штрихкоды из инструкции по настройке: Factory Default (сброс к заводским настройкам) -> USB-COM -> RF Model.
  4. Программирование для версии SimBol V5.9.37:
    • Временно отключим USB-приемник от компьютера.
    • Считаем сканером штрихкоды: Factory Default -> Baud Rate 9600 -> RF Model.
    • Подключим приемник обратно к USB-порту. На нем начнут перемигиваться светодиоды. В этот момент быстро отсканируем код Pairs ADD для повторного сопряжения сканера с базой.
  5. Проверка в Диспетчере устройств: Откроем Диспетчер устройств Windows и развернем ветку «Порты (COM и LPT)». Убедимся, что там появилось новое устройство (например, Virtual COM Port) и операционная система назначила ему номер (например, COM3).
  6. Настройка в 1С УТ 10.3: В настройках торгового оборудования в 1С укажем созданный порт (COM3) и скорость передачи данных 9600. Теперь сканирование будет вызывать предопределенную процедуру ВнешнееСобытие.

Рассмотрим пример кода, с помощью которого платформа 1С обрабатывает такое внешнее событие в модуле управляемой или обычной формы:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    // Обработка сигнала от сканера штрихкодов в режиме COM-порта
    Если ПолучитьСерверТО().ПроверитьСобытиеТО(Источник, Событие, Данные) map Тогда
        Штрихкод = СокрЛП(Данные);
        // Вызываем процедуру поиска номенклатуры по штрихкоду
        ОбработатьВводШтрихкода(Штрихкод);
    КонецЕсли;
КонецПроцедуры

Способ 3. Работа сканера без драйверов (через F7 и суффиксы клавиатуры)

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

Для реализации этой схемы необходимо выполнить следующие действия:

  1. Сканером необходимо считать управляющий штрихкод, добавляющий Префикс F7 (или настроить это программно в самой 1С). Однако на практике префиксы часто настраиваются некорректно, так как программирующие коды индивидуальны для каждой линейки процессоров сканеров (например, штрихкоды от линейки SB1103 физически не подойдут к линейке SB2103 Plus).
  2. Гораздо надежнее настроить на сканере отправку суффикса возврата каретки (CR / Enter). Большинство моделей АТОЛ поставляются с уже включенным с завода суффиксом CR (ASCII-код 13).
  3. В настройках торгового оборудования в 1С (при работе без драйвера АТОЛ или 1С) перейдем в параметры и обязательно укажем в поле «Суффикс» значение 13 (или выберем символ CR).

Когда суффикс настроен корректно, при нажатии кнопки F7 на клавиатуре открывается стандартное модальное окно «Ввод штрихкода». Сканер считывает штрихкод, передает его в открывшееся текстовое поле и в конце посылает суффикс 13 (нажатие Enter). Окно автоматически закрывается, инициируя поиск товара в базе данных.

Посмотрим на пример кода, который имитирует вызов окна ввода штрихкода принудительно (костыль с F7):


Процедура КнопкаНажатиеF7()
    // Ручной вызов окна ввода штрихкода в обычных формах
    ФормаВвода = ПолучитьФорму("ОбщаяФорма.ВводШтрихкода");
    ФормаВвода.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс;
    Результат = ФормаВвода.ОткрытьМодально();
    Если ЗначениеЗаполнено(Результат) Тогда
        ОбработатьВводШтрихкода(Результат);
    КонецЕсли;
КонецПроцедуры

Способ 4. Использование исторического бесплатного драйвера АТОЛ (версия 6.x)

Если вам обязательно нужно использовать сканер в режиме клавиатуры, но при этом вы хотите получать полноценное внешнее событие без использования горячих клавиш вроде F7, идеальным решением будет установка «АТОЛ: Драйвер устройств ввода» версии 6.5.3.99.

Важное предупреждение: Не пытайтесь устанавливать более новые версии драйверов АТОЛ (версий 8.х, 9.х или 10.х) для клавиатурных сканеров. Начиная с последующих версий, этот драйвер стал платным. В демонстрационном (бесплатном) режиме работы новые драйверы накладывают искусственную задержку в 10 секунд на передачу каждого считанного штрихкода, что делает невозможной работу кассира или кладовщика.

Версия 6.5.3.99 — последняя полностью бесплатная и безлимитная версия драйвера, отлично совместимая с операционными системами Windows 7, 8 и 10.

Разберем по шагам алгоритм настройки через этот драйвер:

  1. Скачаем и установим пакет программного обеспечения АТОЛ, содержащий драйвер устройств ввода версии 6.5.3.99.
  2. Запустим утилиту «Тест драйвера устройств ввода» в Windows. Нажмем кнопку «Настройка свойств».
  3. В поле «Порт» выберем Клавиатура. Нажмем кнопку «Поиск оборудования» и отсканируем любой штрихкод. Утилита должна показать считанный код, а также зафиксировать префиксы и суффиксы (обычно это #13 в конце).
  4. В 1С:Управление торговлей 10.3 перейдем в справочник обработок обслуживания торгового оборудования. Добавим внешнюю обработку обслуживания ATOLInput.epf (ее можно найти на диске ИТС или в каталоге шаблонов установленной конфигурации УТ в папке TradeWareEpf).
  5. При настройке параметров сканера выберем обработку АТОЛ, укажем порт «Клавиатура» и пропишем суффикс 13.

Этот способ гарантирует стабильный перехват клавиатурных нажатий сканера Atol SB2103 Plus, преобразуя их во внешнее событие 1С на любой версии платформы.

← На главную