Имя: Пароль:
1C
1С v8
Каким образом в ДеревеЗначений задаются уровни строк?
0 murzo1
 
18.07.11
16:09
ЕстьТаблицаЛимитов = Ложь;
   Уровеньфилиалы = Результат.Строки;
   Для Каждого СтрФилиалов Из Уровеньфилиалы Цикл
       
       Если ВыводитьТолькоЛимиты Тогда
           УровеньФизЛица = СтрФилиалов.Строки;
           
           Если СтрЧислоВхождений(НРег(СтрФилиалов.НазначениеАванса), "лимит") > 0 Тогда
               НоваяСтрока = ДеревоРезультатов.Строки.Добавить();
               НоваяСтрока.Уровень();
               ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрФилиалов);
               
               ЕстьТаблицаЛимитов = Истина;
               
               Для Каждого СтрФизЛиц Из УровеньФизЛица Цикл
                   УровеньСтатьиЗатрат = СтрФизЛиц.Строки;
                       
                   Если СтрЧислоВхождений(НРег(СтрФизЛиц.НазначениеАванса), "лимит") > 0 Тогда
                       НоваяСтрока = ДеревоРезультатов.Строки.Добавить();
                       НоваяСтрока.Уровень();
                       ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрФизЛиц);
                       
                       Для Каждого СтрСтатейЗатрат Из УровеньСтатьиЗатрат Цикл
                           УровеньСуммы = СтрСтатейЗатрат.Строки;
                           
                           Если СтрЧислоВхождений(НРег(СтрСтатейЗатрат.НазначениеАванса), "лимит") > 0 Тогда
                               НоваяСтрока = ДеревоРезультатов.Строки.Добавить();
                               НоваяСтрока.Уровень();
                               ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрСтатейЗатрат);
                           
                               Для Каждого СтрСумм Из УровеньСуммы Цикл
                                   Если СтрЧислоВхождений(НРег(СтрСумм.НазначениеАванса), "лимит") > 0 Тогда
                                       НоваяСтрока = ДеревоРезультатов.Строки.Добавить();
                                       НоваяСтрока.Уровень();
                                       ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрСумм);
                                   КонецЕсли;
                                   
                               КонецЦикла;
                               
                           КонецЕсли;
                           
                       КонецЦикла;
                       
                   КонецЕсли;
                   
               КонецЦикла;
               
           КонецЕсли;
           
       КонецЕсли;
       
   КонецЦикла;



Вот задать уровень не получается, получается а то все одного уровня...
1 73
 
18.07.11
16:11
Ты ж в корень всё время добавляешь.
2 Господин ПЖ
 
18.07.11
16:11
тяжелый случай...

у каждого элемента свои .Строки
3 murzo1
 
18.07.11
16:14
ТОлько сеня начал деревья разбирать, сложно идет пока, поэтому и спрашиваю такие вопросы
4 murzo1
 
18.07.11
16:16
(1) а можно подробнее? я же и спросил, как добавлять по уровнять, эту строку например в 0 уровень, другую в 1 уровень и т.д. не могу чета найти описания нигде
(2) я был бы багодарен если бы вы объяснили что имеете ввиду :)
5 73
 
18.07.11
16:20
Например:
НоваяСтрока = УровеньФизЛица.Добавить();
6 murzo1
 
18.07.11
16:23
Все разобрался, спасибо


   ЕстьТаблицаЛимитов = Ложь;
   Уровеньфилиалы = Результат.Строки;
   Для Каждого СтрФилиалов Из Уровеньфилиалы Цикл
       УровеньФизЛица = СтрФилиалов.Строки;
       Если ВыводитьТолькоЛимиты Тогда
           
           Если СтрЧислоВхождений(НРег(СтрФилиалов.НазначениеАванса), "лимит") > 0 Тогда
               НоваяСтрокаФилиалов = ДеревоРезультатов.Строки.Добавить();
               ЗаполнитьЗначенияСвойств(НоваяСтрокаФилиалов, СтрФилиалов);
               ЕстьТаблицаЛимитов = Истина;
               
               Для Каждого СтрФизЛиц Из УровеньФизЛица Цикл
                   УровеньСтатьиЗатрат = СтрФизЛиц.Строки;
                       
                   Если СтрЧислоВхождений(НРег(СтрФизЛиц.НазначениеАванса), "лимит") > 0 Тогда
                       НоваяСтрокаФизЛиц = НоваяСтрокаФилиалов.Строки.Добавить();
                       ЗаполнитьЗначенияСвойств(НоваяСтрокаФизЛиц, СтрФизЛиц);
                       
                       Для Каждого СтрСтатейЗатрат Из УровеньСтатьиЗатрат Цикл
                           УровеньСуммы = СтрСтатейЗатрат.Строки;
                           
                           Если СтрЧислоВхождений(НРег(СтрСтатейЗатрат.НазначениеАванса), "лимит") > 0 Тогда
                               НоваяСтрокаСтатейЗатрат = НоваяСтрокаФизЛиц.Строки.Добавить();
                               ЗаполнитьЗначенияСвойств(НоваяСтрокаСтатейЗатрат, СтрСтатейЗатрат);
                           
                               Для Каждого СтрСумм Из УровеньСуммы Цикл
                                   Если СтрЧислоВхождений(НРег(СтрСумм.НазначениеАванса), "лимит") > 0 Тогда
                                       НоваяСтрокаСумм = НоваяСтрокаСтатейЗатрат.Строки.Добавить();
                                       ЗаполнитьЗначенияСвойств(НоваяСтрокаСумм, СтрСумм);
                                   КонецЕсли;
                                   
                               КонецЦикла;
                               
                           КонецЕсли;
                           
                       КонецЦикла;
                       
                   КонецЕсли;
                   
               КонецЦикла;
               
           КонецЕсли;
           
       КонецЕсли;
       
   КонецЦикла;