Проверять принадлежность элемента справочника вышестоящему элементу или группе можно двумя способами:
1. Запросом
2. Программно
Допустим надо проверить принадлежность некоторого элемента ПодчиненныйКонтрагент справочника Контрагенты элементу ГлавныйКонтрагент этого же справочника.
Запросом
Наличие хотя бы одной записи в запросе говорит о том, что элемент ПодчиненныйКонтрагент подчинен элементу или группе ГлавныйКонтрагент:
Запрос = новый Запрос(«Выбрать
|Контрагенты.Ссылка
| из
|Справочник.Контрагенты как Контрагенты
| где
|Контрагенты.Ссылка в Иерархи(&ГлавныйКонтрагент) и Контрагенты.Ссылка |= &ПодчиненныйКонтрагент»);
Запрос.УстановитьПараметр(«ГлавныйКонтрагент», ГлавныйКонтрагент);
Запрос.УстановитьПараметр(«ПодчиненныйКонтрагент», ПодчиненныйКонтрагент);
Если Запрос.Выполнить().Выбрать().Следующий() тогда
Сообщить(«Элемент подчинен»);
Иначе
Сообщить(«Элемент НЕ подчинен»);
КонецЕсли;
Программно
Легче данную операцию сделать программно, для этого используется процедура ПринадлежитЭлементу элемента справочника:
Если ПодчиненныйКонтрагент.ПринадлежитЭлементу(ГлавныйКонтрагент) тогда
Сообщить(«Элемент подчинен»);
Иначе
Сообщить(«Элемент НЕ подчинен»);
КонецЕсли;
Примечание:
Выражение ГлавныйКонтрагент.ПринадлежитЭлементу(ГлавныйКонтрагент) вернет ЛОЖЬ.