Для отображения персонализированного контента и рекламных сообщений, а также хранения личных настроек на локальном компьютере веб-сайт www.vdgb.ru используют технологию cookie и аналогичные. Продолжив использование наших веб-сайтов, Вы даете согласие на обработку персональных данных, выражаете согласие с Политикой конфиденциальности www.vdgb.ru и применением этих технологий.

ПРОДАЖА И ВНЕДРЕНИЕ 1С

по всей России

Форма ~ Получение списка открытых окон и вывод свойств элементов

Проконсультироваться
со специалистом 1С

Консультироваться

Код 1C v 8.х
 Функция ПолучитьСписокОткрытыхОкон() Экспорт
      

ВключатьФормыЭлементов = ЭтаФорма.ВладелецФормы.ЭлементыФормы.ВключатьФормыЭлементов.Значение;

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

ЭлементыФормы.ХодВыполненияОперации.МинимальноеЗначение = 1;
ЭлементыФормы.ХодВыполненияОперации.МаксимальноеЗначение = КолвоОбъектов;
ЭлементыФормы.ХодВыполненияОперации.Шаг = 100 / КолвоОбъектов;

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


Заказать обратный звонок

Позвонить
Отправлено! В самое ближайшее время наш менеджер свяжется с Вами.