Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамический список. Запрос.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
logist
Есть запрос:
ВЫБРАТЬ
    СправочникНоменклатура.*,
    ТоварыОстатки.Номенклатура,
    ТоварыОстатки.КоличествоОстаток
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Товары.Остатки КАК ТоварыОстатки
        ПО (ТоварыОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
ГДЕ
    ТоварыОстатки.Склад = &Склад


Как составить его так, что бы если "Склад" было ПустаяСсылка, то выбиралась вся номенклатура, и отображался общий остаток по всем складам или 0?
Спасибо smile.gif
Vofka
Может как-то так (навскидочку smile.gif ):

ВЫБРАТЬ
    СправочникНоменклатура.*,
    ТоварыОстатки.Номенклатура,
ВЫБОР КОГДА &Склад = &ПустаяСсылка Тогда 0
ИНАЧЕ ТоварыОстатки.КоличествоОстаток
КОНЕЦ КАК КоличествоОстаток

ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Товары.Остатки КАК ТоварыОстатки
        ПО (ТоварыОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
ГДЕ
   ВЫБОР КОГДА &Склад = &ПустаяСсылка ТОГДА
     ТоварыОстатки.Склад <> &ПустаяСсылка
   ИНАЧЕ
    ТоварыОстатки.Склад = &Склад
   КОНЕЦ
logist
ПустаяСсылка это не параметр, это пустая ссылка, я не знаю как это выразить smile.gif
Vofka
Как точно не помню, но как-то так:
ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка())

или
ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
logist
Не, не работает как надо.
Задача упрощается )) Номенклатура отображается всегда вся, но остатки надо только по выбранному складу.
Vofka
Цитата
Не, не работает как надо.

А чё? Что именно не работает?

Цитата
Задача упрощается )) Номенклатура отображается всегда вся, но остатки надо только по выбранному складу.

ВЫБРАТЬ
    СправочникНоменклатура.*,
    ТоварыОстатки.Номенклатура,
    ТоварыОстатки.КоличествоОстаток
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Товары.Остатки(, Склад = &Склад) КАК ТоварыОстатки
        ПО (ТоварыОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
logist
Цитата(Vofka @ 12.08.11, 7:57) необходимо зарегистрироваться для просмотра ссылки
А чё? Что именно не работает?

Показывает только ту номенклатуру по которой есть остаток не зависимо от склада.

За последний вариант спасибо! icon_beer17.gif
Virgo
ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ СправочникНоменклатура
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
{ГДЕ
    СправочникНоменклатура.Ссылка КАК Номенклатура}
;

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


или:
ВЫБРАТЬ
    СправочникНоменклатура.*,
    ВЫБОР
        КОГДА ТоварыОстатки.Номенклатура ЕСТЬ NULL
            ТОГДА 0
        ИНАЧЕ ТоварыОстатки.КоличествоОстаток
    КОНЕЦ КАК Остаток
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Товары.Остатки(, Склад = &Склад) КАК ТоварыОстатки
        ПО (ТоварыОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.