При переходе на новые релизы платформы 1С:Предприятие 8.3 (особенно это касается веток 8.3.12 и выше) системные администраторы и пользователи часто сталкиваются с крайне неприятным поведением интерфейса. Суть проблемы заключается в том, что при нажатии на любую кнопку, вызывающую выпадающее меню (например, «Главное меню», выбор типа документа или любой выпадающий список), окно меню появляется на долю секунды и тут же исчезает. Это делает работу в конфигурациях на управляемых формах, таких как Управление торговлей 11, практически невозможноной.
В данной статье мы подробно разберем, почему это происходит, и проанализируем последовательность шагов, которые помогут восстановить работоспособность программы. Проблема редко кроется в самой базе данных, чаще всего она вызвана конфликтом платформы с операционной системой, драйверами или режимом доставки приложения (RDP/RemoteApp).
Проанализируем ситуацию, описанную многими техническими специалистами: часто подобный «глюк» проявляется именно при использовании RemoteApp. Это технология, которая позволяет запускать приложение в отдельном окне, как если бы оно было локальным, хотя фактически оно выполняется на сервере.
Выясним причину: выпадающее меню в 1С — это отдельное дочернее окно (popup). В некоторых реализациях протокола RDP фокус ввода некорректно передается от основного окна к выпадающему меню, и операционная система «считает», что пользователь кликнул мимо меню, мгновенно закрывая его. Разберем варианты решения:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishing можно попробовать создать или изменить параметр fSingleWindowPropagateFocus (тип DWORD), установив его значение в 1.Современные мониторы с высоким разрешением требуют масштабирования интерфейса (125%, 150% и выше). Платформа 1С не всегда корректно обрабатывает координаты клика при нестандартном DPI, что приводит к ложному срабатыванию события «потеря фокуса».
Разберем по шагам, как настроить совместимость исполняемого файла 1С:
C:\Program Files\1cv8\номер_версии\bin\) и найдем файл 1cv8.exe.Платформа 1С активно использует ресурсы видеокарты для отрисовки управляемых форм. Если драйвер видеокарты (особенно это касается интегрированных решений Intel или старых драйверов NVIDIA/AMD) конфликтует с библиотеками отрисовки 1С, всплывающие окна могут «мерцать» или закрываться.
Проанализируем способы решения этой проблемы:
Во-первых, попробуем обновить драйвер видеокарты до последней стабильной версии. Во-вторых, если это не помогает, можно попробовать принудительно отключить аппаратное ускорение в настройках Windows или через реестр (параметр DisableHWAcceleration). Также в некоторых случаях помогает установка параметра запуска базы в строке дополнительных параметров: /NoDirectX, хотя официально этот ключ поддерживается не во всех релизах.
Выясним неочевидную причину: наличие в системе активной службы «Служба сенсорной клавиатуры и панели рукописного ввода». Даже если у вас обычный монитор без поддержки Touch Screen, эта служба может быть активна и перехватывать события нажатия мыши, интерпретируя их как касания, что вызывает закрытие меню.
Рассмотрим, как ее отключить:
Win + R, введем services.msc и нажмем Enter.Иногда виновата не сама платформа 1С, а приложения, работающие в фоновом режиме. Любая программа, которая анализирует ввод текста или управляет окнами, может стать причиной проблемы.
Проанализируем список потенциальных «виновников»:
1cv8.exe в список исключений.Если все вышеперечисленные методы не привели к успеху, стоит признать возможность ошибки в конкретном релизе платформы. Разработчики 1С иногда выпускают сборки, в которых механизм работы с «владельцем окна» (Owner) работает некорректно в определенных версиях Windows.
Посмотрим на рекомендации по обновлению:
В ветках 8.3.12 и 8.3.13 подобные проблемы фиксировались неоднократно. Если ваша конфигурация Управление торговлей 11 позволяет, рекомендуется выполнить переход на более современные и стабильные ветки платформы, например 8.3.15.1830, 8.3.16 или актуальные релизы 8.3.22+. Перед обновлением обязательно убедитесь, что версия конфигурации совместима с новой платформой (эту информацию можно найти в файле ReadMe.txt в дистрибутиве конфигурации).
Мы проанализировали основные причины мгновенного закрытия меню в 1С. Подведем итог: чаще всего проблема решается настройкой DPI в свойствах ярлыка или отключением службы сенсорного ввода. Если же вы работаете через RemoteApp, лучшим решением будет переход на стандартный RDP-клиент с отображением рабочего стола сервера. Совместное применение этих методов позволяет устранить проблему на 99% рабочих станций.