Не двигаются разделители форм в 1С через RemoteApp: детальный разбор проблемы и методы решения

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

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

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

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

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

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

Интересно, что эта проблема часто избирательна:

Рассмотрим подробные инструкции по исправлению этой ошибки на разных уровнях ИТ-инфраструктуры.

Способ 1. Обновление платформы «1С:Предприятие»

Первым делом проанализируем версию используемой платформы 1С. Ошибка с потерей фокуса элементов RemoteApp была официально признана разработчиками 1С и зарегистрирована в реестре ошибок под номером #20171485.

Если на вашем сервере установлены релизы линеек 8.3.10 (например, популярные в свое время 8.3.10.2299 или 8.3.10.2561) или ранние версии 8.3.11, вы гарантированно столкнетесь с этой проблемой.

Решение: обновите платформу «1С:Предприятие 8.3» на сервере приложений до версии 8.3.12.1412 или выше. В этих релизах разработчики оптимизировали алгоритм удержания фокуса ввода при работе в бесшовных окнах терминального сервера.

Способ 2. Обновление RDP-клиента (mstsc.exe) на рабочих станциях

Если серверная платформа обновлена, но у некоторых пользователей в филиалах проблема сохраняется, обратим внимание на клиентские компьютеры. Очень часто пользователи работают на устаревших операционных системах (например, Windows 7 без установленных пакетов обновлений) со старой версией протокола RDP.

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

  1. Проверим версию файла mstsc.exe в системной папке C:\Windows\System32\ на проблемном компьютере.
  2. Установим все накопительные обновления операционной системы через Центр обновлений Windows.
  3. Для операционных систем Windows 7 в обязательном порядке установим обновление протокола удаленного рабочего стола до версии RDP 8.0 или RDP 8.1 (пакеты обновлений KB2574819 и KB2592687, а также сопутствующие патчи). После обновления и перезагрузки клиентской машины координация мыши в RemoteApp восстанавливается.

Способ 3. Отключение расширенной графики RemoteFX через реестр сервера

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

Рассмотрим, как внести изменения в реестр терминального сервера (подходит для Windows Server 2012 R2, 2016, 2019):

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

Для наглядности приведем пример готового файла реестра (с расширением .reg), который можно применить на сервере:


Windows Registry Editor Version 5.00

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

После внесения изменений в реестр необходимо перезапустить службу удаленных рабочих столов (Terminal Services) или полностью перезагрузить сервер для вступления настроек в силу.

Способ 4. Отключение RemoteFX через групповые политики (GPO)

Если вы администрируете доменную структуру, гораздо удобнее отключить эту графическую оптимизацию централизованно с помощью редактора локальной групповой политики или доменных политик Active Directory. Выполним настройку по шагам:

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

Способ 5. Изменение настроек захвата фокуса на стороне клиента

В некоторых случаях операционная система локального компьютера блокирует попытки удаленного приложения вернуть себе фокус. Для устранения этой проблемы мы можем скорректировать таймаут блокировки переднего плана (Foreground Lock Timeout) в реестре пользователя. Это можно сделать как на сервере, так и на клиентской рабочей станции.

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

  1. Откройте редактор реестра (regedit) под учетной записью пользователя.
  2. Перейдите к разделу: HKEY_CURRENT_USER\Control Panel\Desktop
  3. Найдите параметр ForegroundLockTimeout. По умолчанию операционная система устанавливает там значение 200000 (в миллисекундах), что предотвращает передачу фокуса другим приложениям в течение 200 секунд.
  4. Измените значение этого параметра на 0.

Пример reg-файла для быстрого применения этой настройки:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"ForegroundLockTimeout"=dword:00000000

После изменения параметра пользователю необходимо выйти из своей учетной записи Windows (Log off) и зайти заново.

Способ 6. Временные «костыли» для пользователей без прав администратора

Что делать, если пользователь столкнулся с проблемой прямо сейчас, ему срочно нужно настроить интерфейс под себя (например, расширить табличную часть накладной), а администратора нет на месте или у него нет возможности оперативно применить системные настройки?

В этом случае мы можем предложить пользователям два простых практических обхода:

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

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

← На главную