Имя: Пароль:
1C
1С v8
Как выполнить суммирование в запросе не по всем группировочным полям
,
0 Ximik08
 
12.11.17
22:45
Подскажите пожалуйста. Есть запрос:

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Характеристика,
    ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение


В поле "Цена" выводится цена по каждой группировочной связке: Номенклатура+Характеристика+Доп.реквизит
А можно сделать так, чтобы Цена выводилась ТОЛЬКО по связке Номенклатура+Доп.рекизит? То есть по каждой характеристика была общая цена для всех характеристик с общим "доп.реквизитом"? Но при этом сама характеристика осталась в результате выполнения запроса.
1 AlvlSpb
 
12.11.17
22:53
(0) Можно. Только изменив регистр ЦеныНоменклатуры. У вас же там записаны цены в связке Номенклатура + Характеристика. И, вообще, из сказанного следует, что вы неправильно наладили учет номенклатуры. Характеристика - это то что влияет на цену. А у вас получается что на цену влияет Доп реквизит а характеристика нет.
  Я бы рекомендовал бы переделать. Ваш доп реквизит - на самом деле и есть характеристика (то что влияет на цену в связке с номенклатурой), а сегодняшняя характеристика товара - это дополнительное свойство товара (товар отличается по этому доп свойству, но оно не влияет на цену)
2 Ximik08
 
12.11.17
23:16
(1) Я имел ввиду как изменить сам запрос. В плане ведения учета менять нельзя. Грубо говоря выводится таблица

Номенклатура1 | Характеристика1 | Доп.Реквизит1 | Цена 1
Номенклатура1 | Характеристика2 | Доп.Реквизит1 | Цена 2

а должно быть

Номенклатура1 | Характеристика1 | Доп.Реквизит1 | Цена 3
Номенклатура1 | Характеристика2 | Доп.Реквизит1 | Цена 3

Где Цена3 - общая для Характеристик данной номенклатуры с одинаковым доп.реквизитом

Дак вот цена должна рассчитываться как будто в групировке участвуют только Номенклатура+Доп.реквизит. И, убрав из запроса характеристику, получаем верную цену. Но проблема в том, что информация по характеристике тоже должна быть.
Но в конструкторе запросов нельзя сгруппировать по 2-м полям, а вывести 3.
3 jsmith82
 
12.11.17
23:25

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

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

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