Имя: Пароль:
1C
 
Типовой запрос на остатки
0 progaoff
 
20.05.20
11:39
Добрый день, в типовом запросе на получения остатков, добавил конструкцию аналогичную запроса по регистру остатки товаров на складах, на выходе = 0 ТоварыВПути, а остаток есть, подскажите что не так?

ВЫБРАТЬ // Запрос, контролирующий остатки на складах
    Док.Номенклатура                                              КАК Номенклатура,
    Док.Номенклатура.Представление                                КАК НоменклатураПредставление,
    Док.Номенклатура.ЕдиницаХраненияОстатков.Представление         КАК ЕдиницаХраненияОстатковПредставление,
    Док.ХарактеристикаНоменклатуры                                 КАК ХарактеристикаНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(Док.ХарактеристикаНоменклатуры)                 КАК ХарактеристикаНоменклатурыПредставление,
    Док.СерияНоменклатуры                                         КАК СерияНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(Док.СерияНоменклатуры)                         КАК СерияНоменклатурыПредставление,
   Док.ДокументКоличество                                           КАК ДокументКоличество,
   Док.Размещение                                                КАК Склад,
    ЕстьNull(Резервы.КоличествоОстаток,0) - ЕстьNull(РезервыПоЗаказу.КоличествоОстаток,0) КАК РезервыКоличество,
    ЕстьNull(РезервыПоЗаказу.КоличествоОстаток,0)               КАК РезервыПоЗаказу,
    ЕстьNull(ТоварыНаСкладахОстатки.КоличествоОстаток,0)
        + ЕстьNull(ТоварыВРозницеОстатки.КоличествоОстаток,0)+ ЕстьNull(ТоварыВПути.КоличествоОстаток,0)    КАК ОстаткиКоличество,
    ЕстьNull(ТоварыВПути.КоличествоОстаток,0) КАК ОстаткиВПути,
    ЕстьNull(КПередаче.КоличествоОстаток,0)                     КАК КПередачеКоличество
ИЗ      (ВЫБРАТЬ Номенклатура,
        ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        СерияНоменклатуры КАК СерияНоменклатуры,
       Сумма(Количество * Коэффициент / Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК ДокументКоличество,
        Размещение КАК Размещение
    ИЗ    
        Документ.ЗаказПокупателя.Товары
    ГДЕ
        Ссылка  =  &ДокументСсылка
       //И ВЫРАЗИТЬ(Размещение КАК Справочник.Склады) ССЫЛКА Справочник.Склады И Размещение <> &ПустойСклад
    СГРУППИРОВАТЬ ПО
        Номенклатура,
        ХарактеристикаНоменклатуры,
        СерияНоменклатуры,
        Размещение
        )КАК Док

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

ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыВРознице.Остатки(, (Номенклатура, Склад) В (
    ВЫБРАТЬ
        Док.Номенклатура КАК Номенклатура, Док.Размещение КАК Размещение
    ИЗ
        Документ.ЗаказПокупателя.Товары КАК Док
    ГДЕ
        Док.Ссылка = &ДокументСсылка
        И НЕ Док.Номенклатура.Комплект
        // И ВЫРАЗИТЬ(Док.Размещение КАК Справочник.Склады) ССЫЛКА Справочник.Склады И Док.Размещение <> &ПустойСклад
)) КАК ТоварыВРозницеОстатки
ПО
    ТоварыВРозницеОстатки.Склад = Док.Размещение
   И ТоварыВРозницеОстатки.Номенклатура = Док.Номенклатура
   //СОЕДИНЕНИЕ_Характеристика_Остатки// И ТоварыВРозницеОстатки.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
    И ТоварыВРозницеОстатки.СерияНоменклатуры = Док.СерияНоменклатуры

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

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

ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(, Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) И (Номенклатура, Склад) В (
    ВЫБРАТЬ
        Док.Номенклатура КАК Номенклатура, Док.Размещение КАК Размещение
    ИЗ
        Документ.ЗаказПокупателя.Товары КАК Док
    ГДЕ
        Док.Ссылка = &ДокументСсылка
        И НЕ Док.Номенклатура.Комплект
        // И ВЫРАЗИТЬ(Док.Размещение КАК Справочник.Склады) ССЫЛКА Справочник.Склады И Док.Размещение <> &ПустойСклад
)) КАК КПередаче
ПО
   КПередаче.Склад = Док.Размещение
    И КПередаче.Номенклатура = Док.Номенклатура
   //СОЕДИНЕНИЕ_Характеристика_Остатки// И КПередаче.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
    И КПередаче.СерияНоменклатуры = Док.СерияНоменклатуры

ГДЕ     
    НЕ Док.Номенклатура.Комплект

ДЛЯ ИЗМЕНЕНИЯ
    РегистрНакопления.ТоварыНаСкладах.Остатки,
    РегистрНакопления.ТоварыВРознице.Остатки,
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки,
    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки,
    РегистрНакопления.ТоварыВПути.Остатки
1 Галахад
 
гуру
20.05.20
12:41
В условии соединения убрать копи-пасту.
2 progaoff
 
20.05.20
12:54
(1) Да увидел, но результат тот же.
3 Ненавижу 1С
 
гуру
20.05.20
13:03
Док.Размещение это точно справочник Склады?
4 progaoff
 
20.05.20
13:10
(3) Ага.