При организации работы торгового оборудования (сканеров штрихкодов и терминалов сбора данных) на сервере терминалов Windows Server с конфигурацией «1С:Управление торговлей» часто возникают две специфические сложности. Во-первых, при последовательной установке старых версий драйверов АТОЛ (например, DTO6_2009_02_11) компоненты для разных типов устройств могут затирать регистрацию друг друга. Во-вторых, при пробросе виртуального RS-232 порта в RDP-сессию система 1С выдает ошибку: «Не удалось получить монопольный доступ к устройству».
Разберем подробно причины возникновения этих проблем и проанализируем шаги, необходимые для их устранения.
В старых версиях драйверов торгового оборудования АТОЛ (линейка DTO 6.x) компоненты для работы со сканерами штрихкодов (Устройства ввода) и терминалами сбора данных (ТСД) используют общие системные библиотеки и совпадающие ключи реестра Windows. Если запустить инсталлятор повторно и выбрать только одну галочку (например, «Устройства ввода»), мастер установки отменяет регистрацию или перезаписывает COM/ActiveX-объекты ранее установленного драйвера ТСД.
Для корректного решения этой проблемы разберем два основных варианта действий:
regsvr32 "C:\Program Files (x86)\ATOL\Drivers\Bin\Scaner_ATOL_v6.dll"
regsvr32 "C:\Program Files (x86)\ATOL\Drivers\Bin\PDT_ATOL_v6.dll"
Проверить корректность установки всех компонентов можно через меню Пуск — АТОЛ — Тест, где должны отображаться тестовые утилиты для всех выбранных категорий оборудования.
Проанализируем основные причины, по которым 1С не может занять виртуальный COM-порт в терминальном сеансе:
1. Занятость порта другим процессом
Последовательный порт в операционной системе Windows может открываться только одним приложением в каждый момент времени. Если перед запуском 1С или в фоновом режиме была открыта утилита «Тест драйвера АТОЛ», порт остается заблокированным. В этом случае необходимо полностью закрыть тестовую программу и перезапустить сеанс 1С.
2. Ограничение обработки номеров COM-портов выше COM9
Старые 32-разрядные компоненты 1С и драйверы АТОЛ DTO 6 обращаются к COM-портам по стандартному имени (COM16). Однако операционные системы Windows Server для обращения к портам с двузначными номерами (начиная с COM10 и выше) требуют специального синтаксиса виндовс-путей (\\.\COM16). Поскольку старый драйвер не использует данный синтаксис, вызов функции открытия порта завершается сбоем, который система 1С интерпретирует как отсутствие монопольного доступа.
Рассмотрим способы, позволяющие восстановить стабильную работу оборудования через RDP:
COM1 до COM9 (например, COM2). Повторяем проброс в RDP-клиенте и в настройках оборудования 1С указываем новый номер.
net use COM2: \\tsclient\COM1
Если проброс виртуальных COM-портов через RDP продолжает работать нестабильно из-за обрывов связи, рассмотрим перевод сканера штрихкодов в режим «разрыва клавиатуры» (USB-HID):
CR / Enter, код 13).