Имя: Пароль:
1C
1С v8
Итог колонки ДереваЗначений
0 Razzle Kay
 
17.01.18
13:46
Как получить итог по колонке ДЗ ? не мгу найти в СП
ток функцию с рекурсией
1 mehfk
 
17.01.18
13:48
Вручную.
2 Razzle Kay
 
17.01.18
13:48
(1) конкретнее можно ?
3 chelentano
 
17.01.18
13:55
(0)
КоллекцияСтрокДереваЗначений (ValueTreeRowCollection)
Итог (Total)
Синтаксис:

Итог(<Колонка>, <ВключатьПодчиненные>)
Параметры:

<Колонка> (обязательный)

Тип: Число; Строка; КолонкаДереваЗначений.
Колонка, по которой подсчитывается итог.
В качестве значения параметра может быть передан индекс колонки, имя колонки, либо колонка дерева значений.
<ВключатьПодчиненные> (необязательный)

Тип: Булево.
Определяет, будут ли включены в сумму итоги по подчиненным строкам (если таковые имеются). Истина - итоги будут включены.
Значение по умолчанию: Ложь.
Возвращаемое значение:

Тип: Число; Неопределено.

Описание:

Суммирует значения всех строк в указанной колонке.
Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результатом будет значение Неопределено.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
4 Razzle Kay
 
17.01.18
13:59
(3) я не вижу свойства итог (
5 chelentano
 
17.01.18
14:02
(4) ДеревоЗначений.Строки.Итог
6 Razzle Kay
 
17.01.18
14:10
(5) чет ен считает, хотя 2ой параметр истина
7 Razzle Kay
 
17.01.18
14:18
невнимательно прочитал, 2ой параметр мне не нужен, но не суть, всё равно не считает
8 1Сергей
 
17.01.18
14:24
(7) он считает только ветки уровнем ниже. Если там стопицот уровней, то надо считать каждую ветку
9 Razzle Kay
 
17.01.18
14:25
(8) у меня примерно так

   -
--
---
--
---
--
---
   -
--
---
--
---
10 1Сергей
 
17.01.18
14:26
(9) рекурсией считай
11 Sasha_H
 
17.01.18
14:27
да и следует конечно учесть когда ты итог подсичита и если у тебя дерево значений для интарактивного изменения то итог должен пересчитаться.
12 DrZombi
 
гуру
17.01.18
14:31
(0) Увы, никак. Забудь, если древо большое.
Или считай руками "по Циклу"
13 Sasha_H
 
17.01.18
14:34
Я в этом случае итог считал более хитро.
Чтобы работало максимально оптимально.
1. добавляю реквизит "ВсегоСуммаПродажПодвал"
2.В дереве (конфигураторе) устанавливаю ПутьКДаннымПодвала = ВсегоСуммаПродажПодвал
3.при изменении значения ты берешь ВсегоСуммаПродажПодвал расчитываешь от изменения текущей ячейки.
14 Razzle Kay
 
17.01.18
14:35
(13) мне не надо считать при изменении
15 Razzle Kay
 
17.01.18
14:38
(13) у меня колонки тем более динамически создаются
16 Sasha_H
 
17.01.18
14:39
(15) динамически создать реквизит не является проблемой тоже для подвязки к итогу
17 Sasha_H
 
17.01.18
14:40
когда наполняешь дерево считай итог помещая в этот реквизит
18 hhhh
 
17.01.18
14:40
(15) наверно вы не тип число создаете. Там ведь видите должны быть колонки типа число.
19 Razzle Kay
 
17.01.18
14:40
(18) число
20 Sasha_H
 
17.01.18
14:41
более того работает гораздо шустрее чем ты будешь присваивать Заголовок подвалу
21 Razzle Kay
 
17.01.18
14:43
(20) я не совсем ппонял, как итог то считать ))
22 1Сергей
 
17.01.18
14:51
У меня всё считает


ДЗ = Новый ДеревоЗначений;
ДЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(20, 2)));

Для Идн1 = 1 по 3 Цикл
    
    Строка1 = ДЗ.Строки.Добавить();
    Строка1.Сумма = Идн1 * 1000;
    
    Для Идн2 = 1 по 3 Цикл
        
        Строка2 = Строка1.Строки.Добавить();
        Строка2.Сумма = Идн2 * 100;
        
        Для Идн3 = 1 по 3 Цикл
            
            Строка3 = Строка2.Строки.Добавить();
            Строка3.Сумма = Идн3 * 10;
            
            Для Идн4 = 1 по 3 Цикл
                
                Строка4 = Строка3.Строки.Добавить();
                Строка4.Сумма = Идн4;
                
            КонецЦикла;
            
        КонецЦикла;
    
    КонецЦикла;
    
КонецЦикла;

Сообщить("Итог1 = " + ДЗ.Строки.Итог("Сумма", Ложь));
Сообщить("Итог2 = " + ДЗ.Строки.Итог("Сумма", Истина));




Итог1 = 6 000
Итог2 = 8 502
23 hhhh
 
17.01.18
14:53
(21) ну то есть проверьте, при создании дерева

ДЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(20, 2)));

было у вас описание типов?
24 Razzle Kay
 
17.01.18
15:00
(23) Добавить("КоличествоПродаж", Новый ОписаниеТипов("Число"));
25 1Сергей
 
17.01.18
15:37
(24)  Как понял что не считает?
26 Razzle Kay
 
18.01.18
05:48
(25) даёт 0, колонки заполнены
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн