|
Условия в запросе | ☑ | ||
---|---|---|---|---|
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) так тоже взлетит, но {} мне нравится больше
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |