Нулевой остаток в разрезе складов

1. Trotter_NN 10.02.25 15:02 Сейчас в теме
Здравствуйте!
Есть запрос:
ВЫБРАТЬ
	СпрНоменклатура.Ссылка КАК Товар,
	ЕСТЬNULL(ОстаткиТоваров.КоличествоОстаток, 0) КАК Остаток,
	Склады.Ссылка КАК Ссылка
ИЗ
	Справочник.Номенклатура КАК СпрНоменклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ОстаткиТоваров
			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
			ПО ОстаткиТоваров.Склад = Склады.Ссылка
		ПО (ОстаткиТоваров.Номенклатура = СпрНоменклатура.Ссылка)
ГДЕ
	СпрНоменклатура.Ссылка = &Номенклатура
Показать


Показывает остатки, но только там где он есть, а где 0 склад не выводится, как поправить ?

Если сделать:
РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) 

так покажет 0, но мне нужно все склады.

В типовом запросе, так же не показывает склады, если там 0 на складе:

РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, {(Номенклатура).* КАК Номенклатура, (Склад.Магазин).* КАК Магазин, (Характеристика).* КАК Характеристика}) КАК ОстаткиТоваров
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 81 10.02.25 15:21 Сейчас в теме
(1) Т.е. по сути вы хотите получить список ВСЕЙ номенклатуры по ВСЕМ складам?
Декартовое произведение таблиц - в помощь:

Выбрать
       Поле1,
       Поле2,
       Поле3
ПОМЕСТИТЬ ВТОстатки
ИЗ
     ТаблицаОстатков
ИНДЕКСИРОВАТЬ ПО
     Поле1,
     Поле2
;
Выбрать
     Т1.Поле1,
     Т2.Поле1,
     Т3.Поле3
ИЗ
     Таблица1 КАК Т1,
     Таблица2 КАК Т2
          ЛЕВОЕ СОЕДИНЕНИЕ ВТОстатки КАК Т3
          ПО Т1.Поле1 = Т3.Поле1
                И Т2.Поле1 = Т3.Поле2
Показать
2. user2107184 10.02.25 15:18 Сейчас в теме
Хочешь ВСЕ склады - делай его основной таблицей запроса, а не присоединяемой.
4. Trotter_NN 10.02.25 15:46 Сейчас в теме
ВЫБРАТЬ 
    Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВсяНоменклатура
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    НЕ Номенклатура.ЭтоГруппа
    И НЕ Номенклатура.ПометкаУдаления
;

////////////////////////////////////////////////////////////­////////////////////

ВЫБРАТЬ
    Склады.Магазин КАК Магазин,
    Склады.Ссылка КАК Склад,
    ВсяНоменклатура.Ссылка КАК Номенклатура,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
ИЗ
    Справочник.Склады КАК Склады  -- Склады теперь основная таблица

    ЛЕВОЕ СОЕДИНЕНИЕ ВсяНоменклатура КАК ВсяНоменклатура
        ПО 1 = 1  -- Создаём все комбинации "Склад + Товар" вот без этого не как :( 

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ВсяНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура
        И Склады.Ссылка = ТоварыНаСкладахОстатки.Склад

ГДЕ
    ВсяНоменклатура.Ссылка = &Номенклатура
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот