|
v7: Множественное условие в запросе |
☑ |
0
Gugolovski
04.07.17
✎
16:42
|
Есть условие запроса:
ТексктУсловия = "Условие (Номенклатура.ВидАлкоголя.Код < 500);";
Попробовал добавить еще одно доп условие, но не работает:
ТексктУсловия = "Условие ((Номенклатура.ВидАлкоголя.Код < 500) и (Номенклатура.ВидАлкоголя.Код <> 263));";
можно ли сделать чтобы подобная конструкция работала?
|
|
1
Vladal
04.07.17
✎
17:06
|
разбей на 2 строки. Между ними будет логическое И.
|Условие (Номенклатура.ВидАлкоголя.Код < 500);
|Условие (Номенклатура.ВидАлкоголя.Код <> 263);
А вообще, чтобы наверняка, открой конструктор запросов в семерке и нарисуй условия в нём.
|
|
2
AliAksA
04.07.17
✎
17:18
|
(0) числовой код - не всегда число))) , попробуй так:
ТексктУсловия = "Условие ((Число(Номенклатура.ВидАлкоголя.Код) < 500) и (Число(Номенклатура.ВидАлкоголя.Код) <> 263));";
|
|
3
gugolovski
05.07.17
✎
02:34
|
(2) Да так работает. Спасибо.
(1) Читаю "1С-Предприятие - программирование для всех" и параллельно пытаюсь в 1с что-нибудь оптимизировать. Пока до главы с запросами не дошел, потому плохо понимаю как верно писать их. Попробовал:
"Условие (Номенклатура.ВидАлкоголя.Код < 500);|Условие (Не(Номенклатура.ВидАлкоголя.Код = 263));";
выдает "Неизвестая ошибка '|'" при формировании.
|
|
4
youalex
05.07.17
✎
03:17
|
(3) "|" - это перенос строки, он должен быть в начале строки.
|
|
5
SleepyHead
гуру
05.07.17
✎
05:33
|
(3) после 263 две скобки, одна лишняя.
|
|
6
SleepyHead
гуру
05.07.17
✎
05:34
|
Упс нет )) все нормально.
|
|
7
пипец
05.07.17
✎
08:56
|
а список значений в условия уже не кошерно ?
|
|
8
1dvd
05.07.17
✎
08:59
|
(7) предлагаешь все 500 штук видов алкоголя руктями загнать в СЗ?
|
|
9
Ёпрст
гуру
05.07.17
✎
09:02
|
(0)
за такие условия в чорном запросе
Условие (Номенклатура.ВидАлкоголя.Код < 500)
нужно бить линейкой стальной по пальчикам, чтоб неповадно было.
|
|
10
trdm
05.07.17
✎
09:12
|
(0) > ТексктУсловия = "Условие (Номенклатура.ВидАлкоголя.Код < 500);";
Загоняй в переменную:
| Номенклатура_ВидАлкоголя_Код = Номенклатура.ВидАлкоголя.Код;
А потом спрашивай:
|Условие (Номенклатура_ВидАлкоголя_Код < 500);
|
|
11
HawkEye
05.07.17
✎
09:15
|
(8) их там чуть больше 100... пока еще )))
|
|
12
пипец
05.07.17
✎
09:20
|
(8) а что бы и нет, хотя можно и те же самые условия как в (0) только к СЗ ))) а то (9) прав )))
|
|
13
PiterPrg
05.07.17
✎
09:25
|
(3) С точки зрения оптимизации вариант (2) - не всегда хорошо.
В нем используются выражения 1с, он будет обрабатываться на клиенте (данные со скуля поместятся во вр. dbf таблицу и потом будут отфильтрованы). Вариант (1) или в (3) (если строку перенести) - есть шанс, что 1с его поставит в SQL запрос и из скуля не будут выбираться лишние данные.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший