|
Как в ДинамическомСписке вывести итоги суммы по двум табличным частям? |
☑ |
0
arsik
гуру
15.06.22
✎
11:56
|
Документ. У него 2 табличные части "Товары", "Услуги".
Хочу в динамическом списке вывести Документ, ИтогСуммыПоТоварам, ИтогСуммыПоУслугам.
Не понимаю как это сделать.
|
|
1
Жан Пердежон
15.06.22
✎
12:17
|
запросом
|
|
2
RomanYS
15.06.22
✎
12:21
|
(0) Если это регулярная потребность, то лучше добавить поля или РС и заполнять их ПередЗаписью.
Если нужно в лоб здесь и сейчас - запросом соединяй с таблицами ТЧ
|
|
3
arsik
гуру
15.06.22
✎
12:22
|
(1) Не получается. С использованием временных таблиц все долго делается. Левым соединением и группировкой не получится, т.к. тут 2 ТЧ.
|
|
4
Выпрь
15.06.22
✎
12:31
|
(3) открой для себя 2 левых соединения
|
|
5
arsik
гуру
15.06.22
✎
12:46
|
(4) Это как? С 2мя соединениями билиберда же получится.
Вот пример. В тч товары 1 строка, а в ТЧ услуги 2 строки. Общая сумма по документу 1982. В результате запроса же получится 2214
https://i.imgur.com/ggNRyNk.png
|
|
6
Выпрь
15.06.22
✎
12:48
|
так нужно соединять сс сгруппированными таблицами, но будет тормозить
|
|
7
arsik
гуру
15.06.22
✎
13:02
|
(6) Сделал через вложенный запрос. Оптимизатор в этом случае работает быстро.
|
|
8
hhhh
15.06.22
✎
15:44
|
(6) в тч 2 строки и будет тормозить?
|
|
9
vicof
15.06.22
✎
16:08
|
А я бы сделал два реквизита в документе, куда перед записью писал итоги сумм
|
|
10
Выпрь
15.06.22
✎
16:16
|
(6) группировка вызовет чтение всей таблицы
|
|
11
arsik
гуру
15.06.22
✎
18:29
|
(10) через вложенный запрос с соединением быстро работает,а вот через временную таблицу - да, там чтение всей таблицы
|
|
12
Ёпрст
гуру
15.06.22
✎
18:53
|
|
|
13
Mihasya
17.06.22
✎
10:40
|
(0) А если так?
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Ссылка КАК Ссылка,
СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Сумма, 0)) / ВЫБОР
КОГДА МАКСИМУМ(ЕСТЬNULL(ПоступлениеТоваровУслугУслуги.НомерСтроки, 0)) > 0
ТОГДА МАКСИМУМ(ЕСТЬNULL(ПоступлениеТоваровУслугУслуги.НомерСтроки, 0))
ИНАЧЕ 1
КОНЕЦ КАК СуммаТоваров,
СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугУслуги.Сумма, 0)) / ВЫБОР
КОГДА МАКСИМУМ(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.НомерСтроки, 0)) > 0
ТОГДА МАКСИМУМ(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.НомерСтроки, 0))
ИНАЧЕ 1
КОНЕЦ КАК СуммаУслуг
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ПО (ПоступлениеТоваровУслуг.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги
ПО (ПоступлениеТоваровУслуг.Ссылка = ПоступлениеТоваровУслугУслуги.Ссылка)
ГДЕ
ПоступлениеТоваровУслуг.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслуг.Ссылка
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший