Имя: Пароль:
1C
1C 7.7
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 запрос и из скуля не будут выбираться лишние данные.