0
palpetrovich
05.08.16
✎
11:29
|
полный обход решается рекурсией
Процедура ОбходВетки(ТЗ, Уровень)
Если ТипЗначенияСтр(ТЗ) = "ТаблицаЗначений" Тогда
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ОбходВетки(ТЗ.ТЗ, Уровень+1);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ОбходДерева()
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл
ОбходВетки(Табл.ТЗ, 1);
КонецЦикла;
КонецПроцедуры
а вот как обойти только узел - мне непонятно
есть АтрФормы.ТекущаяСтрокаДерева(), возращает к примеру 3/23/1, как я понимаю 3 - номер строки в первой ТЗ, 23 - во второй, 1 - в третьей
решение которое приходит в голову, спозиуионироваться на третьей и обойти рекрсивно
Может есть решение попроще или покрасивей?
|
|