|
Запрос на Выборку данных с условием | ☑ | ||
---|---|---|---|---|
0
Zhenek1980
26.12.19
✎
10:31
|
есть запрос в котором есть условие:
ГДЕ | (Номенклатура.Тип = &ЗнТип | И Номенклатура.Сотрудник = &ЗнСотрудник | И Номенклатура.Отдел = &ЗнОтдел | И Номенклатура.Статус = &ЗнСтатус) ВОПРОС: как сделать так что если значение "&ЗнТип" не заданно, это значение исключалось из условия Пример: в форме есть 4 поля для ввода значений: ЗнТип, ЗнСотрудник, ЗнОтдел, ЗнСтатус Если пользователь заполняеть все 4 поля то запрос отрабатывает нормально, а вот если одно поле оставляет пустое то запрос не чего не возвращает. Необходимо сделать так что бы при незаполненном поле оно не учитывалось в запросе |
|||
1
Волшебник
модератор
26.12.19
✎
10:34
|
ГДЕ (&ЕстьОтборПоТипу И Номенклатура.Тип = &ЗнТип)
И (&ЕстьОтборПоСотруднику И Номенклатура.Сотрудник = &ЗнСотрудник) ... |
|||
2
Полька
26.12.19
✎
10:34
|
Если ЗначениеЗаполнено(ЗнТип) Тогда
ТекстЗапроса=ТекстЗапроса+" | И Номенклатура.Тип = &ЗнТип" КонецЕсли; |
|||
3
Автосервис
26.12.19
✎
10:36
|
Куча вариантов. Один из них "ВЫБОР КОГДА ... ТОГДА Истина ИНАЧЕ ... "
|
|||
4
shadow_sw
26.12.19
✎
10:36
|
(2) опередила
|
|||
5
ДенисЧ
26.12.19
✎
10:36
|
(&ЗнТип = Неопределено ИЛИ Номенклатура.Тип = &ЗнТип)
|
|||
6
piter3
26.12.19
✎
10:36
|
(3) лучше собрать текст запроса,в вашем варианте запутаться легко
|
|||
7
Автосервис
26.12.19
✎
10:37
|
(2) Не очень хороший вариант в плане дальнейшей отладки, т.к. в конструктор запросов потом не залезет
|
|||
8
Kigo_Kigo
26.12.19
✎
10:38
|
А что в восьмерке конструкция Номенклатура.Тип В &ЗнТип не работает уже?
|
|||
9
shadow_sw
26.12.19
✎
10:43
|
(7) что мешает динамически собрать отладкой запрос и проверить его в консоли?
|
|||
10
Автосервис
26.12.19
✎
10:47
|
(9) Неудобно. Так вы можете запихать его в консоль, но если найдете ошибку и подправите? Так легко подправленный запрос назад в код вы уже его не вернете
|
|||
11
AAA
26.12.19
✎
11:17
|
Я за вариант (2). Просто и понятно. Как правило, такое условие не одно, а много. Все собрано в одном месте, все читабельно.
|
|||
12
Михаил Козлов
26.12.19
✎
11:39
|
Если ОФ, то удобно использовать Построитель отчета.
|
|||
13
Дмитрий
26.12.19
✎
11:53
|
(7) пихать в текст запроса все отборы. потом проверки и стрзаменить(запрос.текст, ляляля, "")
|
|||
14
Полька
26.12.19
✎
12:13
|
(10) отладить на примере. потом разбить с учетом (2)
|
|||
15
Zhenek1980
26.12.19
✎
13:13
|
сделал так:
|ГДЕ | ВЫБОР | КОГДА &ЗнТипПусто = ЛОЖЬ | ТОГДА Номенклатура.Тип = &ЗнТип | ИНАЧЕ Номенклатура.Тип <> &ЗнТип | КОНЕЦ |
|||
16
D_E_S_131
26.12.19
✎
14:04
|
Вариант (2) вообще богомерзкий:
1. Не откроешь конструктор (как выше писали) 2. Анахронизм - есть уже объект "Конструктор текста запроса". |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |