1С 8.3 Проверка расположения элемента УФ внутри элемента Родитель
Данные > Примеры кода 1С > 1С 8.3 Форма, элементы
Перейти в раздел примеры кода 1С 8.3:

Проверить, расположен ли элемент УФ внутри элемента Родитель. в 1С 8.3:
// Проверить, расположен ли элемент управляемой формы ПроверяемыйЭлемент внутри элемента Родитель.
//
// Параметры:
// Родитель - ГруппаФормы, ТаблицаФормы, ФормаКлиентскогоПриложения - родительский элемент формы
// ПроверяемыйЭлемент - ПолеФормы, ГруппаФормы, ТаблицаФормы, КнопкаФормы, ДекорацияФормы - проверяемый элемент
//
// Возвращаемое значение:
// Булево - Истина, если элемент находится внутри родителя, Ложь - в противном случае
//
Функция РасположенЛиПроверяемыйЭлементВнутриРодител(Знач Родитель, Знач ПроверяемыйЭлемент) Экспорт
Если Родитель = Неопределено Или ПроверяемыйЭлемент = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
ТекущийРодитель = ПроверяемыйЭлемент;
Пока ТекущийРодитель <> Неопределено Цикл
Если ТекущийРодитель = Родитель Тогда
Возврат Истина;
КонецЕсли;
Если ТипЗнч(ТекущийРодитель) = Тип("ФормаКлиентскогоПриложения") Тогда
Прервать;
КонецЕсли;
ТекущийРодитель = ТекущийРодитель.Родитель;
КонецЦикла;
Возврат Ложь;
КонецФункции
//
// Параметры:
// Родитель - ГруппаФормы, ТаблицаФормы, ФормаКлиентскогоПриложения - родительский элемент формы
// ПроверяемыйЭлемент - ПолеФормы, ГруппаФормы, ТаблицаФормы, КнопкаФормы, ДекорацияФормы - проверяемый элемент
//
// Возвращаемое значение:
// Булево - Истина, если элемент находится внутри родителя, Ложь - в противном случае
//
Функция РасположенЛиПроверяемыйЭлементВнутриРодител(Знач Родитель, Знач ПроверяемыйЭлемент) Экспорт
Если Родитель = Неопределено Или ПроверяемыйЭлемент = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
ТекущийРодитель = ПроверяемыйЭлемент;
Пока ТекущийРодитель <> Неопределено Цикл
Если ТекущийРодитель = Родитель Тогда
Возврат Истина;
КонецЕсли;
Если ТипЗнч(ТекущийРодитель) = Тип("ФормаКлиентскогоПриложения") Тогда
Прервать;
КонецЕсли;
ТекущийРодитель = ТекущийРодитель.Родитель;
КонецЦикла;
Возврат Ложь;
КонецФункции
Логика работы:
- Если передан Неопределено — сразу возвращает Ложь.
- Поднимается по иерархии родителей проверяемого элемента.
- Если находит совпадение с Родителем — возвращает Истина.
- Если доходит до формы (ФормаКлиентскогоПриложения) или Неопределено — возвращает Ложь.
Использование:
Если РасположенЛиПроверяемыйЭлементВнутриРодител(Группа, Поле) Тогда
// Элемент внутри группы
КонецЕсли;
// Элемент внутри группы
КонецЕсли;
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник