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

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)спасибо вам, вы отлично объяснили, что даже я понять смог :)
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день