База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как проверить принадлежность элемента справочника определенной группе? › Ответ в теме: Как проверить принадлежность элемента справочника определенной группе?
Проверить принадлежность элемента справочника определённой группе можно двумя основными способами.
Первый — проверить, что поле Родитель элемента справочника равно ссылке нужной группы. Это проверка только прямого вхождения в группу.
Второй способ — более универсальный, когда нужно проверить принадлежность элемента к группе или любой из её вложенных подгрупп. Для этого используется запрос с условием В ИЕРАРХИИ, который учитывает всю иерархию групп.
Если структура справочника отличается (например, нет поля Родитель), то запрос нужно адаптировать под конкретную структуру.
Ниже приведены примеры кода для обоих способов.
1. Проверка прямого родителя:
|
1 2 3 4 5 |
Если ЭлементСправочника.Родитель = СсылкаГруппы Тогда // Элемент принадлежит группе // Можно добавить действия здесь Сообщить("Элемент принадлежит группе"); КонецЕсли; |
2. Проверка принадлежности в иерархии групп:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Справочник.Ссылка |ИЗ | Справочник.СправочникИмя КАК Справочник |ГДЕ | Справочник.Ссылка = &Элемент | И Справочник.Родитель В ИЕРАРХИИ(&Группа)"; Запрос.УстановитьИмяПоля("Справочник.Ссылка", "Ссылка"); Запрос.УстановитьПараметр("Элемент", ЭлементСправочника); Запрос.УстановитьПараметр("Группа", СсылкаГруппы); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда ПринадлежитГруппе = Истина; // Элемент принадлежит группе или вложенным подгруппам Иначе ПринадлежитГруппе = Ложь; // Не принадлежит КонецЕсли; |