|
|
|
Условия в запросах | ☑ | ||
|---|---|---|---|---|
|
0
shamannk
21.06.12
✎
15:23
|
Как реализовать такие условия в запросах: нужно в запросе отобрать данные в связи со значением параметра. Пример параметр (&пар) может принимать три значение 0, 1 и 2 а в запросе в условие "где" если &пар = 0 равно; если 1 то больше; если 2 то меньше.
если &пар = 0 то в где надо: ... ГДЕ табл.реквизит = 100 если &пар = 1 то в где надо: ... ГДЕ табл.реквизит > 100 если &пар = 2 то в где надо: ... ГДЕ табл.реквизит < 100 Всегда в таких случаях заменой менял текст запроса, но как можно без замены текста? |
|||
|
1
Avganec
21.06.12
✎
15:24
|
не понял сути проблемы, вы почти все написали сами
|
|||
|
2
andrewks
21.06.12
✎
15:25
|
выбор когда тогда конец
|
|||
|
3
shamannk
21.06.12
✎
15:26
|
(2) тогда будет куча ненужных строк
|
|||
|
4
Avganec
21.06.12
✎
15:29
|
(3) в любом случае, если это запихивать в запрос будут лишние строки. А так, можно сгруппировать условия грамотно на листочки и будет счастье.
|
|||
|
5
kosts
21.06.12
✎
15:29
|
ГДЕ (&пар = 0 и табл.реквизит = 100)
или (&пар = 1 и табл.реквизит > 100) или (&пар = 2 и табл.реквизит < 100) |
|||
|
6
Fragster
гуру
21.06.12
✎
15:31
|
сделай 3 текста запроса
|
|||
|
7
shamannk
21.06.12
✎
15:32
|
(5) Как бы подходит, а если &пар до 999 будет равен?
|
|||
|
8
andrewks
21.06.12
✎
15:33
|
а если бы у бабушки был хер, то она была бы дедушкой
|
|||
|
9
kosts
21.06.12
✎
15:33
|
(7) Еще &пар может быть "1234Вася"
|
|||
|
10
shamannk
21.06.12
✎
15:36
|
(9) Ну да. Не нравится то что нужно значения параметров за ранее указывать в запросе куда бы проще передать в параметр знак сравнения чтоли))
|
|||
|
11
unregistered
21.06.12
✎
15:37
|
(7) >> если &пар до 999 будет равен?
Тогда четче формулировать задачу надо. Что это за параметр, откуда он берется и т.п. |
|||
|
12
shamannk
21.06.12
✎
15:38
|
+(10) типа &зн равен > ...ГДЕ табл.реквизит &зс 100
|
|||
|
13
Ненавижу 1С
гуру
21.06.12
✎
15:38
|
(6) а если еще будут такие условия, комбинаторное возрастание числа вариантов?
лучше уж динамически собирать |
|||
|
14
Avganec
21.06.12
✎
15:38
|
(10) если вы ищете универсальный способ, то его нет. если решение текущей задачи, то оно есть. Также можете выполнять сравнение уже в передаче параметров.
|
|||
|
15
shamannk
21.06.12
✎
15:40
|
(14) Также можете выполнять сравнение уже в передаче параметров. Это как?
|
|||
|
16
katc
21.06.12
✎
15:41
|
Делай через выбор
Где Выбор Когда &пар = 0 Тогда табл.реквизит = 100 Когда &пар = 1 Тогда табл.реквизит > 100 Когда &пар = 2 Тогда табл.реквизит < 100 Rjytw |
|||
|
17
shamannk
21.06.12
✎
15:43
|
(16) к (3)
|
|||
|
18
shamannk
21.06.12
✎
15:43
|
(17) упс а так можно?
|
|||
|
20
shamannk
21.06.12
✎
15:46
|
(19) Гениально конечно. Но в сабже я от этого отказаться хочу
|
|||
|
21
Ненавижу 1С
гуру
21.06.12
✎
15:47
|
(19) такой текст не открыть конструктором, мне нравится так
Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | &ДИНАМИЧЕСКОЕУСЛОВИЕ"; |
|||
|
22
Avganec
21.06.12
✎
15:47
|
(15) в установке параметра ставить необходимое сравнение для получения логического результата
|
|||
|
23
shamannk
21.06.12
✎
15:48
|
(22) Не понял, пример можно?
|
|||
|
24
zinch
21.06.12
✎
15:48
|
(21) для каждой строки таблицы в запросе?
|
|||
|
25
cViper
21.06.12
✎
15:48
|
(0) KEY - VALUE
|
|||
|
26
Ненавижу 1С
гуру
21.06.12
✎
15:50
|
(20) зря, в (5) и (16) индексы скорее всего использоваться не будут
(24) с чего ты это решил? |
|||
|
27
cViper
21.06.12
✎
15:50
|
+(25) Затем меняй в запросе символ на VALUE.
|
|||
|
28
shamannk
21.06.12
✎
15:59
|
пока (5) оптимальный нууууу после (21)
|
|||
|
30
Avganec
21.06.12
✎
15:59
|
(23) Запрос.УстановитьПараметр("ПервыйПараметр", Пар = 100);
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |