Проверка наличия товара

1. Tailor_Made 11.09.19 13:38 Сейчас в теме
Здравствуйте. У меня есть запрос, который вытаскивает количество продаж товара и его остаток на складе. Эти данные я вытаскиваю с разных регистров, поэтому Соединение моё "отсекает" товары с нулевым остатком. Как сделать так, чтобы если товара в остатках, то его всё чтобы выводило?
Вот сам запрос
ВЫБРАТЬ
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура.Артикул КАК Артикул,
	ВыручкаИСебестоимостьПродаж.Склад,
	ВыручкаИСебестоимостьПродаж.Количество КАК Количество,
	ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, "0") КАК Остаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
		ПО ТоварыНаСкладахОстатки.Номенклатура.Код = ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура.Код
ГДЕ
	ВыручкаИСебестоимостьПродаж.Период МЕЖДУ &НачалоПериода И &КонецПериода
	И ВыручкаИСебестоимостьПродаж.Склад = &Склад
Показать
По теме из базы знаний
Найденные решения
2. danjer74 3 11.09.19 13:52 Сейчас в теме
ПО ТоварыНаСкладахОстатки.Номенклатура = ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура
соединение левое
Дело в том, что при обращении через точку идет дополнительный запрос к базе данных. Можно соединить с справочником Номенклатура. Тогда буду показаны остатки по всей номенклатуре, в том числе нулевые.
YannikAlx; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. danjer74 3 11.09.19 13:52 Сейчас в теме
ПО ТоварыНаСкладахОстатки.Номенклатура = ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура
соединение левое
Дело в том, что при обращении через точку идет дополнительный запрос к базе данных. Можно соединить с справочником Номенклатура. Тогда буду показаны остатки по всей номенклатуре, в том числе нулевые.
YannikAlx; +1 Ответить
3. Tailor_Made 11.09.19 13:58 Сейчас в теме
(2)А как это правильно соединить с справочником Номенклатура? Буду очень благодарен
5. danjer74 3 11.09.19 14:08 Сейчас в теме
(3)Завернуть этот запрос во временную таблицу, потом выбрать номенклатуру из справочника с условием НЕ во временной таблице ну и левым соеднинением соединить с этой выборкой. Как-то так.
Tailor_Made; +1 Ответить
4. shatunovs 11.09.19 14:04 Сейчас в теме
...
ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
        ЛЕВОЕ СОЕДИНЕНИЕ 
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
...

Если я правильно понял что требуется
6. YannikAlx 43 11.09.19 14:26 Сейчас в теме
(4) Неверно вы поняли...
Нужны все а не только ненулевые остатки товара с их объемами продаж...
Ваш вариант не покажет товары по которым не было продаж....
7. shatunovs 11.09.19 18:37 Сейчас в теме
(6) "Все остатки я и читаю, как "все остатки". Так что, скорее "неправильно написали", а не "поняли". Небольшая разница есть. Попробуйте перечитать свой вопрос.
А если вам нужны и те, где не нуль или продажи, или остатки, для этого, теоретически, существует "Полное соединение". Которое настоятельно рекомендуется заменять на объединить+сгруппировать по соображениям оптимизации производительности, особенно для виртуальных таблиц. Выбираете нужные поля остатков, добавляете нули в поля для продаж. Добавляете объединение с запросом по продажам, в котором нули на месте полей остатков. Заворачиваете все это во вложенный запрос и делаете ему группировку по измерениям и сумму по числам.
Соединение с номенклатурой покажет ВСЮ номенклатуру. Хотя, можно добавить условие ГДЕ не ноль либо то, либо это - тоже вариант. У любой задачи обычно несколько правильных решений.
Вариант с объединением сильно быстрее отработает при малых оборотах / остатках. Вариант с соединением номенклатуры будет перебирать всю номенклатуру независимо от количества остатков и оборотов в вашем регистре, но хорош, например, для отображения в форме списка справочника номенклатуры.
Tailor_Made; +1 Ответить
8. Tailor_Made 11.09.19 20:05 Сейчас в теме
(7)спасибо вам, вы отлично объяснили, что даже я понять смог :)
Оставьте свое сообщение

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