Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Исключить в первом запросе данные из второго запроса

Исключить в первом запросе данные из второго запроса
Я
   dark70
 
02.06.21 - 18:15
Надо вытащить Контрагентов у которых расторгнуты договора. Т.е. дата окончания договора может быть 31.06.21, а дата расторжения 10.06.21
В таком случае если выбрана НачДата = 02.06.21, то в выборке этот Контрагент должен быть.

Запрос = Новый Запрос;
    Расторгнутые = Новый МенеджерВременныхТаблиц;
    Запрос.МенеджерВременныхТаблиц = Расторгнутые;
    
    Запрос.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    АР_СтатусыОбъектовАрендыСрезПоследних.Договор КАК Договор
        |ПОМЕСТИТЬ Расторгнутые
        |ИЗ
        |    РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних(
        |            ,
        |            Услуга В (&МассивУслуг)
        |                И ДатаОкончанияАренды < &НачДата
        |                И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних
        |ГДЕ
        |    ВЫБОР
        |            КОГДА &КоличествоВМассиве = 0
        |                ТОГДА ИСТИНА
        |            ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец В (&МассивКонтрагентов)
        |        КОНЕЦ
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец КАК Контрагент
        |ИЗ
        |    РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних(
        |            ,
        |            Услуга В (&МассивУслуг)
        |                И ДатаОкончанияАренды >= &НачДата
        |                И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних,
        |    Расторгнутые КАК Расторгнутые
        |ГДЕ
        |    ВЫБОР
        |            КОГДА &КоличествоВМассиве = 0
        |                ТОГДА ИСТИНА
        |            ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец В (&МассивКонтрагентов)
        |        КОНЕЦ
        |    И НЕ АР_СтатусыОбъектовАрендыСрезПоследних.Договор В
        |                (ВЫБРАТЬ
        |                    Расторгнутые.Договор
        |                ИЗ
        |                    Расторгнутые)";

У меня же в выборке пусто.
Хотя если по отдельности к консоли, то все правильно.
 
 Партнерская программа EFSOL Oblako
   mikecool
 
1 - 02.06.21 - 18:26
левое соединение
...
Где справа есть нулл
   dark70
 
2 - 02.06.21 - 18:46
АР_СтатусыОбъектовАрендыСрезПоследних_1 - сюда должны попадать все договора у которых ДатаОкончанияАренды >= &НачДата
АР_СтатусыОбъектовАрендыСрезПоследних_2 - сюда должны попадать все договора у которых ДатаОкончанияАренды <= &НачДата
А уже в результат запроса должны попасть договора которые есть в СрезПоследних_1, но их нету в СрезПоследних_2

Может не правильно понял ?

ВЫБРАТЬ РАЗЛИЧНЫЕ
    АР_СтатусыОбъектовАрендыСрезПоследних_1.Договор.Владелец КАК Контрагент
ИЗ
    РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних(
            ,
            Услуга В (&МассивУслуг)
                И ДатаОкончанияАренды >= &НачДата
                И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних_1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних(
                ,
                Услуга В (&МассивУслуг)
                    И ДатаОкончанияАренды < &НачДата
                    И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних_2
        ПО (АР_СтатусыОбъектовАрендыСрезПоследних_2.Договор ЕСТЬ NULL)
ГДЕ
    ВЫБОР
            КОГДА &КоличествоВМассиве = 0
                ТОГДА ИСТИНА
            ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_1.Договор.Владелец В (&МассивКонтрагентов)
        КОНЕЦ
    И ВЫБОР
            КОГДА &КоличествоВМассиве = 0
                ТОГДА ИСТИНА
            ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_2.Договор.Владелец В (&МассивКонтрагентов)
        КОНЕЦ


Но нифига не работает :(
   dark70
 
3 - 02.06.21 - 19:52
Все, получилось. Спасибо.
Пришлось перенести условие из
ГДЕ
    ВЫБОР
            КОГДА &КоличествоВМассиве = 0
                ТОГДА ИСТИНА
            ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_1.Договор.Владелец В (&МассивКонтрагентов)
        КОНЕЦ
    И ВЫБОР
            КОГДА &КоличествоВМассиве = 0
                ТОГДА ИСТИНА
            ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_2.Договор.Владелец В (&МассивКонтрагентов)
        КОНЕЦ

в
РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних(
        |            ,
        |            Услуга В (&МассивУслуг)
        |                И ДатаОкончанияАренды >= &НачДата
        |                И Статус = &ВАренде
        |                И ВЫБОР
        |                    КОГДА &КоличествоВМассиве = 0
        |                        ТОГДА ИСТИНА
        |                    ИНАЧЕ Договор.Владелец В (&МассивКонтрагентов)
        |                КОНЕЦ)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.