Почему формы новых документов открываются на заднем плане и как вернуть их в закладки?

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

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

Разберем причину: изменения в архитектуре 1С 8.3.15

Проанализируем, что именно изменилось в платформе. Начиная с версии 8.3.15.1534, компания «1С» внедрила масштабное обновление оконной системы. Главная цель этого обновления — обеспечить полноценную многооконность, позволяющую пользователям выносить отдельные документы или отчеты на разные мониторы. Это крайне полезно для аналитической работы, но в первых релизах этой ветки алгоритм управления Z-order (порядком наслоения окон) работал нестабильно.

Выясним основные причины «проваливания» окон на задний план:

  1. Новый механизм управления окнами: Система пытается определить, является ли окно модальным, блокирующим или независимым. При определенных настройках интерфейса «Такси» платформа ошибочно считает новое окно независимым приложением.
  2. Потеря фокуса ввода: При открытии формы выбора из нового документа фокус может вернуться не на родительскую форму, а на основное окно программы, из-за чего форма документа визуально скрывается за ним.
  3. Настройки пользователя: При обновлении платформы настройки расположения окон могут мигрировать некорректно, либо сбрасываться в состояние «по умолчанию», которое в 8.3.15 может предполагать открытие в отдельных окнах.

Способ 1: Настройка параметров интерфейса (Пользовательский режим)

Рассмотрим самый простой способ решения проблемы, который доступен непосредственно в режиме «1С:Предприятие». Если формы открываются в отдельных окнах, нам необходимо принудительно вернуть их в режим «в закладках».

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

  1. Откроем Главное меню (кнопка со стрелкой в левом верхнем углу или три полоски в новых версиях).
  2. Перейдем в раздел Настройки (или Сервис), далее выберем пункт Параметры.
  3. В открывшемся окне найдем группу Внешний вид.
  4. Посмотрим на параметр Открытие форм. Здесь доступны два варианта: «В закладках» и «В отдельных окнах».
  5. Установим переключатель в положение В закладках.
  6. Нажмем кнопку «ОК» и перезапустим программу для применения изменений.

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

Способ 2: Очистка кэша и сброс настроек расположения окон

Проанализируем ситуацию, когда изменение настроек через «Параметры» не помогает или настройка сбрасывается. В этом случае необходимо произвести более глубокую очистку.

Посмотрим на алгоритм очистки:

  1. Сброс настроек окон: Зайдем в меню «Функции для технического специалиста» (ранее «Все функции»). В разделе «Стандартные» выберем пункт Управление настройками форм. Выберем проблемного пользователя и удалим все настройки, связанные с расположением окон.
  2. Полная очистка кэша: Удалим содержимое папок %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8 на компьютере пользователя. Это заставит платформу заново пересчитать параметры интерфейса при следующем запуске.

Способ 3: Настройка свойств конфигурации (Для программиста)

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

Рассмотрим подробнее свойства корня конфигурации:

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

Также обратите внимание на программный код открытия форм. Если в коде используется метод ОткрытьФорму(), проверьте передаваемые параметры. Если в расширении или основной конфигурации для формы установлено свойство РежимОткрытияФормыПриложения в значение Независимый, она будет игнорировать общие настройки интерфейса и открываться в новом окне.


// Пример программной проверки режима открытия
ПараметрыФормы = Новый Структура;
// Если мы принудительно задаем режим открытия в коде:
ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", ПараметрыФормы, , , ВариантОткрытияОкна.ВЗакладках);

Технические особенности Linux-версий и видеоускорения

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

Если вышеуказанные методы не помогают, попробуйте запустить 1С с отключенным аппаратным рендерингом. Для этого в дополнительных параметрах запуска информационной базы в стартере (окно выбора баз) добавьте ключ:

/NoVBRender

Этот параметр отключает использование аппаратного ускорения при отрисовке форм, что часто исправляет проблемы с «невидимыми» окнами и некорректным отображением Z-порядка элементов интерфейса.

Резюме

Мы выяснили, что открытие форм на заднем плане в 1С 8.3.15 — это следствие внедрения новой многооконной системы. Для исправления ситуации в большинстве случаев достаточно:

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

← На главную