Имя: Пароль:
1C
1С v8
Группировка по полю ТЧ Запрос
0 Олёнок
 
07.09.11
12:42
Есть запрос по документам, в котором суммируются строки табличной части.  Но к этому нужно посчитать и сумму по реквизиту самого документа. Но при группировке по полю табличной части этот реквизит суммируется по несколько раз. Как победить, уже и пакетом запросов делала и разные соединения, все равно дублируются суммы...
ВЫБРАТЬ
   РеализацияТоваровУслуг.Контрагент КАК Контрагент,
   ВложенныйЗапрос.Поставщик,
   ВложенныйЗапрос.ДоговорПоставщика,
   СУММА(ВложенныйЗапрос.СуммаЗатрат) КАК СуммаЗатрат,
   СУММА(РеализацияТоваровУслуг.Сбор) КАК Сбор
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           РеализацияТоваровУслугРейсы.Поставщик КАК Поставщик,
           РеализацияТоваровУслугРейсы.ДоговорПоставщика КАК ДоговорПоставщика,
           СУММА(РеализацияТоваровУслугРейсы.СуммаЗатрат) КАК СуммаЗатрат,
           РеализацияТоваровУслугРейсы.Ссылка КАК Ссылка
       ИЗ
           Документ.РеализацияТоваровУслуг.Рейсы КАК РеализацияТоваровУслугРейсы
       
       СГРУППИРОВАТЬ ПО
           РеализацияТоваровУслугРейсы.Поставщик,
           РеализацияТоваровУслугРейсы.ДоговорПоставщика,
           РеализацияТоваровУслугРейсы.Ссылка) КАК ВложенныйЗапрос
       ПО РеализацияТоваровУслуг.Ссылка = ВложенныйЗапрос.Ссылка
ГДЕ
   РеализацияТоваровУслуг.ПометкаУдаления <> ИСТИНА
   И РеализацияТоваровУслуг.Контрагент = &ВыбПокупатель
   И РеализацияТоваровУслуг.Дата >= &ДатаНач
   И РеализацияТоваровУслуг.Дата < &ДатаКон

СГРУППИРОВАТЬ ПО
   РеализацияТоваровУслуг.Контрагент,
   ВложенныйЗапрос.Поставщик,
   ВложенныйЗапрос.ДоговорПоставщика
ИТОГИ ПО
   Контрагент

Есть наверное какое-то изящное решение. Так не хочется грузить все это в ТЗ..
1 Рэйв
 
07.09.11
12:45
зачем соединение? Бери все одним запросом из тч рейсы.

а контрагента возьми из РеализацияТоваровУслугРейсы.Ссылка
2 lavryshev
 
07.09.11
12:45
Максимум(РеализацияТоваровУслуг.СуммаДокумента)
3 Рэйв
 
07.09.11
12:45
+и сбор тоже
4 Олёнок
 
07.09.11
12:54
(1)Так было сделано изначально, если группировать по поставщику он все равно берет эту РеализацияТоваровУслугРейсы.Ссылка.сбор по несколько раз для каждого поставщика(((
5 Рэйв
 
07.09.11
13:00
(4)Тогда ка вариант :

Выбери все сначала одним запросом из тч без сбора, сгруппируй по контрагенту суммируя сумму затрат. Потом соедени с шапкой документа и выведти сбор. На каждую строку тч должна получиться  своя несумируемая сумма сбора из шапки, дальше уже верти как хочешь
6 Олёнок
 
07.09.11
14:49
Как ее сделать несуммируемой , сумму сбора, группировать по ней чтоли?
7 Рэйв
 
07.09.11
15:12
(6)Как то так

ВЫБРАТЬ
   ТабЧасть.Контрагент,
   ТабЧасть.ДоговорКонтрагента,
   СУММА(ТабЧасть.СуммаЗатрат) КАК Сумма,
   СУММА(РеализацияТоваровУслуг.СуммаСбор) КАК СуммаДокумента// получили по одной Сумме сбору на документ,Ссылку просто не выводим
ИЗ
   (ВЫБРАТЬ
       //собираем и группитруем суммы таб частей документов
       РеализацияТоваровУслугРейсы.Ссылка.Контрагент КАК Контрагент,
       РеализацияТоваровУслугРейсы.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента,
       СУММА(РеализацияТоваровУслугРейсы.Сумма) КАК Сумма,
       РеализацияТоваровУслугРейсы.Ссылка КАК Ссылка     //ссылка нужна для связи
   ИЗ
       Документ.РеализацияТоваровУслуг.Рейсы КАК РеализацияТоваровУслугРейсы
   
   СГРУППИРОВАТЬ ПО
       РеализацияТоваровУслугРейсы.Ссылка.Контрагент,
       РеализацияТоваровУслугРейсы.Ссылка.ДоговорКонтрагента,
       РеализацияТоваровУслугРейсы.Ссылка) КАК ТабЧасть
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ПО ТабЧасть.Ссылка = РеализацияТоваровУслуг.Ссылка

СГРУППИРОВАТЬ ПО // получаем общие итоги по таб частям и сбору для контров по всем попавшим докам
   ТабЧасть.Контрагент,
   ТабЧасть.ДоговорКонтрагента