Функция ПолучитьСписокОткрытыхОкон() Экспорт ВключатьФормыЭлементов = ЭтаФорма.ВладелецФормы.ЭлементыФормы.ВключатьФормыЭлементов.Значение; // Определим перебором, сколько у нас объектов в системе КолвоОбъектов = 0; Для Каждого ТипОбъекта Из ВсеТипы Цикл Если (ТипОбъекта.Ключ <> "Константы") и (ТипОбъекта.Ключ <> "ОбщиеФормы") Тогда Для каждого Объект из Метаданные[ТипОбъекта.Ключ] Цикл Для каждого Фрм из Объект.Формы Цикл КолвоОбъектов = КолвоОбъектов + 1; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; ЭлементыФормы.ХодВыполненияОперации.МинимальноеЗначение = 1; ЭлементыФормы.ХодВыполненияОперации.МаксимальноеЗначение = КолвоОбъектов; ЭлементыФормы.ХодВыполненияОперации.Шаг = 100 / КолвоОбъектов; КолвоОбъектов = 0; сзСписокОкон = Новый СписокЗначений; // Перебор типов метаданных Для Каждого ТипОбъекта Из ВсеТипы Цикл Если (ТипОбъекта.Ключ <> "Константы") и (ТипОбъекта.Ключ <> "ОбщиеФормы") Тогда Для каждого Объект из Метаданные[ТипОбъекта.Ключ] Цикл Если ВключатьФормыЭлементов И(ТипОбъекта.Ключ = "Справочники" Или ТипОбъекта.Ключ = "Документы") Тогда // для элементов справочников и документов Менеджер = Вычислить((ТипОбъекта.Ключ + "[Объект.Имя]")); Выборка = Менеджер.выбрать(); пока Выборка.Следующий() Цикл ФормаЭлем = Выборка.Ссылка.ПолучитьФорму(); Если ФормаЭлем.Открыта() Тогда сзСписокОкон.Добавить(ФормаЭлем, Строка(Выборка.Ссылка) + " (" + Объект.Имя + ", форма элемента)"); КонецЕсли; КонецЦикла; КонецЕсли; Для каждого Фрм из Объект.Формы Цикл Форма = Вычислить(ТипОбъекта.Ключ + "[Объект.Имя].ПолучитьФорму(Фрм)"); КолвоОбъектов = КолвоОбъектов + 1; ЭлементыФормы.ХодВыполненияОперации.Значение = КолвоОбъектов; Попытка Если Форма.открыта() Тогда сзСписокОкон.Добавить(Форма, Объект.Имя + " (" + Фрм + ")"); КонецЕсли; Исключение Сообщить("ошибка"); КонецПопытки; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; Возврат сзСписокОкон; КонецФункции