Вход | Регистрация


Обход дерева значений, как узнать на каком уровне.

Обход дерева значений, как узнать на каком уровне.
Я
   bizon2008
 
27.09.16 - 12:51
Доброго
Класический рекурсивный обход дерева значений
Процедура ОбходДерева(Дерево)
   Для Каждого тСтр Из Дерево.Строки Цикл
      Сообщить(тСтр.Колонка1+", "+тСтр.Колонка2);
 
      Если тСтр.Строки.Количество()>0 Тогда
         ОбходДерева(тСтр);
      КонецЕсли;
   КонецЦикла;
КонецПроцедуры
Но как узнать на каком уровне находишься?
 
 
   piter3
 
1 - 27.09.16 - 12:52
Уровень()
   CMblCL
 
2 - 27.09.16 - 12:54
Добавить в процедуру параметр уровень и изменять его при вызове процедуры.


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


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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует