Добрый день. Подскажите пожалуйста, как можно реализация следующий функционал (саму логику): Мне нужно запросом получить количество документов реализации и возврата по позиции так, чтобы они шли друг за другом. То есть идёт документ РЕАЛИЗАЦИИ, за ним документ ВОЗВРАТА. Если же идёт документ РЕАЛИЗАЦИИ, за ним опять документ РЕАЛИЗАЦИИ, то это ошибочная ситуация.
---
В общем нужно было мне получить три последние документа реализации, у которых был возврат. За возврат расписывать не буду, а вот как получал три последние документа реализации по номенклатуре напишу:

```1c
    ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ НоменклатураВозвратов
    ИЗ
    РегистрНакопления.Продажи КАК Продажи
    ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
    И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) = &ДатаВозврата

    СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Продажи.Период КАК ДатаРеализации,
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Регистратор КАК Реализация
    ПОМЕСТИТЬ РеализацииНоменклатуыВозвратов
    ИЗ
    НоменклатураВозвратов КАК НоменклатураВозвратов
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
    ПО НоменклатураВозвратов.Номенклатура = Продажи.Номенклатура
    ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) <= &ДатаВозврата

    СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.Период,
    Продажи.Регистратор
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ ПервоеСостояние
    ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов

    СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ ВтороеСостояние
    ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
    ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
    И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
    ГДЕ
    ПервоеСостояние.Номенклатура ЕСТЬ NULL

    СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ ТретьеСостояние
    ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
    ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
    И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
    ЛЕВОЕ СОЕДИНЕНИЕ ВтороеСостояние КАК ВтороеСостояние
    ПО РеализацииНоменклатуыВозвратов.Номенклатура = ВтороеСостояние.Номенклатура
    И РеализацииНоменклатуыВозвратов.ДатаРеализации = ВтороеСостояние.ДатаРеализации
    ГДЕ
    ВтороеСостояние.Номенклатура ЕСТЬ NULL
    И ПервоеСостояние.Номенклатура ЕСТЬ NULL

    СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПервоеСостояние.Номенклатура КАК Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация КАК Реализация
    ИЗ
    ПервоеСостояние КАК ПервоеСостояние
    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ПО ПервоеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
    И ПервоеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВтороеСостояние.Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация
    ИЗ
    ВтороеСостояние КАК ВтороеСостояние
    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ПО ВтороеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
    И ВтороеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ТретьеСостояние.Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация
    ИЗ
    ТретьеСостояние КАК ТретьеСостояние
    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ПО ТретьеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
    И ТретьеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

    УПОРЯДОЧИТЬ ПО
    Реализация УБЫВ,
    Номенклатура
    ИТОГИ
    КОЛИЧЕСТВО(Реализация)
    ПО
    Номенклатура
    АВТОУПОРЯДОЧИВАНИЕ
```
---
То есть идёт документ РЕАЛИЗАЦИИ, за ним документ ВОЗВРАТА. Если же идёт документ РЕАЛИЗАЦИИ, за ним опять документ РЕАЛИЗАЦИИ, то это ошибочная ситуация.
Возврат создан на основании реализации?
---
Нужно определить количество последних реализаций (например & = 3). Затем узнать были ли возвраты за дату (& = дата) и в таком же количестве как и реализации (& = 3). То есть, чтобы шли реализация - возврат, реализация - возврат, реализация - возврат. И не было между ними просто реализации без возврата.
(3) Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы.
---
конфигурация какая?
(если у кого есть (и кому не лень) - можно сразу дать текст запроса.
---
В общем нужно было мне получить три последние документа реализации, у которых был возврат. За возврат расписывать не буду, а вот как получал три последние документа реализации по номенклатуре напишу:

```1c
    ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ НоменклатураВозвратов
    ИЗ
    РегистрНакопления.Продажи КАК Продажи
    ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
    И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) = &ДатаВозврата

    СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Продажи.Период КАК ДатаРеализации,
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Регистратор КАК Реализация
    ПОМЕСТИТЬ РеализацииНоменклатуыВозвратов
    ИЗ
    НоменклатураВозвратов КАК НоменклатураВозвратов
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
    ПО НоменклатураВозвратов.Номенклатура = Продажи.Номенклатура
    ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) <= &ДатаВозврата

    СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.Период,
    Продажи.Регистратор
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ ПервоеСостояние
    ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов

    СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ ВтороеСостояние
    ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
    ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
    И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
    ГДЕ
    ПервоеСостояние.Номенклатура ЕСТЬ NULL

    СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
    РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ ТретьеСостояние
    ИЗ
    РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
    ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
    И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
    ЛЕВОЕ СОЕДИНЕНИЕ ВтороеСостояние КАК ВтороеСостояние
    ПО РеализацииНоменклатуыВозвратов.Номенклатура = ВтороеСостояние.Номенклатура
    И РеализацииНоменклатуыВозвратов.ДатаРеализации = ВтороеСостояние.ДатаРеализации
    ГДЕ
    ВтороеСостояние.Номенклатура ЕСТЬ NULL
    И ПервоеСостояние.Номенклатура ЕСТЬ NULL

    СГРУППИРОВАТЬ ПО
    РеализацииНоменклатуыВозвратов.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПервоеСостояние.Номенклатура КАК Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация КАК Реализация
    ИЗ
    ПервоеСостояние КАК ПервоеСостояние
    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ПО ПервоеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
    И ПервоеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВтороеСостояние.Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация
    ИЗ
    ВтороеСостояние КАК ВтороеСостояние
    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ПО ВтороеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
    И ВтороеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ТретьеСостояние.Номенклатура,
    РеализацииНоменклатуыВозвратов.Реализация
    ИЗ
    ТретьеСостояние КАК ТретьеСостояние
    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
    ПО ТретьеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
    И ТретьеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации

    УПОРЯДОЧИТЬ ПО
    Реализация УБЫВ,
    Номенклатура
    ИТОГИ
    КОЛИЧЕСТВО(Реализация)
    ПО
    Номенклатура
    АВТОУПОРЯДОЧИВАНИЕ
```