Хочу получить отчет по продажам с отдельными полями Продажи и Возвраты.

Вот запрос, который работает, но продажи и возвраты вместе:

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

Вот код, который должен делать Продажи и Возвраты отдельно, но отчет зависает.

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

По итогу пишет о недостатке памяти.
Подскажите, что не так?
---
соединение крутое, конечно.

```1c
    Выбрать
    блабла
    Выбор когда Регистратор Ссылка Документ.Возврат Тогда Сумма Иначе 0 конец КАК Возвращено,
    Выбор Когда Регистратор Ссылка Документ.Отгрузка Тогда Сумма Иначе 0 Конец КАК Отгружено
    Из Регистр
    Где
    блабла
```
---
Может что нибудь типа

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Кол,
    ПродажиОбороты.Сумма КАК СуммаПродажи,
    ПродажиОбороты.Регистратор
    ИЗ
    РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
    ГДЕ
    (ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    )
    И ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
    {ГДЕ
    (ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
    (ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
    ////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­///////
    ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Кол,
    ПродажиОбороты.Сумма КАК СуммаВозврата,
    ПродажиОбороты.Регистратор
    ИЗ
    РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
    ГДЕ
    (ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя))
    И ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
    {ГДЕ
    (ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
    (ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
```
---
Ошибка в запросе набора данных
по причине:
{(18, 1)}: Синтаксическая ошибка "ВЫБРАТЬ"
<<?>>ВЫБРАТЬ
---
УТ нет под рукой, копипастил без конструктора, но мысль должна быть понятна.
Перед слешами поставьте точку с запятой ;
---
В принципе, отлично!

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Регистратор,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ КАК КоличествоПродажи,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ КАК СуммаПродажи,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ КАК КоличествоВозврата,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ КАК СуммаВозврата
    ИЗ
    РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
    ГДЕ
    ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
    {ГДЕ
    (ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
    (ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
```

Но добавил вычисляемое поле ПроцентВозврата = 100*(КоличествоВозврата / КоличествоПродажи) и получил странный результат (в файле)
---
соединение крутое, конечно.

```1c
    Выбрать
    блабла
    Выбор когда Регистратор Ссылка Документ.Возврат Тогда Сумма Иначе 0 конец КАК Возвращено,
    Выбор Когда Регистратор Ссылка Документ.Отгрузка Тогда Сумма Иначе 0 Конец КАК Отгружено
    Из Регистр
    Где
    блабла
```
---
Рабочий отчет
---
Продажи обороты есть регистр, зачем по дате регистратора условие, виртуальная таблица вам просто так дана? )
---
мне нужен регистратор для условия ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)