18.
G_Re
46
25.03.10 16:32
Сейчас в теме
Уважаемый Автор!
Вы просили мой комментарий.
Вот он.
В целом нормально, но как-то для начинающих, и не совсем понятна конечная(а она не достигнута) цель.
Мне тоже что-то подобное приходилось делать, а так как связи между документами могут быть не только на уровне подчиненности, а и через значение реквизита(самый простой пример - Заказ), причем как РеквизитаШапки, так и РеквизитаСтроки, а у подчиненных(в широком смысле) могут быть свои подчиненные и т.д...
то единственный механизм все это спагетти разобрать - это рекурсивная процедура, все это отслеживающая через Метаданные и соответствующим образом обрабатывающая. она должна содержать механизм защиты от зацикливания, то есть если текущий документ ссылается на документ, ранее обрабатывавшийся в этой связке.
Результатом работы может быть, например какая-то визуализация этого спагетти, примерно, как у тебя, но это будет не дерево, а граф, однако более действенно - выполнение каких-то технологических действий, например, если удаляется основной документ, то должны быть удалены и все с ним связанные, или если что-то меняется в основном документе, то нужно закрепить эти изменения и во всех, с ним связанных(например, изменили Фирму) и т.д.
Вот и все мое мнение. Только рекурсия, а конкретика зависит от ситуации, для чего это нужно.