Результат запроса

1. mike40 28.03.23 16:52 Сейчас в теме
Всем доброго дня! Подскажите пожалуйста, есть справочник Номенклатура и рс ОстаткиТоваров. Требуется с помощью запроса найти нужную номенклатуру и количество на остатке. В самом регистре этой номенклатуры нет. Если в запросе ограничить выгрузку из рс по полям усОстаткиТоваров.Ячейка.РабочаяЗона И усОстаткиТоваров.Ячейка.ТипЯчейки, то результат запроса пустой. Если эти условия убрать, то номенклатура находится и количество соответственно 0. Подскажите, как переработать запрос, чтобы он не был пустым и условия тоже остались? Спасибо за помощь!


Текст запроса:
ВЫБРАТЬ
	усНоменклатура.Ссылка КАК Номенклатура,
	усНоменклатура.Родитель КАК НоменклатураРодитель,
	усНоменклатура.Код КАК НоменклатураКод,
	усНоменклатура.Наименование КАК НоменклатураНаименование,
	усНоменклатура.Артикул КАК НоменклатураАртикул
ПОМЕСТИТЬ вт_Номенклатура
ИЗ
	Справочник.усНоменклатура КАК усНоменклатура
ГДЕ
	усНоменклатура.Код В(&мсвКодыНоменклатур)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	вт_Номенклатура.Номенклатура,
	вт_Номенклатура.НоменклатураРодитель,
	вт_Номенклатура.НоменклатураКод,
	вт_Номенклатура.НоменклатураНаименование,
	вт_Номенклатура.НоменклатураАртикул,
	ЕСТЬNULL(усОстаткиТоваров.Количество, 0) КАК Количество
ИЗ
	вт_Номенклатура КАК вт_Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.усОстаткиТоваров КАК усОстаткиТоваров
		ПО вт_Номенклатура.Номенклатура = усОстаткиТоваров.Номенклатура
ГДЕ
	усОстаткиТоваров.Ячейка.РабочаяЗона = &РабочаяЗона
	И усОстаткиТоваров.Ячейка.ТипЯчейки = &ТипЯчейки
Показать
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Said-We 28.03.23 17:24 Сейчас в теме
(1) Перенеси условие не в итог, а только на таблицу РегистрСведений.усОстаткиТоваров.
+
3. soft_wind 28.03.23 17:52 Сейчас в теме
Остатки? в РегистреСведений? - новая мысль/технология в упр.учете?
+
4. Said-We 28.03.23 18:45 Сейчас в теме
(3)
Остатки? в РегистреСведений?

Как есть. Это могут быть условные остатки товаров в другой базе. Это могут быть минимальные остатки товаров. Это может быть что угодно.
Что такое Ячейка - даже не задумывался. :-)

(1) Я имел ввиду примерно вот это:
...
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ т.Номенклатура, т.Количество ИЗ РегистрСведений.усОстаткиТоваров КАК т
                                         ГДЕ
                                                т.Ячейка.РабочаяЗона = &РабочаяЗона
                                             И т.Ячейка.ТипЯчейки = &ТипЯчейки) как  усОстаткиТоваров
        ПО вт_Номенклатура.Номенклатура = усОстаткиТоваров.Номенклатура
+
6. RustamZz 28.03.23 19:47 Сейчас в теме
(3) И ведь не только товаров.
Прикрепленные файлы:
+
7. mike40 28.03.23 20:33 Сейчас в теме
(3) конфигурация WMS Логистика: Управление складом 3.1, там много чего интересного)
+
5. Said-We 28.03.23 18:49 Сейчас в теме
(1) А вообще можно и без левого соединения через объединить и сгруппировать. Но это уже совсем другая история.
Как уже в (1) написали так и рассказал.
+
8. mike40 28.03.23 20:40 Сейчас в теме
Всем спасибо за ответы. Проблему решил. Условия на рабочую зону и тип ячейки в связи надо указать, если остатка нет, а условия на рабочую зону и тип ячейки в секции ГДЕ, то запрос обрубает эти результаты.

Вот такой текст запроса получился и все работает:
ВЫБРАТЬ
	усНоменклатура.Ссылка КАК Номенклатура,
	усНоменклатура.Родитель КАК НоменклатураРодитель,
	усНоменклатура.Код КАК НоменклатураКод,
	усНоменклатура.Наименование КАК НоменклатураНаименование,
	усНоменклатура.Артикул КАК НоменклатураАртикул
ПОМЕСТИТЬ вт_Номенклатура
ИЗ
	Справочник.усНоменклатура КАК усНоменклатура
ГДЕ
	усНоменклатура.Код В(&мсвКодыНоменклатур)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	вт_Номенклатура.Номенклатура,
	вт_Номенклатура.НоменклатураРодитель,
	вт_Номенклатура.НоменклатураКод,
	вт_Номенклатура.НоменклатураНаименование,
	вт_Номенклатура.НоменклатураАртикул,
	ЕСТЬNULL(усОстаткиТоваров.Количество, 0) КАК Количество
ИЗ
	вт_Номенклатура КАК вт_Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.усОстаткиТоваров КАК усОстаткиТоваров
		ПО вт_Номенклатура.Номенклатура = усОстаткиТоваров.Номенклатура
			И (усОстаткиТоваров.Ячейка.РабочаяЗона = &РабочаяЗона)
			И (усОстаткиТоваров.Ячейка.ТипЯчейки = &ТипЯчейки)
Показать
+
Внимание! Тема сдана в архив

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