Управляемые формы позволяют достаточно гибко работать с открытием/переключением форм и окон приложения. В настоящей статье рассмотрим пример открытия одной управляемой формы внутри другой.
Для демонстрации напишем простую обработку, в которой будет единственный реквизит формы "ИмяФормыДляОткрытия" строкового типа и команда формы.
Программный код обработчика команды следующий:
&НаКлиенте Процедура ОткрытьФормуПоИмени(Команда) ОткрытьФорму(ИмяФормыДляОткрытия, // Имя формы, введенной в реквизит "ИмяФормыДляОткрытия" , // Параметры открытия формы (в нашем случае их нет) ЭтаФорма, // Владелец открываемой формы (текущая форма) УникальныйИдентификатор, // GUID текущей формы ЭтаФорма.Окно); // Окно приложения, в котором будет открыта форма. КонецПроцедуры
Для открытия новой формы в текущем окне нам нужно в качестве пятого параметра метода "ОткрытьФорму" передать окно текущей формы. Так мы и сделали в примере выше.
В качестве примера имени формы введем путь основной формы объекта справочника "Номеклатура" (пример актуален для конфигурации "Управление торговлей" релиза 11):
"Справочник.Номенклатура.Форма.ФормаЭлемента"
Вот так это выглядит в режиме 1С:Предприятие:
нажам на кнопку команды "ОткрытьФормуПоИмени" в текущем окне будет открыта форма элемента номенклатуры:
Эта возможность повсеместно используется в типовых конфигурациях, например, при переходе от элемента справочника "Номенклатура" к списку присоединенных файлов по общей команде "Присоединенные файлы".
Обработчик общей команды представлен на следующем листинге:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ВладелецФайла", ПараметрКоманды); ПараметрыФормы.Вставить("ТолькоПросмотр", ПараметрыВыполненияКоманды.Источник.ТолькоПросмотр); ОткрытьФорму("ОбщаяФорма.ПрисоединенныеФайлы", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); // !!!! // Параметр окна открываемой формы КонецПроцедуры
Обратите внимание, тут в качестве окна для открываемой формы указывается окно формы-владельца.
Таким образом, открытие формы в текущем окне позволяет экономно использовать экранное пространство и создавать удобный интерфейс для пользователей.
Скачать обработку с примером из статьи.