Как настроить открытие всех управляемых форм в закладках в 1С 8.3

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

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

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

Выясняем причину: логика платформы 1С по умолчанию

Для начала разберем, почему возникает такое разделение. В управляемом приложении за поведение окон при открытии отвечает свойство формы «Режим открытия окна» (в современных релизах платформы оно также может называться «Режим блокировки при открытии окна»). Оно определяет, как именно форма будет позиционироваться в интерфейсе пользователя.

Данное свойство может принимать три основных значения:

  1. Независимый (Не блокировать) — форма открывается как полноценная вкладка в рабочей области приложения (в «Панели открытых»).
  2. Блокировать окно владельца — форма открывается во вспомогательном (всплывающем) окне поверх той формы, из которой она была вызвана (например, поверх списка). При этом родительское окно становится недоступным для кликов, пока открыта эта форма.
  3. Блокировать весь интерфейс — форма открывается поверх всех окон приложения и полностью парализует работу с остальными разделами программы до тех пор, пока пользователь её не закроет (модальное поведение).

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

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

Решение 1. Ручное изменение свойств созданных форм

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

Рассмотрим этот процесс пошагово:

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

После сохранения конфигурации форма данного объекта всегда будет открываться строго в закладках (вкладках) основного окна программы.

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

Решение 2. Использование возможностей интерфейса «Такси» и «Панели открытых»

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

Иногда пользователям кажется, что формы перестали открываться в закладках, хотя настройки форм не менялись. Причиной тому может быть случайное скрытие панели. Мы можем вернуть или перенастроить отображение вкладок силами самого пользователя без изменения кода:

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

Теперь все независимые формы будут наглядно представлены в виде вкладок на этой панели.

Решение 3. Программный перехват и открытие форм

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

Проанализируем работу метода ОткрытьФорму(). Данный метод предоставляет разработчику колоссальную гибкость управления поведением интерфейса благодаря своим параметрам.

Посмотрим на пример стандартного открытия формы:


ОткрытьФорму("Справочник.Контрагенты.Форма.ФормаЭлемента", Новый Структура("Ключ", СсылкаНаОбъект));

Чтобы принудительно заставить форму открыться в виде закладки (в основном окне), проигнорировав настройки, заданные в конфигураторе, мы можем передать специальный системный параметр отображения окна. В платформе 1С для этого используется свойство РежимОтображенияОкна.

Разберем пример программного вызова с принудительной установкой режима открытия в основном окне:


ПараметрыОкон = Новый Структура;
ПараметрыОкон.Вставить("РежимОтображенияОкна", РежимОтображенияОкнаФормы.ВОсновномОкне);

ОткрытьФорму(
    "Справочник.Контрагенты.Форма.ФормаЭлемента", 
    Новый Структура("Ключ", СсылкаНаОбъект), 
    ЭтотОбъект, 
    Истина, 
    , 
    , 
    , 
    РежимОткрытияОкнаФормы.Независимый
);

В данном коде мы передали значение перечисления РежимОткрытияОкнаФормы.Независимый в качестве 8-го параметра функции ОткрытьФорму(), что заставит систему проигнорировать стандартную установку «Блокировать окно владельца» для формы элемента справочника.

Как это работает в типовых конфигурациях (БСП)?

Многие разработчики обращают внимание на то, что в крупных типовых конфигурациях (таких как «Бухгалтерия предприятия», «ERP Управление предприятием» или «Управление нашей фирмой») даже вновь создаваемые «чистые» справочники без форм всё равно открываются в виде красивых закладок в основном окне.

Это реализовано благодаря интеграции встроенных механизмов Библиотеки стандартных подсистем (БСП). БСП берет на себя управление интерфейсом:

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

Эволюция платформы: переход от SDI к MDI и обратно

Проанализируем исторический аспект развития интерфейса платформы, так как это напрямую влияет на совместимость. В ветке форума упоминаются режимы совместимости «Версия 8.2» и «Версия 8.3.9».

В старых версиях платформы (до релиза 8.3.10) пользователи имели возможность самостоятельно выбирать режим работы окон прямо в пользовательском режиме предприятия через меню Сервис -> Параметры -> Внешний вид. Там присутствовали варианты «Формы в закладках» и «Формы в отдельных окнах» (так называемый многодокументный интерфейс MDI и однодокументный SDI).

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

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

/isdi

Этот ключ принудительно вернет интерфейсу режим открытия окон в отдельных сущностях операционной системы, однако помните, что современные конфигурации на управляемых формах под этот режим практически не оптимизируются.

Резюме

Мы детально изучили проблему отображения форм управляемого приложения в закладках и пришли к следующим выводам:

← На главную