Каталог решений - Установка необязательного параметра запроса

Установка необязательного параметра запроса

Установка необязательного параметра запроса

В наличии

Как установить необязательный параметр запроса без изменения его текста.

Категория:

Описание

Бывает, что при открытии формы отчета или обработки с динамическим списком, нам нужно установить отключаемый или необязательный параметр запроса.

 

 

Например, в нем есть условие.

ВЫБРАТЬ Док.Ссылка ИЗ Документы.Реализация КАК Док
ГДЕ Док.Организация = &Организация

 

Если это обязательный параметр, то все просто. Но если у пользователя есть возможность его не заполнять или отключать, то такой запрос выдаст пустой результат, а должен наоборот отключаться отбор и выводиться все подряд. Тогда приходится прибегать к некоторым хитростям.

Часто используют метод изменения самого текста запроса, просто вырезая из него участки с ненужными условиями.

Но это не наш метод. Мы будем использовать такую конструкцию:

ГДЕ (&ОтборПоОрганизации = ЛОЖЬ ИЛИ Док.Организация = &Организация)

 

Тогда в модуле формы в процедуре ПриОткрытии нам нужно установить параметр ОтборПоОрганизации

ОтборПоОрганизации = ЗначениеЗаполнено(Организация);
Запрос.УстановитьПараметр("ОтборПоОрганизации", ОтборПоОрганизации);

 

Такой же код будет и в процедуре ОрганизацияПриИзменении

При этом несмотря на то, что в условии запроса есть оператор ИЛИ, такое условие не приводит к замедлению запроса, индекс все равно используется.

has been added to your cart:
Оформление заказа