Найти в Дзене
Просто <> "1С"

1С УТ10.3/Нулевой остаток товара на складе/ Получить нулевые остатки запросом

Задача: Получить нулевые остатки товара на складах. Если шаришь то "Код запроса в самом конце." Регистр ТоварыНаСкладах.Остатки не выводит "нулевые остатки" так и должно быть ведь товара нет на складе. Чтоб запросом их вычислить я сделал так: 1. Обратился к регистру "ТоварыНаСкладах" , чтоб выбрать всю номенклатуру которая когда либо проходила через склад. Сгруппировал и добавил условие для отбора. В моём случае нужна номенклатура определенной товарной марки. Поместим её во временную таблицу. 2. Создал следующий запрос в пакете запросов. Подтянул нашу временную таблицу и регистр ТоварыНаСкладах.Остатки. Связал их по номенклатуре и и складу. Выставил "левое соединение". Поскольку остатка может не быть в регистре ТоварыНаСкладах.Остатки для количества прописал "ЕСТЬNULL". Сгруппировал и просуммировал по количеству. Добавил условие на количество, чтоб оно было равно "0". На этом всё. При выполнении получается выборка из номенклатуры в разрезе склада с нулевым остатком. Код запроса

Задача: Получить нулевые остатки товара на складах.

Если шаришь то "Код запроса в самом конце."

Регистр ТоварыНаСкладах.Остатки не выводит "нулевые остатки" так и должно быть ведь товара нет на складе. Чтоб запросом их вычислить я сделал так:

1. Обратился к регистру "ТоварыНаСкладах" , чтоб выбрать всю номенклатуру которая когда либо проходила через склад. Сгруппировал и добавил условие для отбора. В моём случае нужна номенклатура определенной товарной марки. Поместим её во временную таблицу.

-2
-3
-4

2. Создал следующий запрос в пакете запросов. Подтянул нашу временную таблицу и регистр ТоварыНаСкладах.Остатки. Связал их по номенклатуре и и складу. Выставил "левое соединение". Поскольку остатка может не быть в регистре ТоварыНаСкладах.Остатки для количества прописал "ЕСТЬNULL". Сгруппировал и просуммировал по количеству. Добавил условие на количество, чтоб оно было равно "0". На этом всё. При выполнении получается выборка из номенклатуры в разрезе склада с нулевым остатком. Код запроса в самом конце.

-5
-6
-7
-8
-9
-10

//

ВЫБРАТЬ
ТоварыНаСкладах.Склад КАК Склад,
ТоварыНаСкладах.Номенклатура КАК Номенклатура

ПОМЕСТИТЬ ВТ_НоменклатураИСклады

ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

СГРУППИРОВАТЬ ПО
ТоварыНаСкладах.Склад,
ТоварыНаСкладах.Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
ВТ_НоменклатураИСклады.Номенклатура КАК Номенклатура,
ВТ_НоменклатураИСклады.Склад КАК Склад,
СУММА(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК КоличествоОстаток

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

ГДЕ
ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) = 0

СГРУППИРОВАТЬ ПО
ВТ_НоменклатураИСклады.Номенклатура,
ВТ_НоменклатураИСклады.Склад

//