Имя: Пароль:
1C
1С v8
Объединить два запроса в один
0 dva1c
 
13.10.11
08:51
Задача: получить последний проведенный документ по данному Узлу и данной Операции.
Были сделаны два запроса, т.к. в РС Периодичность ремонтов пишут два документа.
1-ый запрос:

ВЫБРАТЬ ПЕРВЫЕ 1
   ПериодичностьРемонтовСрезПоследних.Узел.Ссылка КАК РегУзел,
   ПериодичностьРемонтовСрезПоследних.ВидОперации.Ссылка КАК РегОперация,
   ПериодичностьРемонтовСрезПоследних.НаработаноЧасов,
   ПериодичностьРемонтовСрезПоследних.Регистратор.Ссылка,
   СпрУзлыОперации.Часов КАК Часов,
   СпрУзлыОперации.Дней
ИЗ
   РегистрСведений.ПериодичностьРемонтов.СрезПоследних(&ДатаОтчета, ) КАК ПериодичностьРемонтовСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Узлы.Операции КАК СпрУзлыОперации
       ПО ПериодичностьРемонтовСрезПоследних.Узел = СпрУзлыОперации.Ссылка
           И ПериодичностьРемонтовСрезПоследних.ВидОперации = СпрУзлыОперации.ВидОперации
ГДЕ
   ПериодичностьРемонтовСрезПоследних.Узел.Ссылка = &Узел
   И ПериодичностьРемонтовСрезПоследних.ВидОперации.Ссылка = &Операция
   И ПериодичностьРемонтовСрезПоследних.Регистратор.Проведен
   И ПериодичностьРемонтовСрезПоследних.Регистратор ССЫЛКА Документ.ТаймерОсновныхСредств
УПОРЯДОЧИТЬ ПО
   ПериодичностьРемонтовСрезПоследних.Регистратор.Дата УБЫВ

2-ой запрос:

ВЫБРАТЬ ПЕРВЫЕ 1
   ПериодичностьРемонтовСрезПоследних.Узел.Ссылка КАК РегУзел,
   ПериодичностьРемонтовСрезПоследних.ВидОперации.Ссылка КАК РегОперация,
   ПериодичностьРемонтовСрезПоследних.НаработаноЧасов,
   ПериодичностьРемонтовСрезПоследних.Регистратор.Ссылка,
   СпрУзлыОперации.Часов КАК Часов,
   СпрУзлыОперации.Дней
ИЗ
   РегистрСведений.ПериодичностьРемонтов.СрезПоследних(&ДатаОтчета, ) КАК ПериодичностьРемонтовСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Узлы.Операции КАК СпрУзлыОперации
       ПО ПериодичностьРемонтовСрезПоследних.Узел = СпрУзлыОперации.Ссылка
           И ПериодичностьРемонтовСрезПоследних.ВидОперации = СпрУзлыОперации.ВидОперации
ГДЕ
   ПериодичностьРемонтовСрезПоследних.Узел.Ссылка = &Узел
   И ПериодичностьРемонтовСрезПоследних.ВидОперации.Ссылка = &Операция
   И ПериодичностьРемонтовСрезПоследних.Регистратор.Проведен
   И ПериодичностьРемонтовСрезПоследних.Регистратор ССЫЛКА Документ.ТехОперации
УПОРЯДОЧИТЬ ПО
   ПериодичностьРемонтовСрезПоследних.Регистратор.Дата УБЫВ

Различие только в ГДЕ
1-ый:
И ПериодичностьРемонтовСрезПоследних.Регистратор ССЫЛКА Документ.ТаймерОсновныхСредств
2-ой:
И ПериодичностьРемонтовСрезПоследних.Регистратор ССЫЛКА Документ.ТехОперации

Подскажите, как из двух запросов сделать один?
Заранее спасибо!
1 ДенисЧ
 
13.10.11
08:53
ОБЪЕДИНИТЬ ВСЕ?
2 dva1c
 
13.10.11
08:54
+(0) получение по ГДЕ должно идти по двум видам документов
3 dva1c
 
13.10.11
08:55
(1) спасибо! почитаю на эту тему.
4 catena
 
13.10.11
08:55
А зачем их вообще два? Нельзя сделать условие ИЛИ?
5 НЕА123
 
13.10.11
08:57
(0)
одним запросом
...И (ПериодичностьРемонтовСрезПоследних.Регистратор ССЫЛКА Документ.ТаймерОсновныхСредств
ИЛИ
ПериодичностьРемонтовСрезПоследних.Регистратор ССЫЛКА Документ.ТехОперации)

?
6 dva1c
 
13.10.11
08:58
(4) спасибо! попробую.
(5) спасибо! отлажу в консоли )
7 dva1c
 
13.10.11
09:02
все работает. )
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший