Пустой параметр в запросе = пустой результат. Надо наоборот.

1. Aleksandr_prof 202 15.02.21 21:06 Сейчас в теме
В запросе, если параметр не заполнен выдаётся пустой результат запроса. А мне нужны все результаты, т. е. без учёта параметра. Как это сделать? Мой запрос:

"ВЫБРАТЬ
|	РеализацияТоваровУслуг.Ссылка КАК Реализация
|ИЗ
|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
|	РеализацияТоваровУслуг.Дата >= &ДатаНачала
|	И РеализацияТоваровУслуг.Дата <= &ДатаОкончания
|	И РеализацияТоваровУслуг.Организация = &Организация
|	
|УПОРЯДОЧИТЬ ПО
|	РеализацияТоваровУслуг.Дата УБЫВ";
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. nomad_irk 81 15.02.21 23:36 Сейчас в теме
(1)
....
ГДЕ
...
И Выбор Когда &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
 ТОГДА Истина ИНАЧЕ РеализацияТоваровУслуг.Организация = &Организация
КОНЕЦ
vakham; Nefilimus; Aleksandr_prof; oleg-x; +4 Ответить
8. Aleksandr_prof 202 16.02.21 05:17 Сейчас в теме
(5) Довольно читабельный вариант. А можете пояснить словами, что означает данная конструкция? Я понял так: когда организация есть пустая ссылка, тогда выбрать реализацию безусловно, иначе только реализации с заполненным параметром. Верно понял?
9. nomad_irk 81 16.02.21 09:00 Сейчас в теме
(8)Когда организация - пустая ссылка, тогда "отключаем" условие, приравнивая его к Истина, а когда Организация указана, то отбираем документы по указанной организации.

Можно сделать более изящно и правильнее:

....
ГДЕ
...... 
     И РеализацияТоваровУслуг.Организация В ИЕРАРХИИ (&Организация)


Такая конструкция позволит передавать в параметр не только ссылку, но и набор ссылок.
10. Aleksandr_prof 202 16.02.21 09:57 Сейчас в теме
(9) Я проверил этот вариант - при пустом параметре - выдаёт пустой результат. Предыдущий вариант - рабочий. Его и оставлю. Спасибо)
2. pyrkin_vanya 498 15.02.21 21:36 Сейчас в теме
Если нужны данные без учета параметра, то значит отбора в запросе по этому параметру и быть не должно.
Пример без параметра организация
"ВЫБРАТЬ
|    РеализацияТоваровУслуг.Ссылка КАК Реализация
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
|    РеализацияТоваровУслуг.Дата >= &ДатаНачала
|    И РеализацияТоваровУслуг.Дата <= &ДатаОкончания
|    
|УПОРЯДОЧИТЬ ПО
|    РеализацияТоваровУслуг.Дата УБЫВ";
Показать
3. shurikvz 15.02.21 22:35 Сейчас в теме
Самый простой пример:

"ВЫБРАТЬ
|	РеализацияТоваровУслуг.Ссылка КАК Реализация
|ИЗ
|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
|	РеализацияТоваровУслуг.Дата >= &ДатаНачала
|	И РеализацияТоваровУслуг.Дата <= &ДатаОкончания
|	И (РеализацияТоваровУслуг.Организация = &Организация
|			ИЛИ &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
|
|УПОРЯДОЧИТЬ ПО
|	РеализацияТоваровУслуг.Дата УБЫВ";
Показать

но это не красиво. Универсальней будет на СКД через отборы.
4. Xershi 1536 15.02.21 23:23 Сейчас в теме
Я делаю 2 параметра 1 само значение, 2 проверка на заполненность и в запросе проверка на параметр 2.
6. Leon75 15.02.21 23:45 Сейчас в теме
Какой именно параметр? Или все сразу?
7. Alex_E 2384 16.02.21 04:02 Сейчас в теме
Если ЗначениеЗаполнено(<Организация>) Тогда
       Запрос.УстановитьПараметр("Организация", Организация);
Иначе
       Запрос.Текст = СтрЗаменить(Запрос.Текст, "И РеализацияТоваровУслуг.Организация = &Организация", "");
КонецЕсли;
klaus38; 2ncom; +2 Ответить
11. meriferi 18.02.21 19:43 Сейчас в теме
в параметре указывайте объект. пустая ссылка()
Оставьте свое сообщение

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