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