Имя: Пароль:
1C
1С v8
Как лучше сделать запрос
0 arhiordinator
 
13.12.13
15:50
Добрый день! Есть запрос.
В запросе 1С 8.2 Есть такой участок когда

|ГДЕ
|          ВЫБОР
|               КОГДА &МассивРегионов ЕСТЬ NULL
|               ТОГДА ИСТИНА
|               ИНАЧЕ
           МотивацияЗПСрезПоследних.Регион В (&МассивРегионов)
|                          КОНЕЦ

    Запрос.УстановитьПараметр("МассивРегионов", ?(РегионТЗ.Количество() > 0,РегионТЗ,Null ));

Работает это так. Если в ТЗ "РегионТЗ" есть данные, всё выбирается. Если нет Получаем ИСТИНА в запросе и всё тоже выбирается, как сократить
ВЫБОР
|               КОГДА &МассивРегионов ЕСТЬ NULL
|               ТОГДА ИСТИНА
|               ИНАЧЕ
           МотивацияЗПСрезПоследних.Регион В (&МассивРегионов)
|                          КОНЕЦ
вот эти строчки одной.
1 zak555
 
13.12.13
15:51
зачем в МассивРегионов нулл ?
2 GROOVY
 
13.12.13
15:52
ВЫБОР КОГДА &МассивРегионов ЕСТЬ NULL ТОГДА ИСТИНА ИНАЧЕ МотивацияЗПСрезПоследних.Регион В (&МассивРегионов) КОНЕЦ

Пойдет? ;)
3 zippygrill
 
13.12.13
15:52
ВЫБОР КОГДА &МассивРегионов ЕСТЬ NULL ТОГДА ИСТИНА ИНАЧЕ МотивацияЗПСрезПоследних.Регион В (&МассивРегионов) КОНЕЦ

Так?
4 Fragster
 
модератор
13.12.13
15:53
я бы таки посмотрел в сторону построителя запросов
5 arhiordinator
 
13.12.13
15:54
(1) Null для проверки в запросе. Если будет Null будем по всем выводить, или точнее условия не будет.
6 1Сергей
 
13.12.13
15:55
а разве

МотивацияЗПСрезПоследних.Регион В (&МассивРегионов)

не даст нужный эфект?
7 1Сергей
 
13.12.13
15:56
ну или так:

ГДЕ
    &МассивРегионов ЕСТЬ NULL ИЛИ МотивацияЗПСрезПоследних.Регион В (&МассивРегионов)
8 arhiordinator
 
13.12.13
15:56
(6) Нет, в случае если РегионТЗ будет Null, ничего не будет выводится
9 Fragster
 
модератор
13.12.13
15:58
почему никто не любит построитель?
10 Fragster
 
модератор
13.12.13
15:59
(2) проведи курс по построителю, а?
11 arhiordinator
 
13.12.13
16:01
(7)  1Сергей, ты крут, спасибо, оно самое.
12 GROOVY
 
13.12.13
16:12
(10) Темы (вопросы) накидай - сделаю.
13 zak555
 
24.12.13
17:50
(12) с вводной начни =)
14 Fragster
 
гуру
24.12.13
17:54
прочитал сабж, хотел написать про построитель. а оказывается, уже написал :)
15 selenat
 
24.12.13
17:55
раздвоение личности? :)))
16 badboychik
 
24.12.13
19:32
Вот одна строчка

ГДЕ &ПустойМассив ИЛИ МотивацияЗПСрезПоследних.Регион В (&МассивРегионов)

Если в коде передать в "ПустойМассив" значение ИСТИНА, тогда вторая часть вычисляться не будет и общее условие будет ИСТИНА

Запрос.УстановитьПараметр("ПустойМассив", Массив.Количество()=0 );
17 badboychik
 
24.12.13
19:36
(7) ну или так, да ))
18 Fragster
 
гуру
24.12.13
19:41
{ГДЕ МотивацияЗПСрезПоследних.Регион}