|
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 запрос и из скуля не будут выбираться лишние данные. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |