![]() |
|
Запрос: Конструкция ВЫБОР в условии ГДЕ | ☑ | ||
---|---|---|---|---|
0
slafor
23.03.23
✎
10:01
|
Есть запрос. Приблизительно такой:
ВЫБРАТЬ ЗаказПокупателя.Номер, ЗаказПокупателя.Дата, ЗаказПокупателя.Контрагент, <...> Из Документ.ЗаказПокупателя ГДЕ ВЫБОР КОГДА &ВыводитьВсе ТОГДА ИСТИНА КОГДА &ВыводитьПоСотруднику ТОГДА Сотрудник = &Сотрудник КОГДА &ВыводитьПоПользователю ТОГДА Пользователь = &Пользователь ИНАЧЕ Ответственный = ЛОЖЬ (т.е. ничего не выводить) КОНЕЦ И тут у меня возникает такое ощущение, что если ИСТИНА будет и в &ВыводитьВсе, и в &ВыводитьПоСотруднику, и в &ВыводитьПоПользователю, то все эти условия будут выполняться (ну кроме ИНАЧЕ, естественно). Я не прав? |
|||
1
Garykom
гуру
22.03.23
✎
23:03
|
(0) эээ
|
|||
2
Garykom
гуру
22.03.23
✎
23:04
|
это не так делается
|
|||
3
НафНаф
22.03.23
✎
23:19
|
(0) слишком много параметров. Вообще для этого отборы есть. Но если хочется параметрами, то надо делать отдельные условия.
|
|||
5
magicSan
23.03.23
✎
04:54
|
пиоверяй на пустое значение
|
|||
6
Конструктор1С
23.03.23
✎
05:17
|
(0) плохое решение, очень плохое
|
|||
7
Chameleon1980
23.03.23
✎
08:33
|
первое успешное (истина) выполнится - остальные нах
|
|||
8
Fish
гуру
23.03.23
✎
08:56
|
(0) Ты не прав.
|
|||
9
lEvGl
гуру
23.03.23
✎
09:58
|
это как Если, какое первое истина, то и отработает, остальное нет
|
|||
10
Eiffil123
23.03.23
✎
14:12
|
(0) прав. но это можно проверить на форме отчета, чтобы пользователь не наставил неправильных комбинаций флажков
|
|||
11
slafor
23.03.23
✎
15:57
|
(6) Кто же спорит? ) Это всего лишь попытка быстро переписать решение из оригинала, чтобы можно было понять основную суть.
А в реальности там идет сравнение типа КОГДА &ВыводитьПоГруппеСотрудников1 ТОГДА Сотрудник в(&СписокСотрудников1) КОГДА &ВыводитьПоГруппеСотрудников2 ТОГДА Сотрудник в(&СписокСотрудников2) , и т.д. Т.е. в самих условиях все правильно, тут просто где-то прочитал, что конструкции в запросе "ВЫБОР КОГДА КОГДА ИНАЧЕ" не то же самое, что конструкции в коде "ЕСЛИ ИНАЧЕЕСЛИ ИНАЧЕ", вот и спросил. |
|||
12
НафНаф
23.03.23
✎
16:03
|
(11) все равно это бред
|
|||
13
Галахад
гуру
23.03.23
✎
16:06
|
(11) Условия проверяются по порядку, если какое-то сработало далее условия не проверяются.
|
|||
14
slafor
23.03.23
✎
16:19
|
(12) Почему бред?
(3) Отборы нужны, если понятно, какой отбор нам нужен. А тут мы в поисках. В любом случае, можно сделать несколько отдельных запросов по разным условиям, а потом в событии ПриСозданииНаСервере подменять запрос тем, который нам нужен. Да, я просто забыл уточнить, что это запрос динамического списка. А там конструкцию ВЫБОР в условии ГДЕ использовать не рекомендуется. |
|||
15
slafor
23.03.23
✎
16:21
|
(13)(9) Спасибо, вот именно это я и хотел уточнить.
|
|||
16
azernot
23.03.23
✎
16:23
|
(14) В динамическом списке лучше установить отбор штатными методами, а не мудрить с запросом
|
|||
17
azernot
23.03.23
✎
16:30
|
Например, в БСП есть процедура
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка |
|||
18
magicSan
23.03.23
✎
16:48
|
(17)это очень тупой метод он в рабочих местах самое слабое место дико тормозит
|
|||
19
azernot
23.03.23
✎
18:55
|
(18) Даже и не знаю, что сказать? Может не в бобине дело?
|
|||
20
magicSan
23.03.23
✎
18:58
|
(19) Ну открой типовую и глянь - ох или не надо делать более одного отбор??? там ведь в цикле вначале один затем второй
|
|||
21
azernot
23.03.23
✎
19:06
|
(20) Вы к тому, что указанный метод сначала рекурсивно ищет, а не установлен ли уже ранее отбор по этому полю и только потом меняет или добавляет его? А по мне - так правильно делает.
Но, если вы уверены, что такого отбора нет, можете сразу использовать ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки или, если вам этот элемент отбора уже известен используйте ОбщегоНазначенияКлиентСервер.ИзменитьЭлементыОтбора В общем, всё в ваших руках :) |
|||
22
Волшебник
23.03.23
✎
19:54
|
О, пошла битва магов!
|
|||
23
Garykom
гуру
23.03.23
✎
20:50
|
кто подскажет отборы в СКД на каком уровне работают?
|
|||
24
eddy_n
23.03.23
✎
21:46
|
(23) Про уровни группировок спрашиваешь?
|
|||
25
Garykom
гуру
23.03.23
✎
21:55
|
(24) Про все
Если в отборе пользователь нахреначил сложных условий с группами и через "." объектов-ссылок Где и как реально это исполняется? Сервер 1С сам крутит или все же запросы дополняет к СУБД? |
|||
26
magicSan
23.03.23
✎
21:55
|
(23) в субд прилетает условие
|
|||
27
magicSan
23.03.23
✎
21:57
|
(21) Я к тому что в типовом рм при настройке списка благодаря этому любой отбор работает пол минуты на пустом месте
|
|||
28
Garykom
гуру
23.03.23
✎
22:00
|
(26) я столкнулся с тем что если в отборе добавлять условия через точку
например Объект.Организция = Значение где объект это Измерение РС то пипец тормозит а если это же сделать в исходных запросах (в ИсточникДанных1) то нет |
|||
29
rudnitskij
23.03.23
✎
22:49
|
(0) "ИНАЧЕ Ответственный = ЛОЖЬ (т.е. ничего не выводить)
КОНЕЦ" -------------------- Ответственный тут при чем? если не надо ничего выводить - просто "... ИНАЧЕ ЛОЖЬ КОНЕЦ" |
|||
30
rudnitskij
23.03.23
✎
22:50
|
(28) Особенно если измерение составных типов, да?
|
|||
31
Garykom
гуру
23.03.23
✎
23:01
|
(30) угадал ))
|
|||
32
rudnitskij
23.03.23
✎
23:06
|
(31) юзайте ВЫРАЗИТЬ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |