Имя: Пароль:
1C
1С v8
Перебрать дочерние формы
0 murr_2012
 
13.08.19
10:43
1с 8.3.10 Обычные формы

Как в форме-владельце получить список открытых дочерних форм?
Хочу программно из формы владельца их позакрывать/обновить/т.п. при необходимости

ФормаПривата = ПолучитьФорму("ФормаПривата",ЭтаФорма,ИдентификаторСобеседника)
Если НЕ ФормаПривата.Открыта() Тогда
    ФормаПривата.Открыть();
Иначе
    ФормаПривата.Активизировать();
КонецЕсли;

Можно конечно во владельце вести список открытых дочерних форм и пытаться ловить от них сообщения ПриЗакрытии, но как-то оно некошерно.
1 murr_2012
 
13.08.19
10:54
Пока только приходит на ум складывать в список идентификаторы уникальности и перебирая их проверять открытость формы
Типа
Для Каждого Идентификатор Из СписокИдентификаторов Цикл
    ФормаПривата = ПолучитьФорму("ФормаПривата",ЭтаФорма,Идентификатор.Значение);
    Если ФормаПривата.Открыта() Тогда
        ФормаПривата.Закрыть();
    КонецЕсли;
КонецЦикла;

Но не красиво же.
2 dezss
 
13.08.19
11:04
ПолучитьОкна()?