|
Получение сумм по нижестоящим группировкам в таблице значений | ☑ | ||
---|---|---|---|---|
0
trey1
02.11.16
✎
06:25
|
Коллеги такая проблема возникла, обхожу результат запросов по группировкам, требуется узнать суммы документов в вышестоящей группировке, попробую показать наглядно:
https://cloud.mail.ru/public/D6Mq/Yt3AvpGJF Дело в том, что мне нужно знать сумму документа по нижестоящим группировкам, если я итоги по сумме возьму, то в группировке по документу будет 202 тысячи * кол-во этих документов, хотя мне надо только лишь сумма 202, если я возьму итог по максимуму, то в этой группировке будет все норм, но в вышестоящей(назову ее по контрагенту) возьмется лишь максимум по документам, как быть не знаю, на СКД это сделалось бы в 2 счета но нужно именно Обход результата по группировкам |
|||
1
Romyr
02.11.16
✎
06:29
|
скд? там вроде были промежуточные итоги
|
|||
2
trey1
02.11.16
✎
06:31
|
(1) В чем и дело что не СКД, получается результат запроса и мне его надо обойти по группировкам
|
|||
3
shadow_sw
02.11.16
✎
06:35
|
запрос в студию
|
|||
4
trey1
02.11.16
✎
06:41
|
(3) Конфа немного доработанная, поэтому запрос в типовых не будет работать.
ВЫБРАТЬ РеализацияТоваровУслуг.Контрагент КАК Контрагент, РеализацияТоваровУслуг.СуммаДокумента КАК СуммаБУ, РеализацияТоваровУслуг.Ссылка КАК ДокументБУ ПОМЕСТИТЬ ДокументыБУ ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Проведен = ИСТИНА И РеализацияТоваровУслуг.АС_ВидУчета = ЗНАЧЕНИЕ(перечисление.АС_ВидыУчета.БУ) И НЕ РеализацияТоваровУслуг.Соглашение В (&СписокСоглашИскл) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозвратТоваровОтКлиента.Ссылка КАК ВозвратБУ, ВозвратТоваровОтКлиента.Контрагент, ВозвратТоваровОтКлиента.СуммаДокумента КАК СуммаВозвратаБУ ПОМЕСТИТЬ ВозвратыБУ ИЗ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента ГДЕ ВозвратТоваровОтКлиента.ДокументРеализации В (ВЫБРАТЬ ДокументыБУ.ДокументБУ.Ссылка ИЗ ДокументыБУ КАК ДокументыБУ) И ВозвратТоваровОтКлиента.Проведен = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Контрагент, РеализацияТоваровУслуг.СуммаДокумента ПОМЕСТИТЬ РеализацииУУ ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.РеализацияБУ.Ссылка В (ВЫБРАТЬ ДокументыБУ.ДокументБУ.Ссылка ИЗ ДокументыБУ КАК ДокументыБУ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозвратТоваровОтКлиента.Ссылка КАК ВозвратУУ, ВозвратТоваровОтКлиента.Контрагент, ВозвратТоваровОтКлиента.СуммаДокумента КАК СуммаВозвратаУУ ПОМЕСТИТЬ ВозвратыУУ ИЗ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента ГДЕ ВозвратТоваровОтКлиента.ДокументРеализации В (ВЫБРАТЬ РеализацииУУ.Ссылка ИЗ РеализацииУУ КАК РеализацииУУ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДокументыБУ.Контрагент КАК Контрагент, ДокументыБУ.ДокументБУ КАК ДокументБУ, ВозвратыБУ.СуммаВозвратаБУ КАК СуммаВозвратаБУ, ДокументыБУ.СуммаБУ КАК СуммаДокументаБУ, РеализацииУУ.Ссылка КАК ДокументУУ, РеализацииУУ.СуммаДокумента КАК СуммаДокументаУУ, ВозвратыУУ.СуммаВозвратаУУ КАК СуммаВозвратаУУ ИЗ ДокументыБУ КАК ДокументыБУ ЛЕВОЕ СОЕДИНЕНИЕ ВозвратыБУ КАК ВозвратыБУ ПО ДокументыБУ.ДокументБУ = ВозвратыБУ.ВозвратБУ.ДокументРеализации.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РеализацииУУ КАК РеализацииУУ ЛЕВОЕ СОЕДИНЕНИЕ ВозвратыУУ КАК ВозвратыУУ ПО РеализацииУУ.Ссылка.Ссылка = ВозвратыУУ.ВозвратУУ.ДокументРеализации.Ссылка ПО ДокументыБУ.ДокументБУ.Ссылка = РеализацииУУ.Ссылка.РеализацияБУ.Ссылка ГДЕ ДокументыБУ.СуммаБУ <> РеализацииУУ.СуммаДокумента УПОРЯДОЧИТЬ ПО ДокументыБУ.ДокументБУ.Номер ИТОГИ ПО Контрагент, ДокументБУ |
|||
5
shadow_sw
02.11.16
✎
06:43
|
регистр продажи использовать?
|
|||
6
Потрошитель Запросов
02.11.16
✎
06:43
|
В запросе на вкладке итоги берите Среднее() по всем группировкам, а сумму по вышестоящей группировке считайте в коде. Вы же все равно обход по группировкам делаете.
Выборка1Уровень = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Сумма1Уровень = 0; Пока Выборка1Уровень.Следующий() Цикл Выборка2Уровень = Выборка1Уровень.Выбрать(); Пока Выборка2Уровень.Следующий() Цикл Сумма1Уровень = Сумма1Уровень + Выборка2Уровень.Среднее; КонецЦикла; КонецЦикла; |
|||
7
shadow_sw
02.11.16
✎
06:43
|
документы в запросе..не гут
|
|||
8
trey1
02.11.16
✎
06:48
|
(7) Есть такое), но мне бы для начала с итогами разобраться, запрос можно допилить если время будет
|
|||
9
shadow_sw
02.11.16
✎
06:51
|
если использовать РН продажи, то там через выбор и типзначения(регистратор) = тип(документы.*) получить то что ты хочешь, с итогом по контрагентам, тогда все свернется корректно
|
|||
10
darius357
02.11.16
✎
07:40
|
ну как всегда побакланили, и нифига толку
|
|||
11
Потрошитель Запросов
02.11.16
✎
08:09
|
(9) Так что ли?
ВЫБРАТЬ ВыручкаИСебестоимостьПродажОбороты.Регистратор КАК Регистратор, ВыручкаИСебестоимостьПродажОбороты.Регистратор.Контрагент КАК Контрагент, ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот КАК СуммаВыручкиОборот ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&Н, &К, Регистратор, ) КАК ВыручкаИСебестоимостьПродажОбороты ГДЕ ВыручкаИСебестоимостьПродажОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг СГРУППИРОВАТЬ ПО ВыручкаИСебестоимостьПродажОбороты.Регистратор, ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот ИТОГИ СУММА(СуммаВыручкиОборот) ПО Контрагент |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |