Здравствуйте. Возник вопрос. Стоит такая задача: "Отбор по дате последней активности больше х дней, выводить те строки, в который дата последней активности меньше тек.дата - х дней". Надо сделать что бы отнималось от текущей даты определенное количество дней. И начала поиск. Это понятно как делать. Но надо еще что бы он сравнивал документы по контрагентам с тем периодам который тек.дата -х. Вообщем так.Например 04.10.2019 - 4 = 01.10.2019 = с 01.10.2019 по 04.10.2019(один период) и с 01.01.2001 по 01.10.2019(Второй период). Если есть контрагенты которые попали в первый период и они так же есть во втором периоде. То документы не выводятся. Но если в первом периоде нет, а во втором есть, то выводить. Можно ли это как то сделать в одном запросе? или придется разбивать на два?
Заранее спасибо)
---
ВЫБРАТЬ
 ПоступлениеТоваров.Контрагент КАК Контрагент
ПОМЕСТИТЬ ВТКотрагентыИсключить
ИЗ
 Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
ГДЕ
 ПоступлениеТоваров.Дата МЕЖДУ &Д1 И &Д2

ИНДЕКСИРОВАТЬ ПО
 Контрагент
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ПоступлениеТоваров.Ссылка
ИЗ
 Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
ГДЕ
 ПоступлениеТоваров.Дата МЕЖДУ &Д3 И &Д4
 И НЕ ПоступлениеТоваров.Контрагент В
    (ВЫБРАТЬ
     ВТКонтрагентыИсключить.Контрагент
    ИЗ
     ВТКонтрагентыИсключить)
---
ВЫБРАТЬ
 ПоступлениеТоваров.Контрагент КАК Контрагент
ПОМЕСТИТЬ ВТКотрагентыИсключить
ИЗ
 Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
ГДЕ
 ПоступлениеТоваров.Дата МЕЖДУ &Д1 И &Д2

ИНДЕКСИРОВАТЬ ПО
 Контрагент
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ПоступлениеТоваров.Ссылка
ИЗ
 Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
ГДЕ
 ПоступлениеТоваров.Дата МЕЖДУ &Д3 И &Д4
 И НЕ ПоступлениеТоваров.Контрагент В
    (ВЫБРАТЬ
     ВТКонтрагентыИсключить.Контрагент
    ИЗ
     ВТКонтрагентыИсключить)
---
Все получилось) спасибо) Но надо переделать на СКД. Можно так вообще сделать? Вот запрос:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеализацияТоваровУслуг.Контрагент КАК Контрагент
    |ПОМЕСТИТЬ ВТ_НеКонтрагент
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И РеализацияТоваровУслуг.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПокупателя.Контрагент
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И ЗаказПокупателя.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПоставщику.Контрагент
    |ИЗ
    | Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |ГДЕ
    | ЗаказПоставщику.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И ЗаказПоставщику.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ПоступлениеТоваровУслуг.Контрагент
    |ИЗ
    | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    | ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И ПоступлениеТоваровУслуг.Контрагент = &Контрагент
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Контрагент
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | РеализацияТоваровУслуг.Дата КАК Дата,
    | РеализацияТоваровУслуг.Контрагент КАК Контрагент,
    | РеализацияТоваровУслуг.Ответственный,
    | РеализацияТоваровУслуг.ВидДеятельности
    |ПОМЕСТИТЬ ВТ_Док
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПокупателя.Дата,
    | ЗаказПокупателя.Контрагент,
    | ЗаказПокупателя.Ответственный,
    | NULL
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПоставщику.Дата,
    | ЗаказПоставщику.Контрагент,
    | ЗаказПоставщику.Ответственный,
    | NULL
    |ИЗ
    | Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |ГДЕ
    | ЗаказПоставщику.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ПоступлениеТоваровУслуг.Дата,
    | ПоступлениеТоваровУслуг.Контрагент,
    | ПоступлениеТоваровУслуг.Ответственный,
    | NULL
    |ИЗ
    | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    | ПоступлениеТоваровУслуг.Контрагент = &Контрагент
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Контрагент
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Контрагенты.Ссылка КАК Контрагент
    |ПОМЕСТИТЬ ВТ_Контрагенты
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    | НЕ Контрагенты.ЭтоГруппа
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Контрагент
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_Контрагенты.Контрагент,
    | МАКСИМУМ(ВТ_Док.Дата) КАК Дата,
    | ВТ_Док.Ответственный,
    | ВТ_Док.ВидДеятельности
    |ИЗ
    | ВТ_Контрагенты КАК ВТ_Контрагенты
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Док КАК ВТ_Док
    | ПО ВТ_Контрагенты.Контрагент = ВТ_Док.Контрагент
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_НеКонтрагент КАК ВТ_НеКонтрагент
    | ПО ВТ_Контрагенты.Контрагент = ВТ_НеКонтрагент.Контрагент
    |ГДЕ
    | ВТ_Док.Контрагент = &Контрагент
    | И НЕ ВТ_Док.Контрагент В
    | (ВЫБРАТЬ
    | ВТ_НеКонтрагент.Контрагент
    | ИЗ
    | ВТ_НеКонтрагент)
    |
    |СГРУППИРОВАТЬ ПО
    | ВТ_Контрагенты.Контрагент,
    | ВТ_Док.Ответственный,
    | ВТ_Док.ВидДеятельности";
```

Как реализовать так же в СКД?
---
можно, я бы разбил на три пакета.
открывайте консоль и сделайте рабочую заготовку - пусть она даже будет выводить не то и не так,
но она должна работать. затем кидайте в тему полученный текст запроса.
тогда можно весть речь о поиске решения как надо.

пока этого нет, я могу поговорить на тему "Я художник - я так вижу"
---
Ну вот есть код который выводит последний документ по контрагенту
```1c
    ЗапросКонтрагент.Текст = "ВЫБРАТЬ
    | Контрагенты.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты";
    РезультатКонтрагент = ЗапросКонтрагент.Выполнить().Выбрать();
    Пока РезультатКонтрагент.Следующий() Цикл
    Контрагент1 = РезультатКонтрагент.Ссылка;

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеализацияТоваровУслуг.Дата КАК Дата,
    | РеализацияТоваровУслуг.Контрагент КАК Контрагент
    |ПОМЕСТИТЬ ВТ_Док
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПокупателя.Дата,
    | ЗаказПокупателя.Контрагент
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Контрагент = &Контрагент
    |
    | ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ЗаказПоставщику.Дата КАК Дата,
    | ЗаказПоставщику.Контрагент КАК Контрагент
    |ИЗ
    | Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |ГДЕ
    | ЗаказПоставщику.Контрагент = &Контрагент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ПоступлениеТоваровУслуг.Дата,
    | ПоступлениеТоваровУслуг.Контрагент
    |ИЗ
    | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    | ПоступлениеТоваровУслуг.Контрагент = &Контрагент
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Контрагент
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Контрагенты.Ссылка КАК Контрагент
    |ПОМЕСТИТЬ ВТ_Контрагенты
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    | НЕ Контрагенты.ЭтоГруппа
    |
    |ИНДЕКСИРОВАТЬ ПО
    | Контрагент
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_Контрагенты.Контрагент,
    | МАКСИМУМ(ВТ_Док.Дата) КАК Дата
    |ИЗ
    | ВТ_Контрагенты КАК ВТ_Контрагенты
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Док КАК ВТ_Док
    | ПО ВТ_Контрагенты.Контрагент = ВТ_Док.Контрагент
    |ГДЕ
    | ВТ_Док.Контрагент = &Контрагент
    |
    |СГРУППИРОВАТЬ ПО
    | ВТ_Контрагенты.Контрагент";

    Запрос.УстановитьПараметр("Контрагент", Контрагент1); //Справочники.Контрагенты.НайтиПоНаименованию("Дмитрий Яшин"));

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
```
---
как это код относиться к задаче в (1)

Сформулируйте задачу более четко в виде, условия задачи
1.
2.
3.
4.

В результате необходимо получить примерно такой результат как на скрине таблицы,
которую я накидал в эксел
.... ТУТ СКРИН....

Видите какой я молодец и вам все понятно, теперь помогите написать запрос без включения
телепатии
---
```1c
    |ВЫБРАТЬ
    | ВТ_Контрагенты.Контрагент КАК Контрагент,
    // | МАКСИМУМ(ВТ_Док.Дата) КАК Дата,
    | ВТ_Док2.Контрагент КАК Контрагент1,
    | ВЫБОР
    | КОГДА Контрагент <> Контрагент1 ТОГДА
    | МАКСИМУМ(ВТ_Док.Дата)
    | КОНЕЦ Как Дата
    |ИЗ
    | ВТ_Контрагенты КАК ВТ_Контрагенты
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Док КАК ВТ_Док
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Док2 КАК ВТ_Док2
    | ПО ВТ_Док.Контрагент = ВТ_Док2.Контрагент
    | ПО ВТ_Контрагенты.Контрагент = ВТ_Док.Контрагент
    | И (ВТ_Контрагенты.Контрагент = ВТ_Док2.Контрагент)
    |ГДЕ
    | ВТ_Док.Контрагент = &Контрагент
```

Вот вроде натворил) Но он ругается на "КОГДА Контрагент <> Контрагент1 Тогда" Пишет: Неоднозначное поле.
---
Все, порешал
---
используйте конструкцию "выбор когда"
---
вычисляете 2а поля - период раз и период два, в ГДЕ пишите условие на эти 2а вычисленных поля, мол, НЕ ПолеРаз > Y и НЕ ПолеДвас > Z