Имя: Пароль:
1C
1С v8
ТЗ в ДеревоЗначений
0 Dimaskin
 
26.04.12
10:20
Коллеги, день добрый!

Заплутал в дебрях рекурсии.. есть таблица вида:
событие        докосн
№1               нулл
№2               №1
№3               №1
№4               №2
№5               №2
из самописной конфу, где "событие" - док "событие", "докосн" - реквизит в документе "событие" типа "событие", т.е. одно событие заполняется на основании другого. Как эту конструкцию представить в виде дерева?

Зы. поиск юзал, пока не помогло
1 azernot
 
26.04.12
10:22
нифига не понял..
2 Ненавижу 1С
 
гуру
26.04.12
10:24
итерация 0. Находим всех у кого оснований нет, добавляем в строки самого дерева
итерация 1. Находим всех у кого основания на уровне 0, добавляем строки в соответствующие строки
...
итерация N

когда ничего не можем добавить - заканчиваем работу
3 azernot
 
26.04.12
10:25
Не вдаваясь в подробности того как получаешь ТЗ, можно запросом (если колонки ТЗ типизованы)

Выбрать
ТЗ.Событие,
ТЗ.Документ
Из &ТаблицаСобытий как ТЗ
Итоги по
Событие


ДЗ = Запрос.Выполнить.Выгрузить(РежимОбходаРезультатЗапроса.ПоГруппировкам)
4 Dimaskin
 
26.04.12
10:25
(2) кинь пример, плиз
5 Ненавижу 1С
 
гуру
26.04.12
10:31
(4) примера нет
6 izekia
 
26.04.12
10:34
(0) а порядок событий гарантирует, что основание имеет меньший номер? если да, то никакой рекурсии не надо, просто кэшируй соответствия строк основаниям и проходи вниз по выборке