|
Расчет вычисляемого поля на уровне группировок, СКД | ☑ | ||
---|---|---|---|---|
0
kassbar
08.05.18
✎
23:22
|
<a href="http://www.picshare.ru/view/8781460/" target="_blank"><img src="http://www.picshare.ru/uploads/180508/40IPopzWd2.jpg" border="0" width="725" height="206" title="Хостинг картинок PicShare.ru"></a>
Суть задачи - для каждой детальной записи рассчитывается некое вычисляемое поле, достаточно сложным алгоритмом, в разрезе группировки РТУ. Нужно вывести на уровне группировок (РТУ и Клиент) суммы этих вычисляемых полей (пример, который нужно получить, на картинке). На уровне группировки РТУ удалось получить нужное значение в ресурс с помощью функции СУММА(ВычислитьВыражениеСГруппировкойМассив("ВычисляемоеПоле")). Но на верхних группировках (Клиент) этот способ уже не работает. Может все-таки есть какой-то способ получить итог вычисляемого поля в группировке, или переносить все расчеты в модули ? |
|||
1
kassbar
08.05.18
✎
23:23
|
||||
2
Franchiser
гуру
09.05.18
✎
02:05
|
Можно сделать вычисляемое поле ещё одно, которое будет считать сумму в контексте определенной группировки, тогда ты сможешь его просто указать в ресурсе без функции сумма(). Можно сделать несколько таких вычисляемых полей и указывать на разных уровнях.
|
|||
3
Franchiser
гуру
09.05.18
✎
02:07
|
Функция Вычислить()
|
|||
4
Franchiser
гуру
09.05.18
✎
02:15
|
По рисунку у тебя на всех уровнях группировок считается сумма,
не работает Сумма(ВычисляемоеПоле")? |
|||
5
kassbar
09.05.18
✎
08:35
|
(4) неа, Сумма(ВычисляемоеПоле) совсем по другому работает, не так как я ожидал. Она складывает не уже рассчитанные вычисляемые поля, а заново их вычисляет. Причем в разрезе той группировки, на уровне которой она установлена. Соответственно, на уровне группировки "Клиент" вычисляемые поля рассчитываются в контексте записей именно этой группировки, и цифры получаются совсем другие (не такие, как на уровне группировки "РТУ")
|
|||
6
kassbar
09.05.18
✎
08:36
|
(4) на рисунке я руками исправил итог по группировке "Клиент", для наглядности. По факту там другие цифры (не те, что нужно)
|
|||
7
bolder
09.05.18
✎
10:06
|
(0) ВычислитВыражение сГруппировкой ВМассив имеет параметры.Нужно их задействовать.
|
|||
8
DrShad
09.05.18
✎
10:36
|
(7)+1
|
|||
9
kassbar
09.05.18
✎
15:01
|
(7) если речь идет о 2 параметре "ВыражениеПолейГруппировки" для
ВычислитьВыражениеСГруппировкойМассив(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) то я его применял в настройках ресурсов, в разных вариантах http://www.picshare.ru/view/8782124/ только результат от него все равно не тот, что ожидался: http://www.picshare.ru/view/8782127/ |
|||
10
Franchiser
гуру
09.05.18
✎
16:24
|
(5) у меня тоже были сложности с расчетом ресурсов при использовании вычисляемых полей, я решил эту проблему 2мя способами: 1. Использование 2 наборов вместо одного. 2. Использовал функцию вычислитьвыражениесгруппировкоймассив() не в ресурсе а в отдельном ВычисляемоеПоле, которое потом подставил в ресурс.
Как решить конкретно в твоём случае нужно смотреть на твоих данных. |
|||
11
Franchiser
гуру
09.05.18
✎
16:50
|
Нашел отчет в котором я экспериментировал:
СуммаСводТест - вычисляемое поле В ресурсе стоит такое выражение: Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(СуммаСводТест)","ПериодМесяц,Комиссионер,Организация,КодСтрокиОтчета")) |
|||
12
kassbar
09.05.18
✎
17:03
|
(11) СуммаСводТест - это дополнительное вычисляемое поле ? А сам отчет можешь скинуть ?
|
|||
13
Franchiser
гуру
09.05.18
✎
17:43
|
(12) нет, это просто ВычисляемоеПоле
Скинуть могу |
|||
14
kassbar
09.05.18
✎
20:59
|
(13) [email protected]
|
|||
15
Franchiser
гуру
10.05.18
✎
00:30
|
(14) отправил
|
|||
16
kassbar
10.05.18
✎
17:42
|
Похоже что ВычислитьВыражениеСГруппировкойМассив() не будет работать корректно, если в вычисляемом поле используется функция ВычислитьВыражение(Группировка, Первый, Текущий).
По итогу сделал вычисление поля в модуле отчета и вернул результат в СКД в виде внешнего набора данных. |
|||
17
kassbar
11.05.18
✎
22:48
|
спасибо Franchiser,
эта функция работает для группировок. Нужно вызывать ее в виде вложений, на каждом уровне, вот таким образом: Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ВычислитьВыражениеСГруппировкойМассив(""ВычисляемоеПоле"", ""Номенклатура""))", "Реализация")) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |