|   |   | 
| 
 | Условия в запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        only82 02.09.11✎ 20:08 | 
        Есть запрос с условием Поле1=&Параметр1. Как поставить условие чтобы отбирало все записи, если Параметр1 не указан?     | |||
| 1
    
        PR 02.09.11✎ 20:10 | 
        Никак. Запрос ругнется.     | |||
| 2
    
        only82 02.09.11✎ 20:12 | 
        (1) Почему никак? Я могу проверить на форме заполнение параметра и если он указан то добавить условие в Запрос.Текст, а если не указан - то не добавлять.     | |||
| 3
    
        only82 02.09.11✎ 20:13 | 
        (2) Но, я думаю есть стандартное решение задачи     | |||
| 4
    
        END 02.09.11✎ 20:14 | 
        Какого типа параметр?     | |||
| 5
    
        PR 02.09.11✎ 20:15 | 
        (2) Если так, то "Поле1=&Параметр1 ИЛИ &Параметр1 = 75378"     | |||
| 6
    
        only82 02.09.11✎ 20:15 | 
        (4) СправочинкСсылка     | |||
| 7
    
        PR 02.09.11✎ 20:16 | 
        (6) Если так, то "Поле1=&Параметр1 ИЛИ &Параметр1 = Неопределено"     | |||
| 8
    
        END 02.09.11✎ 20:17 | 
        ВЫБОР КОГДА &Параметр1 ССЫЛКА СправочникСсылка ТОГДА
  Поле1=&Параметр1 ИНАЧЕ ИСТИНА КОНЕЦ | |||
| 9
    
        cViper 02.09.11✎ 20:17 | 
        (0) Ты имеешь ввиду, если не инициализирован параметр?     | |||
| 10
    
        Икогнито 02.09.11✎ 20:17 | 
        Если НЕ Условие Тогда
  ТекстЗАпроса = ТекстЗапросаБаза + ТекстУсловия Иначе ТекстЗАпроса = ТекстЗапросаБаза КонецЕсли | |||
| 11
    
        only82 02.09.11✎ 20:18 | 
        (7) Надо попробовать. Хотя я думаю работать не будет     | |||
| 12
    
        PR 02.09.11✎ 20:18 | 
        (8) Вариант в (7) может быть оптимизирован компилятором 1С, вариант в (8) нет.     | |||
| 13
    
        Икогнито 02.09.11✎ 20:18 | 
        (8) И нафига запросу по каждой записи молотить условие выбора?     | |||
| 14
    
        PR 02.09.11✎ 20:19 | 
        (11) Если не будет, значит ты неправильно написал входные условия.     | |||
| 15
    
        truba 02.09.11✎ 20:19 | 
        КОГДА Поле1 = &Параметр1 ИЛИ &фл_НеОтбирать 
  а флаг поднимай какой хочешь при любых условиях. Так взлетит? | |||
| 16
    
        only82 02.09.11✎ 20:20 | 
        (15) Вот это похоже на правду     | |||
| 17
    
        only82 02.09.11✎ 20:21 | 
        (15) а без флага никак нельзя?     | |||
| 18
    
        Икогнито 02.09.11✎ 20:21 | 
        (11) Условие конкатенации в запросах не работает.     | |||
| 19
    
        PR 02.09.11✎ 20:22 | 
        (16) LOL     | |||
| 20
    
        Икогнито 02.09.11✎ 20:22 | 
        (15) запрос будет проверять оба условия.     | |||
| 21
    
        Икогнито 02.09.11✎ 20:24 | 
        Как это умное слово называется, когда в случае, если результат первой половины условия = Истина Тогда вторая часть после ИЛИ  не проверяется?     | |||
| 22
    
        shuhard 02.09.11✎ 20:27 | 
        (21) бланкированный     | |||
| 23
    
        Икогнито 02.09.11✎ 20:28 | 
        (22) сам  такой     | |||
| 24
    
        only82 02.09.11✎ 20:30 | 
        Вариант (10) подходит только для текста модуля, а я хочу через схему компоновки данных     | |||
| 25
    
        shuhard 02.09.11✎ 20:32 | 
        (24)  пипец
  в {} окайми в ГДЕ | |||
| 26
    
        Икогнито 02.09.11✎ 20:32 | 
        (22) глупый, это называется "сокращенное вычисление логических выражений".
  Митичкин так написал. | |||
| 27
    
        only82 02.09.11✎ 20:33 | 
        (25) а пример?     | |||
| 28
    
        Икогнито 02.09.11✎ 20:33 | 
        (24) бугагашечки, а текст запроса из кода макету компоновки данных установить слабо?     | |||
| 29
    
        only82 02.09.11✎ 20:34 | 
        (28) я так еще не умею     | |||
| 30
    
        shuhard 02.09.11✎ 20:34 | 
        (27) примеры в поиске по мисте     | |||
| 31
    
        Lenka_Boo 02.09.11✎ 20:35 | 
        Null ?     | |||
| 32
    
        only82 02.09.11✎ 20:36 | 
        (31) у меня значение параметра не Null, а Справочники.Справочник1.ПустаяСсылка     | |||
| 33
    
        Alexandr Puzakov 02.09.11✎ 20:36 | 
        Если ЗначениеЗаполнено(Переменная) Тогда
  Запрос.УстановитьПараметр("Параметр", Переменная); Иначе СтрЗаменить(ТекстЗапроса, "Поле1 = &Параметр", ""); А в СКД просто фигач в фигурные скобки {Поле1 = &Параметр} | |||
| 34
    
        only82 02.09.11✎ 20:37 | 
        (33) Спс     | |||
| 35
    
        END 02.09.11✎ 20:38 | 
        Поправка к (8)
  ВЫБОР КОГДА &Параметр1 = ЗНАЧЕНИЕ(Справочник.ТвойСправочник.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ Поле1=&Параметр1 КОНЕЦ | |||
| 36
    
        shuhard 02.09.11✎ 20:39 | 
        (35) в СКД это не нужно     | |||
| 37
    
        Alexandr Puzakov 02.09.11✎ 20:40 | 
        Вернее, если передаешь в параметр виртуальной таблицы, то
  {Поле1 = &Параметр} Если же это простое условие отбора, то {ГДЕ Поле1 = &Параметр} | |||
| 38
    
        only82 02.09.11✎ 20:40 | 
        (35) так тоже взлетит, но {} мне нравится больше     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |