Имя: Пароль:
1C
 
Отчет на СКД. Функция "Вычислитьвыражение"
,
0 mzelensky
 
03.06.15
16:58
Доброго всем. Надоумте как правильно функцию прописать, а то что-то ум за разум заходит...

Сейчас имею таблицу вида

Группировка                                   Значение группировки

1) Магазин1
   1.1) 1                                      2
   1.2) 2                                      5
   1.3) 3                                      10
   1.4) 4                                      16
2) Магазин2
   2.1) 1                                      1
   2.2) 2                                      6
   2.3) 3                                      13


где "Значение группировки" вычисляется функцией:

ВычислитьВыражение("Сумма(ВЫБОР КОГДА ЕСТЬNULL(ПланПродаж, 0) = 0 ТОГДА 0
ИНАЧЕ ЕСТЬNULL(Выручка, 0) / ЕСТЬNULL(ПланПродаж, 0) * 100 Конец)", , , "Первая", "Текущая")

этот момент работает - все корректно. Теперь мне нужно для каждой группировке по МАГАЗИНУ взять максимум этого расчетного показателя, чтобы получилось во так:

Группировка                                   Значение группировки

1) Магазин1                                    16
   1.1) 1                                      2
   1.2) 2                                      5
   1.3) 3                                      10
   1.4) 4                                      16
2) Магазин2                                    13
   2.1) 1                                      1
   2.2) 2                                      6
   2.3) 3                                      13

Как это сделать?
1 mzelensky
 
03.06.15
17:20
ап
2 vicof
 
03.06.15
17:24
ВычислитьВыаржениеСГруппировкойМассив, не?
3 mzelensky
 
03.06.15
17:27
(2) а дальше? чего вычислять?

я как ни пробую - какая-то фигня получается. Считать считает, но цифры корявые все...причем вообще не могу понять откуда они такие получаются
4 Fragster
 
гуру
03.06.15
17:32
под магазином - что за 1.1)?
5 mzelensky
 
03.06.15
17:34
(4) я так иерархию группировок обозначил

1) и 2) - группировка по магазину

1.1) 1.2) и так далее это детальные записи в соответствующей групперовке
6 Fragster
 
гуру
03.06.15
17:38
ну так что ж ты моск нам компостируешь? идешь на закладку "ресурсы", добавляешь твой ресурс, указываешь формулу "максимум(траляля)", ставишь галочку "рассчитывать по Магазин"
7 Fragster
 
гуру
03.06.15
17:38
никаких вычислитьвыражение
8 Classic
 
03.06.15
17:47
вычислитьвыражениесгруппировкоймассив
9 mzelensky
 
03.06.15
17:47
(6) поверь, я так делал...считать считает, но цифры хрень какая-то...вообще не понимаю как он их посчитал
10 Fragster
 
гуру
03.06.15
17:53
(9) а зачем у тебя вычислитьВыражение вообще? почему не считаешь данные из запроса?
11 mzelensky
 
04.06.15
09:30
(10) Изначально не я этот отчет писал и полностью его переписывать не очень хочется. Через "вычислить выражение" там считается нарастающий итог по детальным записям. Считается он правильно. Но теперь юзеры хотят, чтобы в групперовке (по магазину) была видна итоговая цифра этого нарастающего итога, т.к. им не удобно раскрывать групппировку и смотреть там.
12 Вася Чез
 
04.06.15
09:35
(11) а если итоги посчитать в запросе, ну или максимум?
13 Fragster
 
гуру
04.06.15
09:40
(11) тогда в выражение ресурса для магазина напиши 100*Сумма(Продажи)/Среднее(План)
14 Fragster
 
гуру
04.06.15
09:41
а если план из другого набора данных - то вообще сумма / сумма
15 mzelensky
 
04.06.15
09:47
(13) Я не догоню как для детальных прописать:

ВычислитьВыражение("Сумма(ВЫБОР КОГДА ЕСТЬNULL(ПланПродаж, 0) = 0 ТОГДА 0
ИНАЧЕ ЕСТЬNULL(Выручка, 0) / ЕСТЬNULL(ПланПродаж, 0) * 100 Конец)", , , "Первая", "Текущая")

А для группировки по магазину

100*Сумма(Продажи)/Среднее(План)


Пробовал что-то типа "если это заполнено, то так, иначе так", но почему-то даже на уровне группировки по магазину у меня "Значениезаполнено(Период)" выдает истину
16 svinus
 
04.06.15
10:27
Максимум(ВычислитьВыражениеСГруппировкойМассив())
рассчитывать по Магазин
17 Fragster
 
гуру
04.06.15
10:29
(15) на закладке "ресурсы" выражение редактируется ;)
18 Fragster
 
гуру
04.06.15
10:30
и там можно добавить несколько строк с одним ресурсом, например для задания разных выражений по разным группировкам
19 mzelensky
 
04.06.15
10:33
(17) это я в курсе :)
20 mzelensky
 
04.06.15
10:33
(18) а вот так не пробовал ... попробую
21 ProDeveloper
 
04.06.15
12:20
(15) Сделай пользовательское поле. Там есть значение формулы для детальных записей, и значение формулы для группировки.
22 ProDeveloper
 
04.06.15
12:21
(15) СКД > Настройки > Пользовательские поля
23 ProDeveloper
 
04.06.15
12:23
(15) Тебе нужно "Новое поле выражение...", его и будешь выводить в отчет.
24 ЧеловекДуши
 
04.06.15
12:30
(0) НечегоНеПонятьПолныйПСЦ

Нарисуй в екселе, по человечески, для нас, как у тебя есть
На втором листе, как должно быть
На третьем листе, какие данные получаются для того, что должно быть.

Прикрепи ко всему этому свой отчет, на Майл или яндекс помойки

...
Сдается мне, что ты не дооцениваешь дополнительные наборы данных и то ,что по ним можно подсчитать итоги и другие суммарные выражения, как надо :)
25 mzelensky
 
04.06.15
13:53
Да все уже, разобрался вроде. Правда пришлось немного похимичить. У меня проблема была в том, что у меня данные нормально считались либо в разрезе детальных записей ,либо в разрезе группировки. В результате сделал вместо детальных записей еще одну группировку по "ПЕРИОД" (в моем случае это ничего не изменило, т.к. детальные записи в разрезе периодов и выводились), но за счет этого у меня появилась группировка, которую я смог задействовать.

И дальше уже на закладке "Ресурсы" прописал:
1) Для группировки "Период" -

ВычислитьВыражение("Сумма(ВЫБОР КОГДА ЕСТЬNULL(ПланПродаж, 0) = 0 ТОГДА 0
ИНАЧЕ ЕСТЬNULL(Выручка, 0) / ЕСТЬNULL(ПланПродаж, 0) * 100 Конец)",  ,  , "Первая", "Текущая")

2) а для группировки магазин:

Максимум(ВычислитьВыражениеСГруппировкойМассив( "ПроцентНарастающим", "Магазин" ))

Так все стало нормально