1С 8.3 Найти открытую форму(ы) по имени - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

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.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 02.08.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому