Имя: Пароль:
1C
1С v8
Запрос: неверные итоги по группировке
0 MaQo
 
27.04.22
15:40
У меня есть колонки прихода и списания, а так же процента списания от прихода. И есть итоги по складам. Результат примерно такой:

.............Приход/Списание/Процент
        
Склад№1       454,80 / 113,80 / 51,20%
_____Булка    64,80 / 56,90 / 87,81%
_____Круассан 390/ 56,90/ 14,59%

Но ведь 113 от 454 не равно 51%, это просто (87+14)/2. Как сделать, что бы считалось именно 113 от 454? Запрос прилагаю

ВЫБРАТЬ
    |    ТоварыВРозницеОстаткиИОбороты.Номенклатура,
    |    СУММА(ТоварыВРозницеОстаткиИОбороты.КоличествоРасход) КАК Списание,
    |    СУММА(ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяРасход) КАК СуммаПродажнаяРасход,
    |    ТоварыВРозницеОстаткиИОбороты.Склад,
    |    ТоварыВРозницеОстаткиИОбороты.Регистратор
    |ПОМЕСТИТЬ ВТ_Списание
    |ИЗ
    |    РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , ) КАК ТоварыВРозницеОстаткиИОбороты
    |ГДЕ
    |    ТИПЗНАЧЕНИЯ(ТоварыВРозницеОстаткиИОбороты.Регистратор) = ТИП(Документ.СписаниеТоваров)
    |
    |СГРУППИРОВАТЬ ПО
    |    ТоварыВРозницеОстаткиИОбороты.Номенклатура,
    |    ТоварыВРозницеОстаткиИОбороты.Склад,
    |    ТоварыВРозницеОстаткиИОбороты.Регистратор
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТоварыВРозницеОстаткиИОбороты.Склад КАК Склад,
    |    ТоварыВРозницеОстаткиИОбороты.Номенклатура КАК Номенклатура,
    |    ТоварыВРозницеОстаткиИОбороты.Регистратор КАК Регистратор,
    |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КатегорииОбъектов.Категория) КАК Категория,
    |    СУММА(ТоварыВРозницеОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
    |    СУММА(ВТ_Списание.Списание) КАК Списание,
    |    СУММА(ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяПриход) КАК СуммаПродажнаяПриход,
    |    СУММА(ВТ_Списание.СуммаПродажнаяРасход) КАК СуммаСписание,
    |    СРЕДНЕЕ(ВЫБОР
    |            КОГДА ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяПриход > 0.1
    |                ТОГДА ВТ_Списание.СуммаПродажнаяРасход / ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяПриход * 100
    |            ИНАЧЕ 0
    |        КОНЕЦ) КАК Процент
    |{ВЫБРАТЬ
    |    Склад.*,
    |    Номенклатура.*,
    |    Регистратор.*,
    |    Категория.*,
    |    КоличествоПриход,
    |    Списание,
    |    СуммаПродажнаяПриход,
    |    СуммаСписание,
    |    Процент}
    |ИЗ
    |    РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаНач {(&ДатаНач)}, &ДатаКон {(&ДатаКон)}, Регистратор, , ) КАК ТоварыВРозницеОстаткиИОбороты
    |        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Списание КАК ВТ_Списание
    |        ПО ТоварыВРозницеОстаткиИОбороты.Номенклатура = ВТ_Списание.Номенклатура
    |            И ТоварыВРозницеОстаткиИОбороты.Склад = ВТ_Списание.Склад
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
    |        ПО ТоварыВРозницеОстаткиИОбороты.Номенклатура = КатегорииОбъектов.Объект
    |{ГДЕ
    |    ТоварыВРозницеОстаткиИОбороты.Склад.*,
    |    ТоварыВРозницеОстаткиИОбороты.Номенклатура.*,
    |    КатегорииОбъектов.Категория.*}
    |
    |СГРУППИРОВАТЬ ПО
    |    ТоварыВРозницеОстаткиИОбороты.Склад,
    |    ТоварыВРозницеОстаткиИОбороты.Номенклатура,
    |    ТоварыВРозницеОстаткиИОбороты.Регистратор
    |
    |УПОРЯДОЧИТЬ ПО
    |    ТоварыВРозницеОстаткиИОбороты.Номенклатура
    |ИТОГИ
    |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Категория),
    |    СУММА(КоличествоПриход),
    |    СУММА(Списание),
    |    СУММА(СуммаПродажнаяПриход),
    |    СУММА(СуммаСписание),
    |    СРЕДНЕЕ(Процент)
    |ПО
    |    ОБЩИЕ,
    |    Склад,
    |    Номенклатура,
    |    Регистратор
    |{ИТОГИ ПО
    |    Склад.*,
    |    Номенклатура.*,
    |    Регистратор.*}
1 mikecool
 
27.04.22
15:47
ну ты же просишь среднее, чего ждешь в итоге?
2 1Сергей
 
27.04.22
15:48
3 Kassern
 
27.04.22
15:57
(2) судя по итогам, просто запрос делает, без всякого СКД
4 MaQo
 
27.04.22
16:01
(2) Должно сработать, но появляется новый столбец, костыльно как-то
(1) Ну, я могу задать СУММА, но от этого будет еще меньше смысла. Я жду, что процент в каждой строке вычисляется из данных только своей строки, в том числе если эта строка разворачивается на детальные записи
5 Kassern
 
27.04.22
16:05
(4) все правильно 1с считает, группировка заполняется из детальных записей. Если вы указали Среднее, то и получили среднее по данной колонке
6 mikecool
 
27.04.22
16:07
(4) если не использовать СКД, то считать итоги ручками
7 MaQo
 
27.04.22
16:31
(6) в итоге (2) сработал, просто вписал в Итоги вместо Среднее(Процент) -> СУММА(СуммаСписание) / СУММА(СуммаПродажнаяПриход) * 100 КАК Процент
(2) Спасибо!