Имя: Пароль:
1C
 
Объединение всех условий в запросе
0 vladis222
 
18.07.19
12:44
Здравствуйте,вчера писал вам насчет проверки,что движения на складе не было более года, но здесь дело в том,что есть номенклатура,есть ее характеристики, и нужно объединить условия по остаткам (<=0) и условия связанные с движением. Писал такой запрос но сомневаюсь в его правильной работе:

ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура,
    ХарактеристикиНоменклатуры.Ссылка КАК Характеристика
ПОМЕСТИТЬ ВТ
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        ПО (ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка)
;

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

СГРУППИРОВАТЬ ПО
    ВТ.Номенклатура,
    ВТ.Характеристика
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ.Номенклатура,
    ВТ.Характеристика,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ПОМЕСТИТЬ ОстаточныйРегистр
ИЗ
    ВТ КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ВТ.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ВТ.Характеристика = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры
                        ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток <0 ИЛИ  ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ.Номенклатура,
    ВТ.Характеристика,
    СУММА(ОборотныйРегистр.Оборот) КАК Оборот,
    СУММА(ОстаточныйРегистр.Остаток) КАК Остаток
ИЗ
    ВТ КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ ОборотныйРегистр КАК ОборотныйРегистр
        ПО ВТ.Номенклатура = ОборотныйРегистр.Номенклатура
            И ВТ.Характеристика = ОборотныйРегистр.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ ОстаточныйРегистр КАК ОстаточныйРегистр
        ПО ВТ.Номенклатура = ОстаточныйРегистр.Номенклатура
            И ВТ.Характеристика = ОстаточныйРегистр.Характеристика

СГРУППИРОВАТЬ ПО
    ВТ.Характеристика,
    ВТ.Номенклатура
1 vicof
 
18.07.19
12:48
запрос можно выкинуть
2 Simod
 
18.07.19
13:27
(0)  У тебя нет никакого отбора по номенклатуре и характеристикам, поэтому первый запрос не имеет смысла - ты выбираешь всю номенклатуру и все характеристики. Обороты ты получаешь за период, а остатки на текущую дату. Возможно необходимо использовать вирт. таблицу "ОстаткиИОбороты".