При работе с программными продуктами 1С:Предприятие 8.3 в режиме опубликованных приложений (RemoteApp) системные администраторы часто сталкиваются с неприятным визуальным багом. Суть проблемы заключается в том, что курсор мыши визуально находится в одном месте, а фактический клик происходит со смещением (обычно выше или ниже реального расположения элемента). Это делает работу пользователей практически невозможной: они не могут попасть по строкам списка, кнопкам меню или элементам управления в формах документов.
В этой статье мы подробно разберем, почему возникает данная ситуация, проанализируем влияние настроек графического протокола RDP и рассмотрим пошаговые методы устранения проблемы, начиная от групповых политик и заканчивая тонкими настройками исполняемых файлов.
Основная причина некорректного позиционирования курсора кроется в механизме трансляции координат окна из сессии терминального сервера на локальный рабочий стол пользователя. Когда приложение запускается не в полноценном рабочем столе RDP, а как отдельное окно RemoteApp, операционная система должна синхронизировать масштабирование (DPI) и параметры отрисовки графики между клиентом и сервером. Если в этой цепочке происходит сбой в расчетах (например, из-за разных версий драйверов графики или включенных функций ускорения RemoteFX), координаты «виртуального» курсора перестают совпадать с «физическим» курсором в окне 1С.
Особенно часто это проявляется на платформах 1С версий 8.3.17, 8.3.18 и выше при работе на Windows Server 2012 R2, 2016 или 2019.
Как показывает практика и обсуждения специалистов, наиболее эффективным методом является управление параметрами графического ускорения. Давайте вместе пройдем по шагам настройки сервера:
Win + R и введите команду gpedit.msc.
gpupdate /force
Важное замечание: В некоторых случаях (в зависимости от версии ОС клиента) помогает обратное действие — включение этой политики. Однако для связки Windows Server 2012 R2 и платформы 8.3.18 чаще всего помогает именно принудительное отключение.
В современных версиях Windows Server используется драйвер дисплея WDDM для сеансов удаленных столов. Иногда он конфликтует с методом отрисовки форм 1С в режиме RemoteApp. Выясним, как переключиться на классический драйвер XDDM:
Если манипуляции с сервером не дали 100% результата, проанализируем настройки самого исполняемого файла 1С. Проблема может быть связана с тем, что 1С пытается самостоятельно обрабатывать масштабирование, конфликтуя с настройками Windows.
Выполним следующие действия на сервере:
C:\Program Files (x86)\1cv8\номер_сборки\bin\).1cv8.exe и нажмите на него правой кнопкой мыши, выбрав «Свойства».Рассмотрим ситуацию со стороны пользователя. Если у пользователя на локальном компьютере (ноутбуке) установлено масштабирование экрана, например, 125% или 150%, а на сервере используется стандартные 100%, это гарантированно приведет к «сбитому» курсору в 1С RemoteApp.
Рекомендация: Попробуйте временно установить масштаб экрана 100% в настройках Windows на локальном ПК пользователя. Если после этого курсор в 1С начал попадать точно в цель, значит, причина в разнице DPI. В таком случае поможет либо обновление платформы до последних релизов (где работа с DPI была исправлена), либо использование способа №3, описанного выше.
Подводя итог, можно сказать, что проблема смещения курсора является комплексной. Рассмотрим краткий алгоритм действий при возникновении такой ошибки:
RemoteFX в групповых политиках сервера.1cv8.exe.WDDM, возвращаясь к XDDM.Также стоит помнить, что компания 1С регулярно выпускает исправления для подобных ошибок. Если ваш релиз платформы (например, 8.3.18.1128) демонстрирует такое поведение, рассмотрите возможность обновления до актуальных версий веток 8.3.21 или 8.3.22, где механизмы взаимодействия с RDP-протоколом были значительно переработаны и стабилизированы.