← На главную
Подключение современного торгового оборудования к классическим конфигурациям на платформе 1С:Предприятие 7.7 нередко сопровождается ошибками инициализации портов. Одной из наиболее частых проблем при работе со сканерами штрихкодов (например, Honeywell Voyager 1450g), переведенными в режим эмуляции последовательного порта (USB-COM / USB Serial), является сообщение: «Не удалось получить монопольный доступ к устройству».
Разберем детально, почему возникает данное сообщение, как устроена обработка событий сканера в 1С 7.7 и как правильно настроить связку оборудования и учетной системы.
Причины возникновения ошибки монопольного доступа
В типовой конфигурации «Торговля и Склад 7.7» для взаимодействия со сканерами штрихкода используется внешняя компонента Scanopos.dll (или ее аналоги). Сообщение о невозможности монопольного захвата порта может возникать в следующих случаях:
- Несоответствие номеров портов: в операционной системе драйвер виртуального COM-порта выделил устройству порт с большим номером (например,
COM13), а в настройках 1С по умолчанию указан порт из диапазона COM1–COM4, который в системе отсутствует. Компонента Scanopos.dll при обращении к несуществующему порту выдает стандартный текст о блокировке монопольного доступа. - Ограничение типовых интерфейсов 1С 7.7: большинство штатных форм настройки торгового оборудования и обработок обслуживания (например,
fr_comm.ert) изначально поддерживают выбор портов только от COM1 до COM4. - Занятость порта сторонним процессом: виртуальный последовательный порт уже открыт тестовой утилитой производителя, терминальной программой (PuTTY, HyperTerminal) или другим фоновым процессом операционной системы.
- Неверное место ввода параметров: параметры подключения последовательного порта (номер, скорость передачи, суффиксы) задаются не в справочнике торгового оборудования, а на специальной системной вкладке свойств драйвера.
Пошаговый алгоритм правильной настройки сканера
Рассмотрим пошаговый процесс настройки сканера Honeywell 1450g в режиме виртуального COM-порта для работы с генерацией события ОбработкаВнешнегоСобытия.
Шаг 1. Перевод сканера в режим эмуляции COM и проверка порта в Windows
- Установим официальный драйвер виртуального последовательного порта от производителя (Honeywell HSM USB Serial Driver).
- Считаем настроечный управляющий штрихкод из руководства пользователя сканера: USB Serial Emulation (или TERMID 130).
- Откроем Диспетчер устройств Windows, перейдем в ветку Порты (COM и LPT) и найдем устройство Honeywell.
- Если операционная система автоматически присвоила номер порта выше 4 (например,
COM13), изменим его на свободный порт из диапазона от COM1 до COM4 (например, COM3). Для этого перейдем в свойства устройства -> вкладка Параметры порта -> кнопка Дополнительно -> параметр Номер COM-порта.
Шаг 2. Настройка суффиксов сканера
Для корректного завершения передачи штрихкода во внешнюю компоненту 1С необходимо настроить суффикс возврата каретки (CR):
- Отсканируем служебный штрихкод сброса текущих суффиксов: Clear All Suffixes (или Remove Suffix).
- Отсканируем штрихкод добавления суффикса CR (код 13): Add CR Suffix.
Шаг 3. Настройка параметров подключения в 1С 7.7
Обратим внимание на важную особенность платформы 1С 7.7: параметры работы внешней компоненты хранятся в реестре операционной системы текущего пользователя и настраиваются через общее системное меню параметров.
- Запустим 1С:Предприятие 7.7 в режиме «Торговля и Склад».
- Откроем главное меню Сервис -> пункт Параметры.
- В открывшемся окне перейдем на вкладку Сканер штрих-кода (данная вкладка создается внешней компонентой
Scanopos.dll при ее успешной регистрации в системе). - В поле Порт выберем именно тот номер, который мы назначили в Диспетчере устройств (например,
COM3). - Установим скорость обмена (по умолчанию
9600), число бит данных (8) и укажем суффикс (13 или #13 / CR в зависимости от версии компоненты). - Нажмем кнопку Применить и закроем окно параметров.
Шаг 4. Подключение оборудования в торговом интерфейсе
- Перейдем в меню Сервис -> Настройка торгового оборудования.
- Откроем закладку Сканер ШК.
- Установим флаг Сканер ШК включен.
- Нажмем кнопку Подключить (или ОК). Ошибка монопольного доступа исчезнет, и устройство перейдет в активный режим ожидания данных.
Альтернативные варианты интеграции
Если специфика рабочего места не позволяет использовать виртуальный COM-порт в диапазоне COM1–COM4, проанализируем альтернативные способы интеграции:
- Использование альтернативных внешних компонент: драйверы устройств ввода сторонних разработчиков (например, старые бесплатные релизы АТОЛ DTO 6.x/8.x или
ScanCode.dll) поддерживают номера COM-портов до 99 и более стабильно обрабатывают разрывы связи USB-шины. - Режим эмуляции клавиатуры с перехватом: сканер остается в стандартном режиме USB HID (эмуляция клавиатуры), а для перехвата штрихкодов в любой форме без потери фокуса используется клавиатурный хук (компонента типа
ScanKBD.dll). В этом случае сканер посылает специальный управляющий префикс, библиотека перехватывает ввод и генерирует штатное событие ОбработкаВнешнегоСобытия(Источник, Событие, Данные).