Имя: Пароль:
1C
 
Как посчитать итоги в дереве значений по уровням ?
0 RomaH
 
naïve
05.03.07
10:50
Методы какие-нибудь есть?
Или только перебором?
1 coder1cv8
 
05.03.07
10:52
(0) Есть, Итог() называется...
2 jcage
 
05.03.07
10:52
(0) А дерево ты как получаешь?
3 Волшебник
 
модератор
05.03.07
10:52
4 RomaH
 
naïve
05.03.07
10:59
(1) да ну?
5 Vozhd
 
05.03.07
11:03
(4) Угу, (1) все правильно говорит...
6 IronDemon
 
05.03.07
11:05
Процедура ПосчитатьДерево(СтрокаДерева)
   
   Если СтрокаДерева.Уровень() <> 0 Тогда
       НоваяСтрока = ТаблицаЛиквидности.Добавить();
       ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаДерева);
   КонецЕсли;
   
   Если СтрокаДерева.Строки.Количество() = 0 Тогда
       Возврат;
   КонецЕсли;
   
   СредняяРеализация = СтрокаДерева.Строки.Итог("СредняяРеализация",Истина);
   Если СредняяРеализация <> 0  Тогда
       
       Если УчитыватьКПолучению Тогда
           
           Остаток = СтрокаДерева.Строки.Итог("ТекОстаток",Истина) + СтрокаДерева.Строки.Итог("КПолучению",Истина);
           
       Иначе
           
           Остаток = СтрокаДерева.Строки.Итог("ТекОстаток",Истина);
           
       КонецЕсли;
       ЗапасДнейТорг = Окр(Остаток / СредняяРеализация,1);
       
   Иначе
       
       ЗапасДнейТорг = 0;
       
   КонецЕсли;
   СтрокаДерева.СредняяРеализация = СредняяРеализация;
   СтрокаДерева.ЗапасДнейТорг = ЗапасДнейТорг;
   Для Каждого Строка Из СтрокаДерева.Строки Цикл
       ПосчитатьДерево(Строка);
   КонецЦикла;
   
КонецПроцедуры
7 RomaH
 
naïve
05.03.07
11:11
(4) и правда есть - не заметил сразу
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.