Имя: Пароль:
1C
1С v8
СКД: Вычисляемые поля и итоги
0 N-S-B
 
07.09.17
13:06
Есть отчет на СКД с такой иерархией:

                   |Оборот|ВычисляемоеПоле
-Менеджер1         |150   |
                   |      |
-Контрагент1      |60    |99
   -Номенклатура1  |10    |16
   -Номенклатура2  |20    |33
   -Номенклатура3  |30    |50
                   |      |
-Контрагент2      |90    |180
   -Номенклатура1  |20    |22
   -Номенклатура2  |30    |33
   -Номенклатура3  |40    |44

ОбщийИтог:         |150   |

Колонка вычисляемое поле рассчитывается в СКД в соответствующей закладке по формуле: отношение оборота текущей номенклатуры к сумме оборотов по данному контрагенту и умноженное на некий параметр:
Оборот / ВычислитьВыражение("Сумма(Оборот)", "Контрагент", "Группировка") * Параметр

Но в отчете не считается итог по менеджеру и общий итог. Как это сделать? В ресурсах стоит Сумма(ВычисляемоеПоле). Если установить рассчитывать по... Общий итог - не помогает.
1 DrShad
 
07.09.17
13:15
оно то как раз считается, вот только в результате выходит 0
2 DrShad
 
07.09.17
13:16
поставь в условном оформлении представление ноля как "-" и увидишь что результат есть
3 DrShad
 
07.09.17
13:18
ну или в результате будет NULL, смотря как у тебя прописаны обороты
4 N-S-B
 
07.09.17
13:20
(1) (2) (3) Понятно. А как правильно посчитать общие итоги в данном случае?
Если я меняю формулу на:
Оборот / ВычислитьВыражение("Сумма(Оборот)", "Контрагент", "ОбщийИтог") * Параметр
То и общие итоге и итоги по вышестоящей группировке - по менеджеру считаются, но результат, естественно, уже неправильный.
5 DrShad
 
07.09.17
13:21
оборот тоже вычислять
6 DrShad
 
07.09.17
13:22
ну и про указание необходимых группировок не забывать
7 N-S-B
 
07.09.17
13:35
(5) Не понял, а что именно вычислять в обороте и в каких группировках?
Пробую разные варианты, например:

Выразить(PromoBonuses * ВычислитьВыражение("Оборот", "Номенклатура") / ВычислитьВыражение("Сумма(Оборот)", "Контрагент", "Группировка"), "Число(10,2)")

Но результата нет все равно
8 DrShad
 
07.09.17
14:43
запрос твой? тебе и думать
9 N-S-B
 
07.09.17
14:48
(8) Так разве тут в запросе дело? При выводе результата запроса через СКД у меня суммируется определенное значение в разных группировках. Вопрос в том, почему у меня не общем итоге не суммируются эти группировки.
10 DrShad
 
07.09.17
14:51
(9) а в чем по твоему? ты же проверил что вычисляемое поле рассчитывается? но если результат тебя не удовлетворяет, то кто же может сделать иначе, кроме тебя?
11 N-S-B
 
07.09.17
15:08
(10) Не понимаю почему надо менять запрос, если запрос выдает мне все необходимые данные, которые мне надо просто правильно вывести с помощью СКД. По сути просто посчитать суммы различных группировок.
В итоге решил добавлением еще одного набор данных, где достаю запросом сумму оборотов по контрагентам и уже таким образом считаю свое вычисляемое поле.
Но уверен, можно сделать все оптимальнее.
12 DrShad
 
07.09.17
16:21
(11) ну вот видишь, по сути изменил запрос )))
13 mistеr
 
07.09.17
18:55
(12) >отношение оборота текущей номенклатуры к сумме оборотов по данному контрагенту и умноженное на некий параметр

Ну и как для этого должен считаться "итог по менеджеру и общий итог"? Сам для себя пойми сначала, чего хочешь. А потом подскажем, как реализовать.
14 Franchiser
 
гуру
07.09.17
19:17
А если так: Сумма(естьnull(вычисляемое поле,0))
?
Закон Брукера: Даже маленькая практика стоит большой теории.