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

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

При работе в программных продуктах «1С:Предприятие» через технологию доставки приложений RemoteApp системные администраторы и пользователи часто сталкиваются с крайне неприятной проблемой. При разворачивании модальных или обычных окон на весь экран (особенно при использовании современного интерфейса «Такси») происходит визуальный сдвиг всех элементов управления вниз примерно на 5 миллиметров (на высоту заголовка окна). При этом нижняя часть окна, где обычно располагаются кнопки подтверждения («ОК», «Записать и закрыть», «Отмена»), уходит за пределы видимости экрана.

Самое неприятное в этой ситуации — нарушение позиционирования курсора мыши. Координатная сетка кликов «остается» на прежнем месте, в то время как визуальное отображение элементов сдвигается. В результате пользователю приходится наводить курсор на несколько миллиметров выше реального расположения кнопки или поля ввода, чтобы совершить клик. Это делает работу в программе практически невозможной и вызывает массу жалоб.

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

Выясняем причину: почему ломается масштаб в RemoteApp?

Давайте проанализируем ситуацию с технической точки зрения. Данная проблема тесно связана с механизмом отрисовки графики и взаимодействия виртуальных каналов RDP при передаче отдельных окон приложений. В частности, виновником сдвига является технология усовершенствованного графического ускорения RemoteFX (а именно режим Advanced RemoteFX App), которая некорректно рассчитывает геометрию окон при их максимизации.

Эта проблема официально признана компанией 1С. В базе ошибок зарегистрирован баг под номером 30175024. Официальное описание гласит: «В клиенте, запущенном с помощью Remote APP на Windows Server, в заголовке приложения может отображаться белая полоса и нарушаться позиционирование указателя мыши». Хотя разработчики платформы заявили об исправлении этой ошибки в релизах, начиная с 8.3.18.1289, на практике администраторы серверов Windows Server 2012 и 2012 R2 продолжают сталкиваться с ней даже на более свежих версиях платформы.

Ниже мы подробно рассмотрим несколько шагов для полного устранения этой проблемы.

Решение 1. Самый надежный способ (отключение Advanced RemoteFX на сервере через реестр)

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

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

  1. Нажмите комбинацию клавиш Win + R, введите команду regedit и нажмите Enter для запуска редактора реестра от имени администратора.
  2. Перейдите по следующему ветвлению реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
  3. В правой части окна найдите параметр с именем fEnableRemoteFXAdvancedRemoteApp.
  4. Если такого параметра нет, кликните правой кнопкой мыши по пустому месту, выберите Создать -> Параметр DWORD (32 бита) и присвойте ему имя fEnableRemoteFXAdvancedRemoteApp.
  5. Дважды щелкните по созданному параметру и установите его значение равным 0 (в десятичной системе исчисления).
  6. Для вступления изменений в силу пользователям необходимо полностью завершить свои терминальные сеансы (сделать Logoff, а не просто закрыть окно крестиком) либо перезагрузить сервер терминалов.

Для автоматизации этого процесса на сервере вы можете создать и применить файл конфигурации реестра .reg со следующим содержимым:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
"fEnableRemoteFXAdvancedRemoteApp"=dword:00000000

Решение 2. Обходной путь на стороне клиента (если нет доступа к серверу)

Если у вас нет прав администратора на терминальном сервере, либо изменения на сервере по каким-то причинам нежелательны, аналогичную настройку отключения усовершенствованного режима RemoteFX можно применить локально на рабочем компьютере конкретного пользователя. Это заставит локальный клиент RDP запрашивать стандартный вывод графики.

Разберем по шагам действия на клиентской машине:

  1. Откройте редактор реестра (regedit) на компьютере пользователя.
  2. Перейдите по пути:
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client
  3. Создайте новый параметр типа DWORD (32 бита) с именем EnableAdvancedRemoteFXRemoteAppSupport.
  4. Задайте этому параметру значение 0.
  5. Перезапустите подключение к RemoteApp.

Решение 3. Режим совместимости исполняемого файла 1С

Существует еще один простой и быстрый способ, который часто помогает «на лету» устранить проблему смещения. Это запуск тонкого или толстого клиента 1С в режиме совместимости с более старой версией операционной системы непосредственно на сервере.

Для этого выполните следующие действия:

  1. Найдите исполняемый файл платформы 1С на сервере терминалов. По умолчанию он находится по пути:
    C:\Program Files\1cv8\<номер_версии_платформы>\bin\1cv8c.exe (для тонкого клиента) или 1cv8.exe (для толстого клиента).
  2. Кликните по файлу правой кнопкой мыши и выберите Свойства.
  3. Перейдите на вкладку Совместимость.
  4. Установите флажок напротив пункта «Запустить программу в режиме совместимости с:» и выберите в выпадающем списке Windows 7.
  5. Важно: Нажмите кнопку «Изменить параметры для всех пользователей» (внизу окна) и повторите настройки там. Если этого не сделать, режим совместимости применится только к учетной записи текущего администратора.
  6. Нажмите Применить и ОК.

Важное предостережение: Хотя этот метод прост в реализации, системные администраторы часто отмечают побочный эффект. При принудительном включении режима совместимости с Windows 7 процесс 1cv8c.exe может начать потреблять больше ресурсов, а отрисовка интерфейсов при динамическом обновлении форм начнет заметно подтормаживать. Поэтому используйте данный метод как временный «костыль», отдавая предпочтение Решению 1 и Решению 2.

Решение 4. Обновление операционной системы сервера

Как показывает практика эксплуатации высоконагруженных терминальных ферм, данная проблема практически полностью отсутствует на операционных системах начиная с Windows Server 2016 и выше. В этих версиях Microsoft существенно переработала протокол RDP и улучшила механизмы масштабирования окон для RemoteApp.

Если на вашем предприятии до сих пор используется Windows Server 2012 или 2012 R2, мы рекомендуем запланировать обновление инфраструктуры до актуальных версий Windows Server. Это не только решит проблему со сдвигом окон в 1С, но и повысит общую безопасность, стабильность и скорость работы терминального сервера.

Дополнительные факторы: масштабирование экрана (DPI) и тень мыши

Если после выполнения описанных выше процедур вы всё ещё замечаете небольшую рассинхронизацию курсора, обратите внимание на следующие нюансы:

1. Масштабирование экрана в Windows (DPI): RemoteApp крайне чувствителен к нестандартному масштабу экрана на локальной машине пользователя (например, 125% или 150%, часто используемому на ноутбуках с Full HD экранами). По возможности установите на клиентской машине масштаб 100% или настройте в свойствах ярлыка подключения RDP поведение масштабирования (вкладка «Совместимость» -> «Изменить параметры высокого DPI» -> переопределите масштабирование в пользу приложения или системы).

2. Тень указателя мыши: В редких случаях рассинхронизация координат клика лечится отключением эффекта тени курсора на сервере. В сессии пользователя перейдите в Панель управления -> Мышть -> Указатели и снимите галочку «Включить тень указателя».

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

← На главную