Имя: Пароль:
1C
1С v8
Запрос: общее условие для ОБЪЕДИНИТЬ
0 Adgjj
 
24.12.11
16:33
|";
Здравствуйте! Скажите, пжл, если запрос состоит из нескольких частей с ОБЪЕДИНИТЬ, неужели в ГДЕ каждый раз обязательно надо писать условие. Нельзя ли 1 раз для всего запроса сразу?
|ГДЕ
   |    ВыработкаТС_ЛЕС.ДатаВыезда >= &НачМес
   |    И ВыработкаТС_ЛЕС.ДатаВозвращения <= &КонМес
//Если выбрана Организация
   Если НЕ (ЭлементыФормы.Организация.Значение = "") И НЕ (Организация = Справочники.Организации.ПустаяСсылка())Тогда
       Запрос.Текст = Запрос.Текст +
       "
       |        И ВыработкаТС_ЛЕС.Организация = &Организация    
       |";
   КонецЕсли;
   Запрос.Текст = Запрос.Текст +
   "
   |    И ВыработкаТС
1 Господин ПЖ
 
24.12.11
16:34
>Нельзя ли 1 раз для всего запроса сразу?

я добрый, разрешаю...
2 Aleksey
 
24.12.11
16:42
выбрать
* из
(запрос 1
объединить
запрос 2)
где условие
3 Господин ПЖ
 
24.12.11
16:44
Если НЕ (ЭлементыФормы.Организация.Значение = "") И НЕ (Организация = Справочники.Организации.ПустаяСсылка()

за такие штуки принято фигачить по пальцам...
4 Adgjj
 
24.12.11
17:16
(2) спасибо
(1) спасибо
Если Организация <> Справочники.Организации.ПустаяСсылка()
5 kosts
 
24.12.11
18:09
(4)

Если Организация.Пустая() Тогда
6 kosts
 
24.12.11
18:21
И вообще такие запросы (разорванные) трудно делать и отлаживать
Я предпочитаю делать так

|ГДЕ
|    ВыработкаТС_ЛЕС.ДатаВыезда >= &НачМес
|    И ВыработкаТС_ЛЕС.ДатаВозвращения <= &КонМес
|   и (
|&Организация  = Значение(Справочники.Организации.Пустая) или
|ВыработкаТС_ЛЕС.Организация = &Организация)
|    И ВыработкаТС
7 rs_trade
 
24.12.11
23:49
(2) мягко говоря, не очень хороший вариант запроса.
8 kosts
 
25.12.11
09:32
+ к (6) или последующей заменой

|ГДЕ
|    ВыработкаТС_ЛЕС.ДатаВыезда >= &НачМес
|    И ВыработкаТС_ЛЕС.ДатаВозвращения <= &КонМес
|   и (
|%Допусловие1% )
|    И ВыработкаТС

Если что-то Тогда
   ТекстЗапроса = заменить(ТекстЗапроса, %Допусловие1%, "Истина");
Иначе
   ТекстЗапроса = заменить(ТекстЗапроса, %Допусловие1%, "ВыработкаТС_ЛЕС.Организация = &Организация");
КонецЕсли;
9 kosts
 
25.12.11
11:18
Лажанул.
Вместо %Допусловие1% надо &Допусловие1
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший