Имя: Пароль:
1C
1С v8
СКД - нужна помощь с агрегатными функциями, какая может так посчитать?
,
0 Живой Ископаемый
 
02.02.16
01:05
1. Есть способ, сейчас расскажу 100% (1)
2. Нет способа. 0% (0)
3. Способ есть, но тебе не понравится 0% (0)
Всего мнений: 1

См. скриншот
http://screencast.com/t/VDgpUPHF0h

скажу заранее, для текущих группировок задачу я решил, но способом, который мне не нравится. Для чистоты эксперимента не буду его пока рассказывать.

Подозреваю, что каким-то образом можно применить одну из функций СКД, типа Выразить или типа того, чтобы она посчитала значения ресурса только по определенной группировке, а не на суммировав этот ресурс по детальным записям.
Подскажите, кто знает.
1 swcid
 
02.02.16
01:12
(0) Сделать 2 набора данных.
2 Asmody
 
02.02.16
01:14
я не знаю всей твоей кухни, я бы сделал отдельный набор данных
3 Asmody
 
02.02.16
01:14
вот, и коллега в (1) не против
4 Живой Ископаемый
 
02.02.16
08:15
ок, сенкс...
и тогда два набора я смогу связать на нужных группировках, а не детальные записи, и тогда добъюсь чего хотел..
попробую.

А стало быть просто агрегатные функции не позволят мне добиться желаемого
5 extrim-style
 
02.02.16
08:42
условное оформление - оформление текст "", условие СистемныеПоля.Уровень больше 1, оформляемое поле СуммаВозврата
6 extrim-style
 
02.02.16
08:43
+(5) упс) не проснулся)
7 extrim-style
 
02.02.16
08:47
(0) а почему в колонке СуммаВозврата больше группировок? она вырезана из другого отчета и не связана с данными слева?
8 Лефмихалыч
 
02.02.16
08:57
(4) может и позволят, но тот, кто будет с этим разбираться потом, проклянет тебя. Ибо это будут крайне запутанные заклинания в ресурсах.
9 KuAl
 
02.02.16
09:43
Вообще для таких целей используют ВычислитьВыражениеСГруппировкойМассив.
Как-то делал, работало.

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


А потом суммируешь максимумы
10 Живой Ископаемый
 
02.02.16
09:56
2(9) Ну, если честно, я как раз и не понимаю как натянуть этот пример на мой случай

2(7) ты опять не проснулся. в ней ровно столько же группировок. но если тебя смутил оттенок в одной из ячеек, то это просто мои художества.
11 DmitrO
 
02.02.16
10:00
причем простой, без ВычислитьВыражениеСГруппировкойМассив и уж точно без агрегатных функций

Есть способ, сейчас расскажу
12 Живой Ископаемый
 
02.02.16
10:05
2(11) Внимаю
13 KuAl
 
02.02.16
10:07
еще вариант:
вместо детальных, делаешь группировку по документам.
И для каждой группировки описываешь выражение в ресурсах.

для группировки признак схемы можно тогда написать что-то типа:
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(СуммаВозврата)", "Договор"))
14 DmitrO
 
02.02.16
10:17
суть в том что отнесение суммы возврата к документам это проблема, если не сказать - ошибка

надо создать такой исходный набор данных: (ПризнакСхемы, Договор, Документ, СуммаЗадолженности, СуммаВозврата), в котором будут записи двух типов: суммами задолженности, и с суммами возвратов.
Записи возвратов должны отличаться, например тем что будет не заполнено поле документ, зато заполнена сумма возврата, а сумма задолженности в них будет =0.

Это легко делается объединением (наборов или в одном запросе - не важно).

Оба ресурса агрегируем обычной функцией Сумма.

Чтобы скрыть записи возвратов по группировке Документ ставим отбор вывода (т.е. условие надо расположить не в отчете, а в самой группировке): Документ - Заполнено.
Чтобы отбор не выводился перед каждой группировкой, в доп.настройках этой группировки ставим "Не выводить отбор" Да.
15 Живой Ископаемый
 
02.02.16
10:19
2(13,14) ок, я попробую, сенкс
16 Живой Ископаемый
 
09.02.16
16:34
2(14) Да. переосмыслил запрос, сделал возвраты не соединением, а объединением, и все получилось. Спасибо.
2 + 2 = 3.9999999999999999999999999999999...