Почему в 1С:Управление торговлей 11 мгновенно закрываются выпадающие меню после обновления платформы?

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

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

В данной статье мы подробно разберем, почему это происходит, и проанализируем последовательность шагов, которые помогут восстановить работоспособность программы. Проблема редко кроется в самой базе данных, чаще всего она вызвана конфликтом платформы с операционной системой, драйверами или режимом доставки приложения (RDP/RemoteApp).

Шаг 1: Проверка режима работы в терминальной среде (RDP и RemoteApp)

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

Выясним причину: выпадающее меню в 1С — это отдельное дочернее окно (popup). В некоторых реализациях протокола RDP фокус ввода некорректно передается от основного окна к выпадающему меню, и операционная система «считает», что пользователь кликнул мимо меню, мгновенно закрывая его. Разберем варианты решения:

  1. Переход на полноценный рабочий стол: Если проблема наблюдается только в RemoteApp, попробуем запустить сессию пользователя в режиме «полного рабочего стола» терминального сервера. Как показывает практика, в этом режиме взаимодействие окон происходит более стабильно.
  2. Правка реестра на сервере: Для опытных администраторов существует возможность изменить механизм передачи фокуса. Рассмотрим внесение изменений в системный реестр сервера. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishing можно попробовать создать или изменить параметр fSingleWindowPropagateFocus (тип DWORD), установив его значение в 1.

Шаг 2: Настройка масштабирования (DPI) и совместимости

Современные мониторы с высоким разрешением требуют масштабирования интерфейса (125%, 150% и выше). Платформа 1С не всегда корректно обрабатывает координаты клика при нестандартном DPI, что приводит к ложному срабатыванию события «потеря фокуса».

Разберем по шагам, как настроить совместимость исполняемого файла 1С:

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

Шаг 3: Отключение аппаратного ускорения графики

Платформа 1С активно использует ресурсы видеокарты для отрисовки управляемых форм. Если драйвер видеокарты (особенно это касается интегрированных решений Intel или старых драйверов NVIDIA/AMD) конфликтует с библиотеками отрисовки 1С, всплывающие окна могут «мерцать» или закрываться.

Проанализируем способы решения этой проблемы:

Во-первых, попробуем обновить драйвер видеокарты до последней стабильной версии. Во-вторых, если это не помогает, можно попробовать принудительно отключить аппаратное ускорение в настройках Windows или через реестр (параметр DisableHWAcceleration). Также в некоторых случаях помогает установка параметра запуска базы в строке дополнительных параметров: /NoDirectX, хотя официально этот ключ поддерживается не во всех релизах.

Шаг 4: Конфликт со службой сенсорного ввода

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

Рассмотрим, как ее отключить:

  1. Нажмем Win + R, введем services.msc и нажмем Enter.
  2. Найдем в списке службу «Touch Keyboard and Handwriting Panel Service» (в русской версии — «Служба сенсорной клавиатуры...»).
  3. Нажмем правой кнопкой — «Свойства».
  4. Установим тип запуска «Отключена» и нажмем кнопку «Остановить».
  5. Проверим работу 1С.

Шаг 5: Влияние стороннего ПО и «перехватчиков» фокуса

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

Проанализируем список потенциальных «виновников»:

Шаг 6: Проверка версии платформы на наличие известных багов

Если все вышеперечисленные методы не привели к успеху, стоит признать возможность ошибки в конкретном релизе платформы. Разработчики 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% рабочих станций.

← На главную