Почему в 1С на терминальном сервере COM-объекты работают только под администратором и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переносе рабочих мест пользователей 1С:Предприятия на новый терминальный сервер (Remote Desktop Services) нередко возникает ситуация, когда внешние компоненты, драйверы оборудования (РРО, ККТ) или вспомогательные обработки для парсинга буфера обмена успешно выполняются только под учетной записью администратора. Если сеанс запускает обычный пользователь терминала (или даже администратор без явного повышения прав), работа с COM-объектами завершается ошибками доступа.

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

Причина 1. Блокировка доступа к буферу обмена политиками безопасности

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

Разберем по шагам, как снять это ограничение с помощью редактора локальной групповой политики:

  1. Нажмите сочетание клавиш Win + R, введите gpedit.msc и нажмите Enter.
  2. Перейдите по следующему пути: Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Internet Explorer → Панель управления браузером → Вкладка «Безопасность» → Зона Интернета.
  3. Найдите параметр «Разрешить операции вырезания, копирования и вставки из буфера обмена с помощью сценария».
  4. Откройте свойства политики, переключите состояние в «Включено», а в выпадающем списке параметров выберите значение «Включить» (Enable).
  5. Примените изменения и выполните обновление политик командой gpupdate /force в командной строке.

Причина 2. Ограничение прав на системный реестр для драйверов оборудования (OPOS / РРО)

Многие OPOS-драйверы фискальных регистраторов и принтеров чеков создают служебные ключи и хранят свои параметры конфигурации в системной ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE. По умолчанию обычные пользователи терминала имеют права только на чтение этих параметров. Если драйвер при инициализации или отправке чека на печать пытается модифицировать системные ключи или записывать в них статус устройства, операция блокируется.

Рассмотрим, как настроить права на ветку реестра драйвера:

  1. Запустите редактор реестра: нажмите Win + R, введите regedit и подтвердите запуск с правами администратора.
  2. Найдите ветку, созданную драйвером оборудования. В зависимости от разрядности драйвера путь может располагаться в HKEY_LOCAL_MACHINE\SOFTWARE\OLEforRetail или HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\OLEforRetail (а также в ветках наименования конкретного производителя).
  3. Кликните правой кнопкой мыши по целевой ветке и выберите пункт «Разрешения...».
  4. Добавьте группу пользователей терминала (например, «Пользователи удаленного рабочего стола» или конкретную доменную группу пользователей 1С).
  5. Установите флажки «Полный доступ» и «Чтение», затем нажмите кнопку «Дополнительно» и убедитесь, что разрешения наследуются на все дочерние подразделы.

Причина 3. Разграничение прав DCOM и настройки COM+

Проанализируем конфигурацию прав службы компонентов DCOM на терминальном сервере, когда COM-объект или V83.COMConnector не запускается от имени непривилегированного пользователя:

  1. Откройте оснастку управления компонентами: выполните команду dcomcnfg.
  2. Перейдите в Службы компонентов → Компьютеры → Мой компьютер.
  3. Кликните правой кнопкой мыши по пункту «Мой компьютер» и перейдите в «Свойства».
  4. На вкладке «Безопасность COM» проверьте разделы «Права доступа» и «Права запуска и активации»: в подразделах «Ограничения» (Edit Limits) пользователи или группа «Прошедшие проверку» (Authenticated Users) должны иметь права на «Локальный запуск» и «Локальную активацию».
  5. Если используется отдельное приложение COM+, откройте его свойства и на вкладке «Удостоверение» (Identity) убедитесь, что не установлен режим «Интерактивный пользователь» (Interactive User). В терминальной среде необходимо использовать вариант «Запускающий пользователь» (Launching User) либо указывать выделенную системную учетную запись.

Причина 4. Разрядность библиотек и права на каталоги

Выясним дополнительные технические факторы, которые могут препятствовать вызову COM-компонентов:

  1. Несоответствие разрядности: 32-разрядный клиент 1С:Предприятия требует регистрации 32-битных версий DLL. Регистрацию следует выполнять через утилиту из каталога SysWoW64: %SystemRoot%\SysWoW64\regsvr32.exe "C:\Path\To\Component.dll"
  2. Права на каталоги логов и временных файлов: Устаревшие COM-драйверы могут пытаться вести журнал работы в собственном каталоге установки внутри C:\Program Files (x86)\. Убедитесь, что у терминальных пользователей есть права на запись в рабочую папку драйвера и в системный каталог C:\Windows\Temp.

Рекомендации по отказу от COM-технологий в 1С

В современных конфигурациях 1С рекомендуется уходить от прямой работы с COM-объектами и OPOS-драйверами в терминальных сессиях:

  1. Для интеграции с торговым оборудованием переходите на сертифицированные драйверы стандарта Native API, подключаемые через функцию ПодключитьВнешнююКомпоненту. Это избавляет от зависимости от системного реестра Windows и службы DCOM.
  2. Для межсистемного обмена данными между базами 1С вместо COMConnector используйте встроенные HTTP-сервисы или Web-сервисы (SOAP), обеспечивающие стабильную работу независимо от сеансов пользователей на RDS-сервере.
← На главную