Имя: Пароль:
1C
1С v8
СКД Общий Итог по группировкам
0 Gera1t
 
13.02.23
10:24
Здравствуйте!
Можно ли как то в отчете на СКД получить Общий итог не построчно, а как сумма итогов группировок.
Т.е. есть запрос который обрабатывает СКД.
В таблице выводятся такие данные:
Покупатель | Заказ | Сумма | Долг
Иванов     | 1     | 100   |500
Иванов     | 2     | 200   |500
Иванов     | 3     | 300   |500

В результате СКД группировка Покупатель.
Если добавить ресурс Сумма(Долг), то в отчет выйдет что долг 1500, делаю ресурс Максимум(Долг), и в группировку Долг попадает правильно.
Но общий итог все не считается.
Добавляю 2 ресурса Максимум(Долг) по группировке Покупатель, и Сумма(Долг) по Общий итог, в этом случае в группировках все правильно, но Общий итог 1500.
Подскажите пожалуйста как прописать ресурсы, что Общий итог считался как сумма группировок, а не сумма строк.
Спасибо!
1 Gera1t
 
13.02.23
10:58
Может кому поможет.
Нужно в выражении ресурса использовать формулу: Сумма(ВычислитьВыражениеСГруппировкойМассив("МАКСИМУМ(Долг)","Покупатель")).
В этом случае он формирует массив из МАКСИМУМ(Долг) по группировке Покупатель, а потом суммирует значения в массиве.
2 Fedor-1971
 
13.02.23
11:04
(0) в запросе сделай доп.поле, в котором, обеспечь только 500 в одной записи (любой из многих), в остальных 0.
Потом добавляем пользовательское поле: для записей выводим Поле, а для группировки Сумма(доп.поле)

(1) в таком раскладе ты привязан к группировке "Покупатель",
но у пользователя есть возможность перестроить структуру отчета на СКД (+/- незадача, которую надо учитывать)
3 Gera1t
 
13.02.23
11:11
(2) То что я привязан к группировке это да, но в данном случае я делаю для конкретной задачи, и доступ к настройкам у пользователей заблокирован, так что для меня это не проблема.
А вообще если пользователь может менять структуру отчета будет косяк.
4 Gera1t
 
13.02.23
11:12
(2) По поводу писать долг только в 1 строку из группировки я думал в первую очередь, но что то быстро не придумал как это сделать.
2 + 2 = 3.9999999999999999999999999999999...