Имя: Пароль:
1C
1С v8
Подскажите как рассчитать значения по группировкам в СКД ☑
0 Knight1C
 
20.07.16
✎
08:35
Приветствую, Коллеги.
Есть у меня задача - выполнить расчет по группировкам как на скриншоте по ссылке:  
http://saveimg.ru/show-image.php?id=68760cbd38b15fe67e511d1e1415c6c5
Колонка-ресурс называется "КонечныйДолг".

Получается корректно рассчитать до уровня "способ выдачи бонуса", а на участнике уже спотыкается и задваивает значения, выводя -20.

Для способа выдачи бонуса пишу так:
Сумма((вычислитьВыражениеСГруппировкойМассив("Максимум(КонечныйДолг)","ДокументДвижения")))

Для Участника пишу так:
Сумма((вычислитьВыражениеСГруппировкойМассив("Сумма(КонечныйДолг)","СпособВыдачиБонуса")))

Подскажите, где ошибаюсь.
1 Горогуля
 
20.07.16
✎
08:46
на участнике и ниже считать максимум, выше - сумму?
2 aleks_default
 
20.07.16
✎
09:11
(1)+1 и без всяких ВычислитьВыпажениеСГруппировкойМассив
3 Knight1C
 
20.07.16
✎
13:22
(2) не получится. Итоги не корректные.
(1) Не получилось.
По логике, мой вариант должен работать, так как на уровне "способ выдачи бонуса" результат корректный, но для участника почему-то считает не правильно, хотя группировку по которой считать указал явно.
4 aleks_default
 
20.07.16
✎
14:52
По примеру(как ты хочешь получить) у тебя все до уровня и включая уровень Участник - это простой Максимум.
А все что выше - это сумма Максимумов.

Ты для Участника считаешь Сумму Сумм - вот у тебя и получается 20. Зачем ты так делаешь, я не понимаю.
5 Knight1C
 
20.07.16
✎
15:40
(4) Так вот я и не понимаю, как это написать в СКД. :)
Мне для участника надо посчитать суммы по группировке "Способ выдачи бонуса".
Способов выдачи бонуса может быть несколько.

Как ты предложил в (2) я попробовал - не работает.
6 aleks_default
 
20.07.16
✎
16:30
Для понимания что делает вычислитьВыражениеСГруппировкойМассив убери слово Сумма в начале. Увидишь что эта функция возвращает массив чисел.
Вот расчет каждого из этих чисел - это если твою плоскую таблицу сгруппировать по группировке "СпособВыдачиБонуса" и просуммировать КонечныйДолг.
Как еще понятнее объяснить.
Я думаю тебе тут тоже нужна сумма максимумов.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.