Дерево значений - пересчет итогов иерархии при изменении строки #486584


#0 by Vladal
На форме отчета есть дерево значений, в которое выгрузил выборку запроса. Как реализовать пересчет итогов? Пока написал такой обработчик: А вот что дальше с ним делать - не пойму.
#1 by asady
бросай это гиблое дело просто заново строй ДЗ
#2 by Vladal
Хорошо. Построил заново. Юзер ввёл новое значение и итоги должны пересчитаться интерактивно, после ввода нового значения.
#3 by hhhh
нет там никаких пересчетов. Вручную надо делать.
#4 by Vladal
Ну подскажите, как это можно реализовать, как и где считать и хранить итоги иерархии?
#5 by Новенький_2009
подсказываю: 1. либо пересчитывать вверх ручками вверх по иерархии 2. либо скидывать плоское тз в темпы, строить по нему итогами твое дз и выгружать обратно - если в дз не состав какой то сложной турбины ) 3. можно извратить п.2 - выгружать в твое тп не все дз, а только ту ветку, итог которой нужно получить по иерархии. Но это гемор еще тот.
#6 by Vladal
Ок. Первый пункт кажется путёвым. Возникает вопрос - как отследить, что это уже другая иерархия, соответственно, нужно будет итоги пересчитать и в верхних группировках. Чуйствую, что без рекурсии не обойтись
#7 by Новенький_2009
какая вложенность иерархии то? неопределенная или есть все таки максимум какой-то?
#8 by DrWatson
Да, не обойтись
#9 by IronDemon
Прикрутить рекурсию.
#10 by Vladal
Иерархия уровней 2-3. Динамическая - в одной группе 2 уровня, в другой 3, в третьей снова 2...
#11 by Vladal
ПРимерно так:
#12 by Vladal
Всё получилось. Для тех, кто будет искать этот вопрос. Решение подсказал Павел Данилкович: просто рекурсивно проходим все узлы, причем обходим именно узлы, а не элементы. это условие контролирует кусочек: Тоесть, если выбирается элемент - у него нет строк, вот его и пропускаем. Просто передать в процедуру само дерево и соответствие колонок по которым нужно суммировать, например План и ПланируемыйРасход:
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С