Имя: Пароль:
1C
 
Условия в запросе: получение всех записей, если параметр пустой.
,
0 Лентаf
 
19.02.16
13:36
добрый день.

для примера привожу запрос:
Контрагент - список значений со значениями контрагентов.

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

Нужно сделать чтобы если параметр Контрагент не задан бралось по всем. Решил задачу так:
    
Если Не ЗначениеЗаполнено(Контрагент) Тогда
        ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"И ОтгрузкиОплаты.ДоговорКонтрагента.Владелец В(&Контрагент)", "");            
    КонецЕсли;
    Запрос.Текст=ТекстЗапроса;
А как Вы поступаете в данном случае?
1 shuhard
 
19.02.16
13:37
(0) ИЛИ &Что_то
2 los_hooliganos
 
19.02.16
13:39
выбор когда тогда
3 samozvanec
 
19.02.16
13:42
поиском пользуемся, норм тема кстати
4 Михаил Козлов
 
19.02.16
13:43
Построителем отчета.
5 samozvanec
 
19.02.16
13:59
а платформа какая? в 8.3 вроде обещали, что кодом можно будет условия добавлять(сам не видел)
6 НЕА123
 
19.02.16
14:02
{ГДЕ
    (_ДемоЗарплата.Дата В (&LLL))}
ТекстЗапроса="ВЫБРАТЬ

                 |    ОтгрузкиОплаты.Период КАК Период,
                 |    ОтгрузкиОплаты.Регистратор,
                 |    ОтгрузкиОплаты.КредитныйДокумент,
                 |    ОтгрузкиОплаты.ДоговорКонтрагента.Владелец КАК Контрагент,
                 |    ОтгрузкиОплаты.ДоговорКонтрагента,
                 |    ОтгрузкиОплаты.ВидОтгрузкиОплаты,
                 |    ОтгрузкиОплаты.Сумма
                 |ИЗ
                 |    РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты
                 |ГДЕ
                 |    ОтгрузкиОплаты.Организация = &Организация
                 |    И ОтгрузкиОплаты.Период МЕЖДУ &ДатаНачала И &ДатаКонца
                 |    И ОтгрузкиОплаты.ВидОтгрузкиОплаты В(&ВидыОтгрузкиОплаты)
{ГДЕ
(ОтгрузкиОплаты.ДоговорКонтрагента.Владелец В(&Контрагент))}
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |    Период" ;
7 Лентаf
 
19.02.16
14:09
(5) 8.1
8 mikecool
 
19.02.16
14:11
(0) Контрагент = &Контрагент Или &Контрагент = ПустаяСсылка
9 Лентаf
 
19.02.16
14:34
(8) (2) контрагент - список значений, он никак не будет равен пустой ссылке
10 Nuobu
 
19.02.16
14:36
(9) Запрос.УстановитьПараметр("Контрагент", ?(Контрагент.Количество() = 0, Справочники.Контрагенты.ПустаяССылка(), Контрагент);
11 lowepro
 
19.02.16
14:38
(0) Не надо так делать.

Делаешь условие

Вбырать Кагда &ЕстЬКонтрагент Тогда
ОтгрузкиОплаты.ДоговорКонтрагента.Владелец В(&Контрагент)",
ИНаче
Истина
Конец

И прееаешь занчения

Запрос.УстановитьПараметр("Контрагент",Контрагент);
Запрос.УстановитьПараметр("ЕстьКонтрагент",ЗначениеЗаполнено(Контрагент));
12 Михаил Козлов
 
19.02.16
14:38
(9) Сделайте построителем (как в (6)) и будете накладывать любые условия. На форму поместите табличное поле со значением Построитель.Отбор.
13 Лентаf
 
19.02.16
14:42
(11) лайк