Имя: Пароль:
1C
1С v8
"Вложенное" условие в запросе
0 lEvGl
 
гуру
12.03.13
14:37
Доброго здоровья всем
Такой вопрос про запрос:
Выбрать
Документ.Ссылка,
Документ.Дата,
...
Где
Документ.Проведен = ИСТИНА
   И Документ.Статус <> ЗНАЧЕНИЕ(Перечисление.Статусы.Выполнена)
   И (Документ.Подразделение = &Подразделение
           ИЛИ Документ.ПодразделениеЗаказчик = &ПодразделениеЗаказчик)

тут хочется исключить из результата те документы, у которых статус = "отклонен" и РазницаДат(Документ.Дата, &ТекущаяДата, День) > 7.
То есть исключить по дате, но только те у которых конкретный статус.

В объектной модели:
Если ТекущаяДата() - Документ.Дата > 604800(Неделя) И Документ.Статус = Перечисления.Статусы.Отклонен Тогда
Результат.Исключить();
КонецЕсли;

Как в запросе так сделать?
1 ilkoder
 
12.03.13
14:38
Собрать из нескольких временных таблиц
2 Maxus43
 
12.03.13
14:39
Выбор Когда Тогда Иначе Конец
3 Wobland
 
12.03.13
14:39
И НЕ Статус ИЛИ (РазностьДат() И Статус)
4 Defender aka LINN
 
12.03.13
14:40
НЕ (статус = "отклонен" и РазностьДат(Документ.Дата, &ТекущаяДата, День) > 7), не?
5 sapphire
 
12.03.13
14:41
РазницаДат(Документ.Дата, &ТекущаяДата, День) > 7

Равносильно Документ.Дата<=&НеделюНазад
6 sapphire
 
12.03.13
14:43
Где
Документ.Проведен = ИСТИНА
   И Документ.Статус <> &СтатусыВыполнена
   И (Документ.Подразделение = &Подразделение
           ИЛИ Документ.ПодразделениеЗаказчик = &ПодразделениеЗаказчик)
И НЕ(Документ.Статус = &СтатусыОтклонен И Документ.Дата<=&НеделюНазад)
7 lEvGl
 
гуру
12.03.13
15:02
всем спасибо за ответы
(1) - муторно, условие то не сложное вроде
(2) - не пойдет
(3) - тогда ни одна с вылавливаемым статусом не попадет
(4)(5)(6) - спасибо, есть такое дело, условие то несложное, затроил что то
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой