Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 14:44

как посчитать количество элементов в иерархическом списке?

Автор Yamuna, 08 июн 2019, 09:04

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

Yamuna

ДОбрый день! нужно посчитать сколько элементов в иерархическом списке,с иерархией элементов, т.е. количество. допустим есть несколько элементов у которых нет родителя, то есть они первые, и от первого элемента посчитать какое  у него в дереве количество элементов. такое возможно сделать?

Yamuna

вот я сделал но она считает элементы во всем справочнике, если в условии по родителю поставить то только по родителю выдаст, но не в иерархии, а только то что у родителя есть, а надо с родителя и до конца иерархии...
ВЫБРАТЬ
КОЛИЧЕСТВО(1) КАК Код,
КабинетНачинающихКлиентов.Ссылка КАК Ссылка
ИЗ
Справочник.КабинетНачинающихКлиентов КАК КабинетНачинающихКлиентов
ГДЕ
НЕ КабинетНачинающихКлиентов.Родитель = ЗНАЧЕНИЕ(справочник.КабинетНачинающихКлиентов.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
КабинетНачинающихКлиентов.Ссылка
ИТОГИ ПО
Ссылка ТОЛЬКО ИЕРАРХИЯ
АВТОУПОРЯДОЧИВАНИЕ

AIFrame

Самое простое - обойти итоговое древо, просуммировав.
Можно чуть оптимизировать, сначала получить список корневых каталогов.
Потому по каждому из них сделать запрос, задав в условии
ГДЕ КабинетНачинающихКлиентов.Родитель В ИЕРАРХИИ(&КорневойКаталог) И КабинетНачинающихКлиентов.ЭтоГруппа = ЛОЖЬ
Выводишь просто сумму, безо всяких обходов результатов.
Так ты получишь суммы объектов по каждому твоему корневому каталогу.
НО, если это будет очень частотная операция, такой подход будет вредить из-за плохой оптимизации, запроса в цикле и условия В ИЕРАРХИИ, который с SQL вытворяет всякие непотребства.

Yamuna

Цитата: AIFrame от 08 июн 2019, 11:34
Самое простое - обойти итоговое древо, просуммировав.
Можно чуть оптимизировать, сначала получить список корневых каталогов.
Потому по каждому из них сделать запрос, задав в условии
ГДЕ КабинетНачинающихКлиентов.Родитель В ИЕРАРХИИ(&КорневойКаталог) И КабинетНачинающихКлиентов.ЭтоГруппа = ЛОЖЬ
Выводишь просто сумму, безо всяких обходов результатов.
Так ты получишь суммы объектов по каждому твоему корневому каталогу.
НО, если это будет очень частотная операция, такой подход будет вредить из-за плохой оптимизации, запроса в цикле и условия В ИЕРАРХИИ, который с SQL вытворяет всякие непотребства.

Спасибо все получилось!

Теги:

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

Рейтинг@Mail.ru

Поиск