Имя: Пароль:
1C
 
Обход дерева значений, как узнать на каком уровне.
,
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) Не начнутся,  я в курсе про клиент-сервер, данные разных типов и тому подобное


Я нашел ошибку, функция применима только к строке. Не туда запихал.
Спасибо.