Как исправить проблему, когда в 1С:ERP служебные окна перекрываются и блокируют работу при использовании RDP

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет
← На главную

При работе в сложных конфигурациях, таких как 1С:ERP Управление предприятием, пользователи часто сталкиваются с неприятным визуальным багом: модальные окна или окна предупреждений «проваливаются» под основные формы приложения. Особенно ярко это проявляется при оформлении документа Заявка на расходование денежных средств (ЗРДС). Когда система пытается вывести предупреждение о том, что «Заданные условия поиска дали слишком много результатов», это сообщение оказывается заблокированным окном уточнения условий. В итоге интерфейс замирает, и пользователь не может нажать «ОК», так как кнопка физически скрыта другим окном.

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

Причины возникновения проблемы «залипших» окон

Для начала выясним причину, почему это происходит именно в терминальных сессиях. Проблема носит комплексный характер и связана с тем, как графическая подсистема Windows передает данные об отрисовке окон через протокол RDP. Когда платформа 1С инициирует создание нового окна, оно должно получить фокус ввода и встать на передний план. Однако из-за задержек сети или особенностей работы режима RemoteApp, операционная система может не успеть корректно передать фокус, и окно отрисовывается в «фоновом» слое относительно родительской формы.

К основным факторам влияния мы относим:

  1. Использование режима RemoteApp вместо полноценного рабочего стола.
  2. Различия в настройках масштабирования (DPI) на локальной машине пользователя и на сервере.
  3. Настройки реестра Windows, ограничивающие передачу фокуса (Foreground Lock).
  4. Накопленные ошибки в кэше настроек интерфейса пользователя SystemSettings.

Способ 1. Оперативные методы восстановления видимости (быстрое решение)

Если проблема застала пользователя врасплох и работу нужно продолжить немедленно, разберем несколько приемов, которые заставляют Windows принудительно перерисовать слои графики:

Использование комбинации Alt + Tab. Рассмотрим этот метод как самый простой. При нажатии данных клавиш операционная система выводит список всех активных окон. Переключение на другое приложение и возврат обратно в 1С часто заставляет систему корректно выстроить цепочку модальных окон, выводя предупреждение на передний план.

Изменение геометрии основного окна. Попробуем изменить размер основного окна программы 1С. Можно нажать кнопку «Развернуть во весь экран» или, наоборот, восстановить окно из полноэкранного режима. В момент изменения размера родительской формы 1С инициирует событие ОбновлениеОтображения, что вынуждает все дочерние окна пересчитать свои координаты и положение.

Системное меню окна (Alt + Пробел). Проанализируем ситуацию, когда окно активно, но скрыто. Нажатие Alt + Пробел вызывает системное меню активного (пусть и невидимого) окна. Если после этого нажать клавишу «Переместить» и нажать любую стрелку на клавиатуре, окно «прилипнет» к курсору и выйдет на передний план.

Способ 2. Настройка масштабирования и DPI

Часто виновником некорректного позиционирования окон являются настройки экрана. Выясним, как правильно настроить масштабирование. Если у пользователя на локальном компьютере установлен масштаб, отличный от 100% (например, 125% на 4K мониторе), а на сервере RDP жестко задано иное значение, координаты всплывающих окон могут рассчитываться с ошибкой.

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

  1. Убедимся, что в настройках экрана Windows на стороне клиента установлен масштаб 100%.
  2. Проверим аналогичные настройки в сессии RDP.
  3. Если используется несколько мониторов, попробуем запустить 1С на основном мониторе, так как распределение окон между экранами с разным разрешением — частая причина нарушения Z-порядка.

Способ 3. Корректировка параметров реестра Windows (для системных администраторов)

Рассмотрим более глубокую настройку на стороне сервера терминалов. В Windows существует механизм предотвращения кражи фокуса. Если приложение пытается создать окно, когда пользователь активно работает в другом месте, система может блокировать вывод этого окна поверх остальных.

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

  1. Запустите редактор реестра regedit от имени администратора.
  2. Перейдите в ветку: HKEY_CURRENT_USER\Control Panel\Desktop.
  3. Найдите параметр ForegroundLockTimeout.
  4. Установите его значение в 0 (десятичная система). Это позволит окнам 1С беспрепятственно выходить на передний план.

Способ 4. Очистка настроек размещения окон пользователя

Платформа 1С запоминает положение каждого открытого окна для каждого пользователя. Эти данные хранятся в специальной системной таблице. Если один раз окно предупреждения открылось некорректно (например, при сбое RDP-сессии), программа будет пытаться открывать его там же снова и снова.

Посмотрим, как сбросить эти настройки в информационной базе:

  1. Зайдем в раздел Администрирование — Настройки пользователей и прав.
  2. Выберем пункт Персональные настройки пользователей.
  3. Найдем нужного пользователя и перейдем в Настройки окна.
  4. Удалим настройки для форм, связанных с поиском документов и связями (или полностью очистим настройки для этого пользователя).

Также полезно выполнить полную очистку локального кэша, удалив содержимое папок %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8, предварительно завершив работу всех процессов 1С.

Способ 5. Управление аппаратным ускорением

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

В окне выбора информационной базы нажмем «Изменить», перейдем на последнюю закладку и в поле «Дополнительные параметры запуска» добавим ключ:

/NoGraphicsHardwareAcceleration

Это заставит платформу использовать программный рендеринг, который более стабильно работает в терминальных средах.

Заключение

Проблема перекрытия окон в 1С:ERP — это не программная ошибка кода конфигурации, а особенность взаимодействия платформы с графической оболочкой Windows в условиях удаленного доступа. Мы рекомендуем начинать решение с настройки масштаба экрана и очистки пользовательских настроек окон. Если это не помогает, следует переходить к правке реестра и обновлению версии платформы 1С, так как в последних релизах (начиная с 8.3.22) разработчики уделили значительное внимание стабильности Z-порядка окон в веб-клиенте и RDP-сессиях.

← На главную