Имя: Пароль:
1C
1С v8
Запрос - перемешаны детальные записи
0 MaQo
 
28.04.22
11:03
В таблице есть приход и списание, соответственно, разные регистраторы. Идет группировка по номенклатуре с детализацией до регистратора и для нее рассчитываются итоги. Т.е нужно:

            Приход/Списание
Булка           30/10
     Приход№1   20/0
     Приход№2   10/0
     Списание№1 0/5
     Списание№2 0/5

А у меня сейчас все вместе и списания подчинены приходу:

Булка              30/20

     Приход№1      20/10
        Списание№1 10/5
        Списание№2 10/5
     Приход№2      10/10
        Списание№1 5/5
        Списание№2 5/5


Я так думаю, дело в связях. Пытался приход так же во временную помещать, но тоже билеберда получается.




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

СГРУППИРОВАТЬ ПО
    ТоварыВРозницеОстаткиИОбороты.Номенклатура,
    ТоварыВРозницеОстаткиИОбороты.Склад,
    ТоварыВРозницеОстаткиИОбороты.Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыВРозницеОстаткиИОбороты.Склад КАК Склад,
    ТоварыВРозницеОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыВРозницеОстаткиИОбороты.Регистратор КАК Регистратор,
    ВТ_Списание.Регистратор КАК РегистраторСписания,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КатегорииОбъектов.Категория) КАК Категория,
    СУММА(ТоварыВРозницеОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ВТ_Списание.Списание) КАК Списание,
    СУММА(ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяПриход) КАК СуммаПродажнаяПриход,
    СУММА(ВТ_Списание.СуммаПродажнаяРасход) КАК СуммаСписание,
    СРЕДНЕЕ(ВЫБОР
            КОГДА ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяПриход > 0.1
                ТОГДА ВТ_Списание.СуммаПродажнаяРасход / ТоварыВРозницеОстаткиИОбороты.СуммаПродажнаяПриход * 100
            ИНАЧЕ 0
        КОНЕЦ) КАК Процент
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    Регистратор.*,
    РегистраторСписания.*,
    Категория.*,
    КоличествоПриход,
    Списание,
    СуммаПродажнаяПриход,
    СуммаСписание,
    Процент}
ИЗ
    ВТ_Списание КАК ВТ_Списание
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаНач {(&ДатаНач)}, &ДатаКон {(&ДатаКон)}, Регистратор, , ) КАК ТоварыВРозницеОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
            ПО ТоварыВРозницеОстаткиИОбороты.Номенклатура = КатегорииОбъектов.Объект
        ПО (ТоварыВРозницеОстаткиИОбороты.Номенклатура = ВТ_Списание.Номенклатура)
            И (ТоварыВРозницеОстаткиИОбороты.Склад = ВТ_Списание.Склад)
ГДЕ
    ТИПЗНАЧЕНИЯ(ТоварыВРозницеОстаткиИОбороты.Регистратор) <> ТИП(Документ.W_ИтоговаяПереоценкаТоваровВРознице)
{ГДЕ
    ТоварыВРозницеОстаткиИОбороты.Склад.*,
    ТоварыВРозницеОстаткиИОбороты.Номенклатура.*,
    КатегорииОбъектов.Категория.*}

СГРУППИРОВАТЬ ПО
    ТоварыВРозницеОстаткиИОбороты.Склад,
    ТоварыВРозницеОстаткиИОбороты.Номенклатура,
    ТоварыВРозницеОстаткиИОбороты.Регистратор,
    ВТ_Списание.Регистратор

УПОРЯДОЧИТЬ ПО
    ТоварыВРозницеОстаткиИОбороты.Номенклатура
ИТОГИ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Категория),
    СУММА(КоличествоПриход),
    СУММА(Списание),
    СУММА(СуммаПродажнаяПриход),
    СУММА(СуммаСписание),
    СУММА(СуммаСписание) / СУММА(СуммаПродажнаяПриход) * 100 КАК Процент
ПО
    ОБЩИЕ,
    Склад,
    Номенклатура,
    Регистратор,
    РегистраторСписания
{ИТОГИ ПО
    Склад.*,
    Номенклатура.*,
    Регистратор.*,
    РегистраторСписания.*}
1 1Сергей
 
28.04.22
11:08
(0) а какой смысл в двух запросов к одной и той же таблице, с итогами по двум регистраторам?
2 MaQo
 
28.04.22
15:34
(1) Ваш вопрос навел меня на правильную мысль переписать все заново и у меня получилось самостоятельно, спасибо
3 1Сергей
 
28.04.22
15:57
2 + 2 = 3.9999999999999999999999999999999...