|
Обход дерева значений, как узнать на каком уровне.
| ☑ |
0
bizon2008
27.09.16
✎
12:51
|
Доброго
Класический рекурсивный обход дерева значений
Процедура ОбходДерева(Дерево)
Для Каждого тСтр Из Дерево.Строки Цикл
Сообщить(тСтр.Колонка1+", "+тСтр.Колонка2);
Если тСтр.Строки.Количество()>0 Тогда
ОбходДерева(тСтр);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Но как узнать на каком уровне находишься?
|
|
1
piter3
27.09.16
✎
12:52
|
Уровень()
|
|
2
CMblCL
27.09.16
✎
12:54
|
Добавить в процедуру параметр уровень и изменять его при вызове процедуры.
Процедура ОбходДерева(Дерево, Уровень)
Для Каждого тСтр Из Дерево.Строки Цикл
Сообщить(тСтр.Колонка1+", "+тСтр.Колонка2);
Если тСтр.Строки.Количество()>0 Тогда
ОбходДерева(тСтр, Уровень + 1);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
3
CMblCL
27.09.16
✎
12:57
|
(1) О, и правда, 1С уже все придумало за нас.
|
|
4
bizon2008
27.09.16
✎
13:04
|
(1) Ругается - нету такой функции. Как ее правильно писать?
|
|
5
vicof
27.09.16
✎
13:05
|
правильно Уровень()
|
|
6
vicof
27.09.16
✎
13:07
|
(4) Щас начнутся разговоры про клиент-сервер, данные разных типов и тому подобное на 300 постов. И автор в итоге все равно ничего не поймет.
|
|
7
Любопытная
27.09.16
✎
13:09
|
(3) Это метод строки дерева, если что
|
|
8
bizon2008
27.09.16
✎
13:10
|
(6) Не начнутся, я в курсе про клиент-сервер, данные разных типов и тому подобное
Я нашел ошибку, функция применима только к строке. Не туда запихал.
Спасибо.
|
|