|
в запросе Если не выбрал значение то по всем
| ☑ |
0
SH_tan
27.08.14
✎
13:50
|
Добрый день. Есть контрагент в нем реквизит менеджер
Как в запросе сделать чтобы когда Менеджера не выбрал в условии тогда по всем формировал.
|
|
1
Господин ПЖ
27.08.14
✎
13:51
|
в поиске все есть
|
|
2
MaXpaT
27.08.14
✎
13:52
|
(0) о господи ...
ГДЕ &Менеджер = &ПустойМенеджер или Контрагент.Менеджер = &Менеджер
Запрос.УстановитьПараметр("Менеджер",МойМенеджер);
Запрос.УстановитьПараметр("ПустойМенеджер",Справочники.Пользователи.ПустаяСсылка());
|
|
3
skunk
27.08.14
✎
13:52
|
ВЫБОР
КОГДА &ссНоменклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
ТОГДА ИСТИНА
ИНАЧЕ Номенклатура.Ссылка В (&ссНоменклатура)
КОНЕЦ
|
|
4
Wobland
27.08.14
✎
13:57
|
ГДЕ ВЫБОР КОГДА Менеджер=&НеВыбрал ТОГДА ИСТИНА КОНЕЦ
|
|
5
ChiginAV
27.08.14
✎
14:29
|
если менеджер = пустая ссылка тогда
Запрос.Текст = СтрЗАменить(Запрос.Текст, "ТекстУсловияНаМенеджераВЗапросе", "")
|
|
6
МихаилМ
27.08.14
✎
17:57
|
в (3) неправильно, т.к. оптимизатор запроса не будет сохранять план такого запроса и каждый раз будет строить новый.
лучше как в (5) - генерировать несколько текстов запросов
либо если очень хочется универсальности , то
перейти от конструкции
менеджер = &Менеджер
к
(Менеджер >= & mivМенеджер) И (Менеджер < & maxМенеджер).
И для заполненного значения ссылка Менеджер = mivМенеджер
maxМенеджер = mivМенеджер+1;
А для незаполненого mivМенеджер = УникальныйИдентификатор("00000....0000")
maxМенеджер = УникальныйИдентификатор("FFFF....FFFF")
но случае применения доп условий отимизатор может выбрать не тот индекс.
такая технология подходит дискретных значений.
|
|
Независимо от того, куда вы едете — это в гору и против ветра!