Курсор не попадает на элементы форм в 1С через RemoteApp: как исправить смещение?

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

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

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

Разберем причину возникновения проблемы

Основная причина некорректного позиционирования курсора кроется в механизме трансляции координат окна из сессии терминального сервера на локальный рабочий стол пользователя. Когда приложение запускается не в полноценном рабочем столе RDP, а как отдельное окно RemoteApp, операционная система должна синхронизировать масштабирование (DPI) и параметры отрисовки графики между клиентом и сервером. Если в этой цепочке происходит сбой в расчетах (например, из-за разных версий драйверов графики или включенных функций ускорения RemoteFX), координаты «виртуального» курсора перестают совпадать с «физическим» курсором в окне 1С.

Особенно часто это проявляется на платформах 1С версий 8.3.17, 8.3.18 и выше при работе на Windows Server 2012 R2, 2016 или 2019.

Способ 1. Настройка групповых политик RemoteFX

Как показывает практика и обсуждения специалистов, наиболее эффективным методом является управление параметрами графического ускорения. Давайте вместе пройдем по шагам настройки сервера:

  1. На терминальном сервере (где установлена 1С) откройте редактор локальной групповой политики. Для этого нажмите Win + R и введите команду gpedit.msc.
  2. Перейдите по следующему пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Среда удаленных сеансов.
  3. Найдите параметр под названием «Использовать дополнительную графику RemoteFX для удаленного приложения RemoteApp» (Use advanced RemoteFX graphics for RemoteApp).
  4. Проанализируем текущее состояние. Если параметр стоит в значении «Не задано» или «Включено», попробуйте перевести его в состояние «Отключено» (Disabled).
  5. После изменения настройки необходимо применить политики. Откройте командную строку от имени администратора и выполните: gpupdate /force
  6. Для надежности рекомендуется завершить все активные сеансы пользователей и перезапустить службу удаленных рабочих столов или весь сервер.

Важное замечание: В некоторых случаях (в зависимости от версии ОС клиента) помогает обратное действие — включение этой политики. Однако для связки Windows Server 2012 R2 и платформы 8.3.18 чаще всего помогает именно принудительное отключение.

Способ 2. Управление графическим драйвером WDDM

В современных версиях Windows Server используется драйвер дисплея WDDM для сеансов удаленных столов. Иногда он конфликтует с методом отрисовки форм 1С в режиме RemoteApp. Выясним, как переключиться на классический драйвер XDDM:

  1. В том же разделе групповых политик (Среда удаленных сеансов) найдите параметр «Использовать графический драйвер дисплея WDDM для подключений к удаленным рабочим столам».
  2. Установите его в значение «Отключено».
  3. Это заставит систему использовать старый, но более стабильный в плане координат метод передачи графики. Проверьте результат после перезагрузки сессии.

Способ 3. Переопределение масштабирования высокого DPI

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

Выполним следующие действия на сервере:

  1. Перейдите в папку, где установлена платформа 1С (обычно это C:\Program Files (x86)\1cv8\номер_сборки\bin\).
  2. Найдите файл 1cv8.exe и нажмите на него правой кнопкой мыши, выбрав «Свойства».
  3. Перейдите на вкладку «Совместимость».
  4. Нажмите кнопку «Изменить параметры высокого DPI».
  5. В открывшемся окне установите флажок «Переопределите режим масштабирования высокого разрешения».
  6. В выпадающем списке «Масштабирование выполняется:» выберите значение «Приложение» или «Система». Поэкспериментируйте с этими значениями, так как результат зависит от версии клиентской ОС (Win 10 или Win 11).

Способ 4. Проверка масштаба на стороне клиента

Рассмотрим ситуацию со стороны пользователя. Если у пользователя на локальном компьютере (ноутбуке) установлено масштабирование экрана, например, 125% или 150%, а на сервере используется стандартные 100%, это гарантированно приведет к «сбитому» курсору в 1С RemoteApp.

Рекомендация: Попробуйте временно установить масштаб экрана 100% в настройках Windows на локальном ПК пользователя. Если после этого курсор в 1С начал попадать точно в цель, значит, причина в разнице DPI. В таком случае поможет либо обновление платформы до последних релизов (где работа с DPI была исправлена), либо использование способа №3, описанного выше.

Выводы и рекомендации

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

Также стоит помнить, что компания 1С регулярно выпускает исправления для подобных ошибок. Если ваш релиз платформы (например, 8.3.18.1128) демонстрирует такое поведение, рассмотрите возможность обновления до актуальных версий веток 8.3.21 или 8.3.22, где механизмы взаимодействия с RDP-протоколом были значительно переработаны и стабилизированы.

← На главную