Проверка принадлежности элемента иерархии

Проверять принадлежность элемента справочника вышестоящему элементу или группе можно двумя способами:
1. Запросом
2. Программно

Допустим надо проверить принадлежность некоторого элемента ПодчиненныйКонтрагент справочника Контрагенты элементу ГлавныйКонтрагент этого же справочника.

Запросом

Наличие хотя бы одной записи в запросе говорит о том, что элемент ПодчиненныйКонтрагент подчинен элементу или группе ГлавныйКонтрагент:

Запрос = новый Запрос(«Выбрать
|Контрагенты.Ссылка
|    из
|Справочник.Контрагенты как Контрагенты
|    где
|Контрагенты.Ссылка в Иерархи(&ГлавныйКонтрагент) и Контрагенты.Ссылка |= &ПодчиненныйКонтрагент»);

Запрос.УстановитьПараметр(«ГлавныйКонтрагент», ГлавныйКонтрагент);
Запрос.УстановитьПараметр(«ПодчиненныйКонтрагент»ПодчиненныйКонтрагент);
Если Запрос.Выполнить().Выбрать().Следующий() тогда
    Сообщить(«Элемент подчинен»);
Иначе
    Сообщить(«Элемент НЕ подчинен»);
КонецЕсли;

Программно

Легче данную операцию сделать программно, для этого используется процедура ПринадлежитЭлементу элемента справочника:

Если ПодчиненныйКонтрагент.ПринадлежитЭлементу(ГлавныйКонтрагент) тогда
    Сообщить(«Элемент подчинен»);
Иначе
    Сообщить(«Элемент НЕ подчинен»);
КонецЕсли;

Примечание:
Выражение ГлавныйКонтрагент.ПринадлежитЭлементу(ГлавныйКонтрагент) вернет ЛОЖЬ.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *