Как исправить ошибку «Не удалось получить монопольный доступ» при подключении сканера Honeywell к 1С:Торговля и Склад 7.7?

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

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

Разберем детально, почему возникает данное сообщение, как устроена обработка событий сканера в 1С 7.7 и как правильно настроить связку оборудования и учетной системы.

Причины возникновения ошибки монопольного доступа

В типовой конфигурации «Торговля и Склад 7.7» для взаимодействия со сканерами штрихкода используется внешняя компонента Scanopos.dll (или ее аналоги). Сообщение о невозможности монопольного захвата порта может возникать в следующих случаях:

  1. Несоответствие номеров портов: в операционной системе драйвер виртуального COM-порта выделил устройству порт с большим номером (например, COM13), а в настройках 1С по умолчанию указан порт из диапазона COM1–COM4, который в системе отсутствует. Компонента Scanopos.dll при обращении к несуществующему порту выдает стандартный текст о блокировке монопольного доступа.
  2. Ограничение типовых интерфейсов 1С 7.7: большинство штатных форм настройки торгового оборудования и обработок обслуживания (например, fr_comm.ert) изначально поддерживают выбор портов только от COM1 до COM4.
  3. Занятость порта сторонним процессом: виртуальный последовательный порт уже открыт тестовой утилитой производителя, терминальной программой (PuTTY, HyperTerminal) или другим фоновым процессом операционной системы.
  4. Неверное место ввода параметров: параметры подключения последовательного порта (номер, скорость передачи, суффиксы) задаются не в справочнике торгового оборудования, а на специальной системной вкладке свойств драйвера.

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

Рассмотрим пошаговый процесс настройки сканера Honeywell 1450g в режиме виртуального COM-порта для работы с генерацией события ОбработкаВнешнегоСобытия.

Шаг 1. Перевод сканера в режим эмуляции COM и проверка порта в Windows

  1. Установим официальный драйвер виртуального последовательного порта от производителя (Honeywell HSM USB Serial Driver).
  2. Считаем настроечный управляющий штрихкод из руководства пользователя сканера: USB Serial Emulation (или TERMID 130).
  3. Откроем Диспетчер устройств Windows, перейдем в ветку Порты (COM и LPT) и найдем устройство Honeywell.
  4. Если операционная система автоматически присвоила номер порта выше 4 (например, COM13), изменим его на свободный порт из диапазона от COM1 до COM4 (например, COM3). Для этого перейдем в свойства устройства -> вкладка Параметры порта -> кнопка Дополнительно -> параметр Номер COM-порта.

Шаг 2. Настройка суффиксов сканера

Для корректного завершения передачи штрихкода во внешнюю компоненту 1С необходимо настроить суффикс возврата каретки (CR):

  1. Отсканируем служебный штрихкод сброса текущих суффиксов: Clear All Suffixes (или Remove Suffix).
  2. Отсканируем штрихкод добавления суффикса CR (код 13): Add CR Suffix.

Шаг 3. Настройка параметров подключения в 1С 7.7

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

  1. Запустим 1С:Предприятие 7.7 в режиме «Торговля и Склад».
  2. Откроем главное меню Сервис -> пункт Параметры.
  3. В открывшемся окне перейдем на вкладку Сканер штрих-кода (данная вкладка создается внешней компонентой Scanopos.dll при ее успешной регистрации в системе).
  4. В поле Порт выберем именно тот номер, который мы назначили в Диспетчере устройств (например, COM3).
  5. Установим скорость обмена (по умолчанию 9600), число бит данных (8) и укажем суффикс (13 или #13 / CR в зависимости от версии компоненты).
  6. Нажмем кнопку Применить и закроем окно параметров.

Шаг 4. Подключение оборудования в торговом интерфейсе

  1. Перейдем в меню Сервис -> Настройка торгового оборудования.
  2. Откроем закладку Сканер ШК.
  3. Установим флаг Сканер ШК включен.
  4. Нажмем кнопку Подключить (или ОК). Ошибка монопольного доступа исчезнет, и устройство перейдет в активный режим ожидания данных.

Альтернативные варианты интеграции

Если специфика рабочего места не позволяет использовать виртуальный COM-порт в диапазоне COM1–COM4, проанализируем альтернативные способы интеграции:

  1. Использование альтернативных внешних компонент: драйверы устройств ввода сторонних разработчиков (например, старые бесплатные релизы АТОЛ DTO 6.x/8.x или ScanCode.dll) поддерживают номера COM-портов до 99 и более стабильно обрабатывают разрывы связи USB-шины.
  2. Режим эмуляции клавиатуры с перехватом: сканер остается в стандартном режиме USB HID (эмуляция клавиатуры), а для перехвата штрихкодов в любой форме без потери фокуса используется клавиатурный хук (компонента типа ScanKBD.dll). В этом случае сканер посылает специальный управляющий префикс, библиотека перехватывает ввод и генерирует штатное событие ОбработкаВнешнегоСобытия(Источник, Событие, Данные).
← На главную