Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 июл 2025, 22:00

Обратная иерархия

Автор Nosferatu112, Вчера в 11:37

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Всем доброго времени суток, есть способ узнать что выбранное подразделение входит в какую либо иерархию?
Пример:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Подразделения.Ссылка КАК Ссылка
|ИЗ
| Справочник.Подразделения КАК Подразделения
|ГДЕ
| Подразделения.Ссылка В ИЕРАРХИИ (&Ссылка)";

Запрос.УстановитьПараметр("Ссылка", Объект.Подразделение);
Так мы пишем когда знаем родителя и хотим узнать какие в него входят элементы

А если мне на оборот нужно узнать входит ли выбранное подразделение в родителя, при условии что спр многоуровневый
У родителя есть подчиненый элемент который может являтся родителем для другого подчиненного элемента, и мне нужно узнать самую верхнюю иерархию

sali

чисто теоретически можно задать условие на родителя, пустое оно или нет

Nosferatu112

Думал об этом но если ситуация такая
Подразделение1 родитель подразделения2
Подразделение2 родитель подразделения3
Подразделение3 родитель подразделения4,5,6,7,8
Мне известно подразделение7
И по подразделению7 мне нужно найти что оно принадлежит подразделению1
А по родителю я найду что подразделение7 принадлежит подразделению3

antoneus

Если есть самый верхний родитель и надо узнать, входит ли туда элемент - ПринадлежитЭлементу.
Если просто узнать самого верхнего - цикл по родителю вверх до упора.

sali

Цитата: antoneus от Вчера в 12:13цикл по родителю вверх до упора.
ага. там уровень вам нужно в цикле уменьшать
что-то типо ....
Для каждого СтрокаТЧ из СтрокиТЧ Цикл 
тТовар=СтрокаТЧ.нОМЕНКЛАТУРА.Родитель;
пока тТовар.Уровень() > 0 Цикл
тТовар = тТовар.Родитель;
КонецЦикла;


fruitella

Nosferatu112, пишешь в запросе упорядочить по Ссылка Иерархия. Получаешь иерархическую структуру, разбираешь рекурсией

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск