Как подключить сканер штрих-кода Argox AS-8000 или Honeywell к 1С 7.7 Торговля и склад

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

Подключение торгового оборудования к устаревшим системам на базе 1С 7.7 в современных операционных системах (Windows 10/11) часто превращается в настоящий квест. Основная сложность заключается в том, что современные USB-сканеры по умолчанию работают в режиме эмуляции клавиатуры, в то время как 1С 7.7 ожидает «Внешнее событие», которое штатно генерируется только при работе через COM-порт. В данной статье мы подробно разберем, как подружить ваш сканер с «семеркой», используя проверенные методы и драйверы. При планировании перехода на современную платформу можно изучить раздел с решениями для переноса данных из 1С 7.7 в новые конфигурации.

Выбор режима работы: Клавиатура или COM-порт?

Прежде всего, нам необходимо определиться с методом передачи данных. Проанализируем два основных пути:

  1. Режим эмуляции клавиатуры (HID-Keyboard): Сканер просто «печатает» штрих-код в то место, где стоит курсор. Для 1С это неудобно, так как пользователю приходится постоянно следить за фокусом ввода.
  2. Режим эмуляции COM-порта (Virtual COM): Сканер создает в системе виртуальный последовательный порт. Драйвер 1С слушает этот порт и при получении данных генерирует ВнешнееСобытие. Это наиболее правильный и надежный способ автоматизации.

Рассмотрим пошагово настройку через драйверы АТОЛ, так как они наиболее гибко позволяют работать с обоими режимами.

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

Для работы нам потребуется классический «бесплатный» пакет драйверов АТОЛ (версии 6.x, например 6.5.3 или 2008 года). Современные версии требуют лицензирования, поэтому для 1С 7.7 старые версии остаются стандартом де-факто.

Выясним причину, почему драйвер может не работать сразу. В современных Windows обязательна ручная регистрация библиотеки Scanner1C.dll. Разберем процесс:

  1. Скопируем файл Scanner1C.dll в папку с установленной платформой 1С (обычно C:\Program Files (x86)\1Cv77\BIN) или в системную папку System32 / SysWOW64.
  2. Запустим командную строку от имени администратора.
  3. Выполним команду регистрации: regsvr32 "C:\Путь_к_файлу\Scanner1C.dll".

Важный момент: Если вы работаете в терминальном режиме (RDP), драйвер должен быть установлен и зарегистрирован именно на сервере.

Шаг 2: Программирование сканера

Проанализируем ситуацию со сканером Argox AS-8000. Чтобы он начал работать как виртуальный COM-порт, его нужно перевести в этот режим с помощью специальных служебных штрих-кодов из мануала (Programming Guide). Обычно последовательность такая:

  1. Считываем код Start Configuration.
  2. Считываем код USB Virtual COM.
  3. Считываем код Update (обязательно, иначе настройки сбросятся после выключения).

Если после этого Windows определила устройство как «Неизвестное», нам необходимо установить драйвер виртуального моста. Для большинства сканеров Argox подходят драйверы Silicon Labs CP210x USB to UART Bridge. После установки в Диспетчере устройств в разделе «Порты (COM и LPT)» должен появиться новый порт, например, COM3.

Шаг 3: Настройка в 1С 7.7

Теперь перейдем в саму программу. Откроем меню Сервис — Параметры. Если драйвер зарегистрирован верно, там появится вкладка «Драйвер устройств ввода». Рассмотрим настройки подробнее:

Для проверки нажмем кнопку «Поиск оборудования». Считаем любой штрих-код. В окне поиска мы должны увидеть не только сам код, но и символы в конце — это и есть наши суффиксы. Укажите их в соответствующих полях настройки.

Шаг 4: Реализация обработки в коде 1С

Чтобы программа реагировала на сканирование, в модуле формы (например, в форме подбора товара или документа «Реализация») должна быть предопределенная процедура. Проанализируем пример кода:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если (Источник = "Scanner") И (Событие = "DataEvent") Тогда
        // Очищаем полученные данные от возможных лишних пробелов
        ШтрихКод = СокрЛП(Данные);
        
        // Поиск товара в справочнике
        СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
        Если СпрНоменклатура.НайтиПоРеквизиту("ШтрихКод", ШтрихКод, 1) = 1 Тогда
            // Товар найден, добавляем в табличную часть
            ДобавитьТоварВДокумент(СпрНоменклатура.ТекущийЭлемент());
        Иначе
            Предупреждение("Товар с кодом " + ШтрихКод + " не найден!");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Обратите внимание: если вы используете режим «Клавиатура» в драйвере АТОЛ, убедитесь, что в форме документа нет текстовых полей, которые находятся в фокусе и могут принять ввод до того, как его перехватит драйвер.

Особенности работы в терминальном режиме (RDP)

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

  1. В настройках RDP-клиента (mstsc.exe) на вкладке «Локальные ресурсы» нажмем «Подробнее» и поставим галочку «Порты».
  2. На сервере откроем командную строку и введем change port /query. Мы должны увидеть проброшенный порт (например, COM3, который мапится на клиентский порт).
  3. В 1С на сервере настраиваем драйвер на этот проброшенный порт.

Важно: Если порт виден, но 1С пишет «Нет монопольного доступа», скорее всего, какая-то другая программа или сессия уже заняла этот порт. Выясним это, закрыв все лишние приложения и проверив настройки в других запущенных экземплярах 1С.

Типичные ошибки и способы их решения

Разберем, почему 1С может «не видеть» сканер, даже если драйвер установлен:

Подводя итог, можно сказать, что связка Argox/Honeywell и 1С 7.7 вполне работоспособна. Главное — добиться от сканера передачи суффикса #13 и правильно зарегистрировать библиотеку Scanner1C.dll в операционной системе. Использование режима эмуляции COM-порта всегда предпочтительнее, так как оно исключает ошибки при «проглатывании» символов в перегруженных терминальных сессиях.

← На главную