Имя: Пароль:
1C
1С v8
8.1/8.2 Различные виды итогов в запросе на для разных уровней группировок
0 gengineer
 
15.08.11
10:32
Надо получить на уровне "ДокументПродажи" максимум, а на остальных группировках уже суммировать. Помогите, знатоки

запрос

ВЫБРАТЬ
   ВЗ.Контрагент КАК Контрагент,
   ВЗ.ДоговорКонтрагента КАК ДоговорКонтрагента,
   ВЗ.ЗаказПокупателя КАК ЗаказПокупателя,
   ВЗ.ДокументПродажи КАК ДокументПродажи,
   ВЗ.ПП КАК ПП,
   ВЗ2.СуммаОплатыНач КАК СуммаОплатыНач,
   ВЗ.СуммаОплаты КАК СуммаОплаты,
   ВЗ3.СуммаОплатыКон КАК СуммаОплатыКон,
   ВЗ.Период КАК Период,
   0 КАК п1
ИЗ
   (ВЫБРАТЬ
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Контрагент КАК Контрагент,
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Сделка КАК ЗаказПокупателя,
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДокументРасчетовСКонтрагентом КАК ДокументПродажи,
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор КАК ПП,
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.СуммаВзаиморасчетовРасход КАК СуммаОплаты,
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Период КАК Период
   ИЗ
       РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты
   ГДЕ
       ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор <> ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДокументРасчетовСКонтрагентом) КАК ВЗ
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           Таб.ДокументРасчетовСКонтрагентом КАК ДокументПродажи,
           СУММА(Таб.СуммаВзаиморасчетовРасход) КАК СуммаОплатыНач
       ИЗ
           РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &ДатаНач, , ) КАК Таб
       
       СГРУППИРОВАТЬ ПО
           Таб.ДокументРасчетовСКонтрагентом) КАК ВЗ2
       ПО (ВЗ2.ДокументПродажи = ВЗ.ДокументПродажи)
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           Таб.ДокументРасчетовСКонтрагентом КАК ДокументПродажи,
           СУММА(Таб.СуммаВзаиморасчетовРасход) КАК СуммаОплатыКон
       ИЗ
           РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &ДатаКон, , ) КАК Таб
       
       СГРУППИРОВАТЬ ПО
           Таб.ДокументРасчетовСКонтрагентом) КАК ВЗ3
       ПО (ВЗ3.ДокументПродажи = ВЗ.ДокументПродажи)

УПОРЯДОЧИТЬ ПО
   Период
ИТОГИ
   ВЫБОР КОГДА ДокументПродажи <> NULL ТОГДА МАКСИМУМ(СуммаОплатыНач) ИНАЧЕ СУММА(СуммаОплатыНач) КОНЕЦ КАК СуммаОплатыНач,
   СУММА(СуммаОплаты),
   ВЫБОР КОГДА ДокументПродажи <> NULL ТОГДА МАКСИМУМ(СуммаОплатыКон) ИНАЧЕ СУММА(СуммаОплатыКон) КОНЕЦ КАК СуммаОплатыКон
ПО
   Контрагент,
   ДоговорКонтрагента,
   ЗаказПокупателя,
   ДокументПродажи
1 butterbean
 
15.08.11
10:33
НЕ ДокументПродажи ЕСТЬ NULL
2 gengineer
 
15.08.11
10:33
пока что суммирует уже на уровне документа продажи
3 gengineer
 
15.08.11
10:35
спасибо.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс