Как исправить неактивные настройки сканера штрихкода в 1С 7.7 при работе через RDP и RemoteApp

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

При работе в системе 1С:Предприятие 7.7 через терминальный доступ (RDP или RemoteApp) системные администраторы часто сталкиваются со следующей проблемой: при попытке настроить торговое оборудование через меню Сервис — Параметры вкладка, отвечающая за параметры сканера штрихкода, оказывается полностью заблокированной. Все флажки, выпадающие списки выбора портов и скоростей отображаются серым цветом (не активны), хотя на форме настройки торгового оборудования система выдает обнадеживающее сообщение о том, что сканер успешно подключен.

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

Выясняем техническую причину блокировки

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

Если этот порт:

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

Рассмотрим рабочие методы решения этой проблемы.

Решение 1. Ручное изменение настроек в реестре Windows

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

  1. Полностью закроем все запущенные сеансы 1С:Предприятия у проблемного пользователя.
  2. Запустим редактор реестра. Для этого нажмем комбинацию клавиш Win + R, введем команду regedit и нажмем клавишу ввода.
  3. Перейдем к ветке реестра, где хранятся параметры торгового оборудования для текущего профиля пользователя: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Options\RScanner Profile
  4. Если в данной ветке настройки отсутствуют, обратите внимание на альтернативный путь, привязанный к конкретной информационной базе и пользователю 1С:
    
    HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<Имя_Вашей_Базы>\Profiles\<Имя_Пользователя_1С>\Settings\TradeWare\ScanOpos
    
  5. В правой части окна найдем параметр с именем Port. Этот параметр имеет числовой тип данных и указывает номер COM-порта (например, значение 1 соответствует COM1, значение 3 — COM3).
  6. Двойным кликом откроем параметр Port, переключим систему исчисления в Десятичную и введем номер того виртуального COM-порта, на который у нас проброшен физический сканер в сессии RDP.
  7. Обратите внимание на сопутствующие параметры: скорость передачи данных (BaudRate), биты данных (DataBits) и стоповые биты. Убедимся, что они соответствуют настройкам самого сканера (обычно скорость составляет 9600 или 115200).
  8. Закроем редактор реестра и снова запустим 1С под учетной записью пользователя. Откроем меню Сервис — Параметры — Сканер штрих-кода. Если порт проброшен корректно и свободен, вкладка настроек станет активной.

Решение 2. Проверка и настройка проброса портов через RDP (утилита Change Port)

При использовании RemoteApp или классического RDP-подключения очень важно убедиться, что физический порт локального компьютера правильно транслируется в терминальную сессию. Рассмотрим, как это проверить и настроить.

  1. Перед запуском RDP-подключения откроем свойства ярлыка подключения (или окно mstsc). Перейдем на вкладку Локальные ресурсы, в разделе «Локальные устройства и ресурсы» нажмем кнопку Подробнее... и обязательно установим флажок напротив пункта Порты. Без этого проброс COM-портов работать не будет.
  2. Запустим сеанс RemoteApp/RDP под пользователем.
  3. Откроем командную строку на сервере и введем команду для проверки текущих сопоставлений портов: change port /query
  4. Система выведет список всех подключенных портов. Мы должны увидеть строку вида: AUX = \Device\RdpDrPort\;COM3:3\tsclient\COM3 Это означает, что локальный порт COM3 успешно проброшен на сервер под тем же именем.
  5. Если автоматическое сопоставление не сработало или имя порта изменилось, мы можем вручную переназначить порты с помощью команды перенаправления: change port COM3: \Device\RdpDrPort\;COM3:3\tsclient\COM3

Важное ограничение: Стандартная библиотека ScanOPOS.dll старых версий не умеет работать с портами, чьи номера больше 9. Если ваш виртуальный порт эмуляции сканера определился в системе как COM11 или выше, обязательно зайдите в Диспетчер устройств на локальном компьютере, откройте свойства вашего COM-порта и в дополнительных параметрах принудительно измените его номер на свободный порт из диапазона от COM1 до COM9.

Решение 3. Подбор стабильной версии ScanOPOS.dll

Часто проблема кроется в самой внешней компоненте. Фирма 1С выпускала множество версий библиотеки ScanOPOS.dll. Некоторые старые релизы нестабильно вели себя в операционных системах начиная с Windows Server 2008 R2 и выше, теряя связь при малейших задержках в сети RDP.

Опытным путем на практике доказано, что наиболее стабильной и беспроблемной для платформы 7.7 является версия драйвера от 23.06.2008 (или более поздние версии линейки 8.0.x, например, 8.0.8.4). Если у вас установлена слишком старая версия (например, версии 1.x), настоятельно рекомендуется заменить файл ScanOPOS.dll в каталоге базы данных или в папке платформы Bin, предварительно зарегистрировав новую библиотеку в системе через утилиту:

regsvr32 "[ПутьКФайлу]\ScanOPOS.dll"

Решение 4. Переход на альтернативный драйвер АТОЛ

Если стандартный механизм 1С продолжает выдавать ошибки, рассмотрим кардинальный, но самый надежный способ решения — использование старого бесплатного драйвера устройств ввода от компании АТОЛ (версии до 2009 года, например, релиз 6.x).

Этот драйвер обладает колоссальным преимуществом перед стандартным решением от 1С:

Для настройки интеграции выполним следующие шаги:

  1. Установим драйвер АТОЛ на терминальном сервере.
  2. Убедимся, что библиотека Scaner1C.dll скопирована в каталог базы данных 1С или в каталог Bin платформы.
  3. Внимание! Для корректной регистрации и работы библиотеки АТОЛ в операционной системе обязательно должен присутствовать системный файл vcl30.dpl. Скопируем его в папку C:\Windows\System32 (для 32-разрядных ОС) или в C:\Windows\SysWOW64 (для 64-разрядных серверных ОС) и зарегистрируем компоненту.
  4. В настройках торгового оборудования 1С выберем обработку обслуживания, ориентированную на работу с драйвером АТОЛ, и укажем внешнюю компоненту Scaner1C.dll.

Используя приведенные инструкции по работе с реестром, терминальными портами и подбором внешних компонент, вы гарантированно сможете разблокировать настройки торгового оборудования и обеспечить стабильное сканирование штрихкодов вашими пользователями в среде RemoteApp.

← На главную