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

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

Зачастую перед специалистами встает задача расширения аппаратного обеспечения на торговых точках, например, когда к уже имеющемуся стационарному сканеру требуется добавить ручной сканер штрихкода. В среде 1С 7.7 такая задача требует особого подхода, так как стандартная компонента ScanOPOS.dll изначально не была рассчитана на одновременную работу с несколькими устройствами одного типа.

Давайте разберем, как реализовать это решение, не конфликтуя с платформой и обеспечивая стабильную работу оборудования.

Подготовка оборудования и выбор драйвера

Первое, с чего необходимо начать — это выбор драйвера. Опыт показывает, что современные версии драйверов торгового оборудования могут накладывать ограничения в виде демо-режима (задержка до 10-20 секунд), поэтому для 1С 7.7 оптимальным решением является использование проверенных временем версий, например, драйверов АТОЛ версии 5.7.1. Эти версии стабильны и не требуют сложной процедуры активации лицензий.

Пошаговый план настройки:

  1. Установите драйверы торгового оборудования АТОЛ.
  2. Откройте «Тест драйвера» или «Менеджер оборудования» в настройках АТОЛ.
  3. В настройках драйвера добавьте второе устройство. Каждому сканеру необходимо присвоить свои параметры порта (COM-порт) и задать уникальное логическое имя.
  4. Проверьте каждое устройство через штатную утилиту тестирования драйвера, чтобы убедиться, что они корректно считывают коды и передают данные в систему.

Интеграция с конфигурацией 1С 7.7

После того как драйвер «видит» оба сканера, необходимо настроить 1С. Основная работа ведется в глобальном модуле конфигурации, в процедуре ВнешнееСобытие().

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

Рассмотрим структуру обработки события:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    // Источник — имя устройства, заданное в настройках драйвера
    // Данные — считанный штрихкод
    
    Если Источник = "Сканер1" Тогда
        // Логика обработки для настольного сканера
        ОбработатьТовар(Данные);
    ИначеЕсли Источник = "Сканер2" Тогда
        // Логика обработки для ручного сканера
        ОбработатьТовар(Данные);
    КонецЕсли;
КонецПроцедуры

Альтернативные подходы к решению

Если использование специализированных драйверов вызывает сложности, можно рассмотреть альтернативные варианты:

1. Использование «COM-джойнеров»

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

2. Метод префиксов

Вы можете настроить сканеры на уровне их внутренней прошивки (через управляющие штрихкоды из руководства пользователя) так, чтобы они добавляли уникальный префикс к передаваемому коду. Например, настольный сканер добавляет префикс S1, а ручной — S2.

Тогда код в ВнешнееСобытие() будет выглядеть следующим образом:


Если Лев(Данные, 2) = "S1" Тогда
    КодТовара = Прав(Данные, СтрДлина(Данные) - 2);
    // Добавляем в табличную часть как обычно
КонецЕсли;

Важные рекомендации

При настройке обязательно учитывайте следующие моменты:

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

← На главную