Выводить данные, если отбор не заполнен. Отчет не СКД.

1. Az18011993 23.11.22 09:28 Сейчас в теме
Добрый день, уважаемые форумчане!

Есть старый отчет не СКД, добавил отбор в виртуальную таблицу, но если этот отбор не заполнен то данные не выводятся. Можно ли как-то сделать, чтобы, если отбор не заполнен ,то он этот параметр не учитывал, не так часто с этим работал, надеюсь объяснил понятно...(Читал про "{", но не знаю подойдет ли это для отбора не СКД)

Вот пример запроса:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
	СвободныеОстаткиОстатки.Склад КАК Склад,
	СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
	СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток КАК ВРезервеОстаток,
	ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток, 0) КАК Остаток,
	ТоварныеОграничения.СтраховоеКоличествоЗапаса КАК СтраховоеКоличествоЗапаса,
	ТоварныеОграничения.МинимальноеКоличествоЗапаса КАК МинимальноеКоличествоЗапаса,
	ТоварныеОграничения.МаксимальноеКоличествоЗапаса КАК МаксимальноеКоличествоЗапаса,
	ТоварныеОграничения.МетодОбеспеченияПотребностей КАК МетодОбеспеченияПотребностей,
	ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток, 0) КАК ОстатокМаксимум
ИЗ
	РегистрНакопления.СвободныеОстатки.Остатки(
			&Период,
			Склад В (&Склады)
				И (&ОтборПоГруппамВыкл
					ИЛИ Номенклатура В ИЕРАРХИИ (&ГруппыОтбора))
				И (НЕ Номенклатура.Родитель В ИЕРАРХИИ (&УдаленныйТовар)
					И Номенклатура.Производитель В (&Производители))) КАК СвободныеОстаткиОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
		ПО СвободныеОстаткиОстатки.Номенклатура = ТоварныеОграничения.Номенклатура
			И СвободныеОстаткиОстатки.Характеристика = ТоварныеОграничения.Характеристика
			И СвободныеОстаткиОстатки.Склад = ТоварныеОграничения.Склад
ГДЕ
	СвободныеОстаткиОстатки.Склад <> &СкладУцененныеТовары

УПОРЯДОЧИТЬ ПО
	Номенклатура
ИТОГИ
	СУММА(Остаток),
	МАКСИМУМ(ОстатокМаксимум)
ПО
	Номенклатура ИЕРАРХИЯ,
	Склад
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Код КАК Код,
	ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены,
	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
	ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
	ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
	ЦеныНоменклатурыСрезПоследних.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
			&Период,
			ВидЦены В (&ВидыЦен)
				И Цена > 0
				И (&ОтборПоГруппамВыкл
					ИЛИ Номенклатура В ИЕРАРХИИ (&ГруппыОтбора))
				И (НЕ Номенклатура.Родитель В ИЕРАРХИИ (&УдаленныйТовар)
					И Номенклатура.Производитель В (&Производители))) КАК ЦеныНоменклатурыСрезПоследних

УПОРЯДОЧИТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование,
	ВидЦены
ИТОГИ
	СРЕДНЕЕ(Цена)
ПО
	Номенклатура ИЕРАРХИЯ,
	ВидЦены
Показать


Отбор в виртуальной таблице:
Склад В (&Склады)
	И (&ОтборПоГруппамВыкл
		ИЛИ Номенклатура В ИЕРАРХИИ (&ГруппыОтбора))
	И (НЕ Номенклатура.Родитель В ИЕРАРХИИ (&УдаленныйТовар)
		И Номенклатура.Производитель В (&Производители))


Мне нужно,чтобы если Производитель у Номенклатуры если не заполнен, то выводить данные по всем производителям.
Подскажите пути решения или направьте:)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. glek 120 23.11.22 10:21 Сейчас в теме
(1)
И Номенклатура.Производитель В (&Производители)

И (Номенклатура.Производитель В (&Производители) ИЛИ Номенклатура.Производитель = &ПустойПроизводитель)
7. Az18011993 23.11.22 10:36 Сейчас в теме
(5)Тут вопрос, что туда подставлять в Параметр, пустую ссылку?
9. glek 120 23.11.22 10:47 Сейчас в теме
(7) Ну да. Если у вас не составной тип.
2. starjevschik 23.11.22 09:39 Сейчас в теме
ну там же пример есть в предыдущей строке
&ОтборПоГруппамВыкл
                    ИЛИ Номенклатура В ИЕРАРХИИ (&ГруппыОтбора)

можно сделать ровно так же.
EvgeniyOlxovskiy; +1 Ответить
3. Zevzm 23.11.22 09:39 Сейчас в теме
Что мешает удалить отборы из текста запроса, если отборы не заполнены?
4. mrSallivan 78 23.11.22 09:51 Сейчас в теме
Если Не ЗначениеЗаполнено(ВашПараметр)
Запрос = СтрЗаменить("Кусок кода с параметром", "");
В общем просто динамически удалите из текста запроса условие и все.
SlavaKron; EvgeniyOlxovskiy; +2 Ответить
6. Az18011993 23.11.22 10:35 Сейчас в теме
(4)Да можно итак, просто думал можно в самом запросе условие прописать, или это повлияет на скорость запроса?
8. Az18011993 23.11.22 10:39 Сейчас в теме
Просто я понимаю, что если вырезать условие, то да корректно отработает, и интересует вопрос, что подставлять тогда в параметр отбора, чтобы он взял все ссылки или же для этого мне нужно будет подставлять массив всех ссылок на элементы справочника производителей, то есть дополнительно делать запрос
10. Az18011993 23.11.22 10:58 Сейчас в теме
Всем спасибо за ответы, получилось. Решил через булевский флаг к условию
Завел параметр
&ОтборПоПроизводителюВыкл
где присвоил ему значние массива
Производители.Количество()=0

Ну и ударил себя по голове вспомнил как работает условие ИЛИ и прислушался советов и написал условие:
И (&ОтборПоПроизводителюВыкл
		ИЛИ Номенклатура.Производитель В (&Производители))
Оставьте свое сообщение

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