1С 8.3 Найти открытую форму(ы) по имени
Данные > Примеры кода 1С > 1С 8.3 Форма, элементы
Перейти в раздел примеры кода 1С 8.3:
Найти открытую форму по имени в 1С 8.3:
// Возвращает первую найденную открытую форму по имени (или Неопределено)
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/140
//
// Параметры:
// ИмяФормы - Строка
//
// Возвращаемое значение:
// - ФормаКлиентскогоПриложения - найденная форма
// - Неопределено - не удалось найти форму
//
// Пример:
// ОткрытаяФорма = ОткрытаяФормаПоИмени("Обработка.МояОбработка.Форма.МояФорма");
//
Функция ОткрытаяФормаПоИмени(ИмяФормы) Экспорт
Результат = ОткрытыеФормыПоИмени(ИмяФормы, 1);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат[0];
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
// Возвращает найденные открытые формы по имени
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/140
//
// Параметры:
// ИмяФормы - Строка
// ВернутьПервые - Число - Если указать, то возвращаются только первые N формы
//
// Возвращаемое значение:
// Массив из ФормаКлиентскогоПриложения
//
// Пример:
// ОткрытыеФормы = ОткрытыеФормыПоИмени("Обработка.МояОбработка.Форма.МояФорма");
// Сообщить("Уже открытых форм обработки: " + ОткрытыеФормы.Количество());
//
Функция ОткрытыеФормыПоИмени(ИмяФормы, ВернутьПервые = 0) Экспорт
Результат = Новый Массив; // Массив из ФормаКлиентскогоПриложения
ОткрытыеОкна = ПолучитьОкна();
Для Каждого ОткрытоеОкно Из ОткрытыеОкна Цикл
Для Каждого ОткрытаяФорма Из ОткрытоеОкно.Содержимое Цикл //ФормаКлиентскогоПриложения
Если ТипЗнч(ОткрытаяФорма) = Тип("ФормаКлиентскогоПриложения") Тогда
Если ОткрытаяФорма.ИмяФормы = ИмяФормы Тогда
Результат.Добавить(ОткрытаяФорма);
Если ВернутьПервые > 0 И Результат.Количество() = ВернутьПервые Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Результат;
КонецФункции
// MIT License
//
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/140
//
// Параметры:
// ИмяФормы - Строка
//
// Возвращаемое значение:
// - ФормаКлиентскогоПриложения - найденная форма
// - Неопределено - не удалось найти форму
//
// Пример:
// ОткрытаяФорма = ОткрытаяФормаПоИмени("Обработка.МояОбработка.Форма.МояФорма");
//
Функция ОткрытаяФормаПоИмени(ИмяФормы) Экспорт
Результат = ОткрытыеФормыПоИмени(ИмяФормы, 1);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат[0];
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
// Возвращает найденные открытые формы по имени
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/140
//
// Параметры:
// ИмяФормы - Строка
// ВернутьПервые - Число - Если указать, то возвращаются только первые N формы
//
// Возвращаемое значение:
// Массив из ФормаКлиентскогоПриложения
//
// Пример:
// ОткрытыеФормы = ОткрытыеФормыПоИмени("Обработка.МояОбработка.Форма.МояФорма");
// Сообщить("Уже открытых форм обработки: " + ОткрытыеФормы.Количество());
//
Функция ОткрытыеФормыПоИмени(ИмяФормы, ВернутьПервые = 0) Экспорт
Результат = Новый Массив; // Массив из ФормаКлиентскогоПриложения
ОткрытыеОкна = ПолучитьОкна();
Для Каждого ОткрытоеОкно Из ОткрытыеОкна Цикл
Для Каждого ОткрытаяФорма Из ОткрытоеОкно.Содержимое Цикл //ФормаКлиентскогоПриложения
Если ТипЗнч(ОткрытаяФорма) = Тип("ФормаКлиентскогоПриложения") Тогда
Если ОткрытаяФорма.ИмяФормы = ИмяФормы Тогда
Результат.Добавить(ОткрытаяФорма);
Если ВернутьПервые > 0 И Результат.Количество() = ВернутьПервые Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Результат;
КонецФункции
// MIT License
//
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник