Конфигурация Управление торговлей, редакция 11.2 (11.2.3.143)

Не могу сообразить как вычислить разность между двумя суммами (РеализацияТоваровУслугТовары - ПоступлениеБезналичныхДенежныхСредств)
Если выводить один из параметров (один остается закомментированным), то он выводит правильные значения, но когда составляем конструкцию Сумма(...)-Сумма(...) выводит ересь

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

    СГРУППИРОВАТЬ ПО
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление

    УПОРЯДОЧИТЬ ПО
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент
```

Отчет на СКД.
Вообще мне нужно написать запрос, который выведет дебеторскую задолженность за период по определенному складу (консигнационному). Вся загвоздка в том, что в одном документе реализации товары с нескольких складов.
P.S. По регистру накопления не получилось написать запрос
---
```1c
    ВЫБРАТЬ
    КонтрагентыКонтактнаяИнформация.Представление КАК Адрес,
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент,
    СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0)) КАК СуммаРеал,
    СУММА(ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0)) КАК СуммаПост,
    СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0)) КАК Разница
    ИЗ
    РегистрНакопления.РасчетыСКлиентамиПоДокументам.ОстаткиИОбороты(&ДатаН, &ДатаК, , , ) КАК РасчетыСКлиентамиПоДокументамОстаткиИОбороты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
    И (КонтрагентыКонтактнаяИнформация.Вид = &Вид)
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.РасчетныйДокумент = РеализацияТоваровУслугТовары.Ссылка
    И (РеализацияТоваровУслугТовары.Склад = &Склад)
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК ПоступлениеБезналичныхДенежныхСредств
    ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.РасчетныйДокумент = ПоступлениеБезналичныхДенежныхСредств.Ссылка
    И (ПоступлениеБезналичныхДенежныхСредств.ДокументОснование = НЕОПРЕДЕЛЕНО)

    СГРУППИРОВАТЬ ПО
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление

    УПОРЯДОЧИТЬ ПО
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент
```
---
что значит дебиторская задолженность за период? Дебиторка может быть на дату.
---
```1c
    ВЫБРАТЬ
    КонтрагентыКонтактнаяИнформация.Представление КАК Адрес,
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент,
    СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0)) КАК СуммаРеал,
    СУММА(ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0)) КАК СуммаПост,
    СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0)) КАК Разница
    ИЗ
    РегистрНакопления.РасчетыСКлиентамиПоДокументам.ОстаткиИОбороты(&ДатаН, &ДатаК, , , ) КАК РасчетыСКлиентамиПоДокументамОстаткиИОбороты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
    И (КонтрагентыКонтактнаяИнформация.Вид = &Вид)
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.РасчетныйДокумент = РеализацияТоваровУслугТовары.Ссылка
    И (РеализацияТоваровУслугТовары.Склад = &Склад)
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК ПоступлениеБезналичныхДенежныхСредств
    ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.РасчетныйДокумент = ПоступлениеБезналичныхДенежныхСредств.Ссылка
    И (ПоступлениеБезналичныхДенежныхСредств.ДокументОснование = НЕОПРЕДЕЛЕНО)

    СГРУППИРОВАТЬ ПО
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление

    УПОРЯДОЧИТЬ ПО
    РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент
```
---
1) про СКД забудь на время, она постоянно мешает всем писать нормальные запросы.
2) сделай две временные таблицы, в одной пусть считается одна сумма, в другой вторая. Потом третий запрос их соединяет и считает разность.
---
Я бы делал так:
1) Сделал временную таблицу с суммой по РегистрНакопления.РасчетыСКлиентамиПоДокументам.ОстаткиИОбороты. Проиндексировал её по ключевым полям.
2) Сделал вторую ВТ, где подобрал бы контактную информацию, при этом за исходную таблицу брал бы ВТ1 (это позволит ограничить размер используемых временных таблиц, если правильно отборы настроить). Опять же, проиндексировал.
3) Третья ВТ считает сумму по документам поступления, её тоже индексировать по документу.
4) Итоговый запрос берёт ВТ2 и к ней цепляет ВТ1 и ВТ3, получает сумму.

Будет работать в меру шустренько.
И в СКД потом просто вставить...
---
```1c
    СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма
    //СУММА(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента) КАК Сумма
```

У вас в запросе два одинаковых поля.

Сделайте так:

```1c
    СУММА(РеализацияТоваровУслугТовары.Сумма) КАК СуммаРеализация
    СУММА(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента) КАК СуммаПоступлениеБезнал
```
---
Мне нужно получить разность:

```1c
    СУММА(РеализацияТоваровУслугТовары.Сумма)-СУММА(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента) КАК Сумма
```

НО эта строчка выводит ересь
---
```1c
    Разность = СуммаРеализация - СуммаПоступлениеБезнал;
```

Повторюсь у вас в запросе два поля с одинаковым именем. Так быть не должно.
---
боюсь спросить причем тут вообще РасчетыСКлиентамиПоДокументам ... ?
---
Раз в СКД считаете, рассчитайте это поля в ВычисляемыхПолях. У вас тут вообще мешанина в запросе. Нельзя накладывать условие ГДЕ в запросе с соединениями на НЕ левую таблицу. Будет та самая ересь
---
А по простому можно выгрузить в ТЗ, добавить итоговую колонку Сумма, пройтись в цикле с записью разности в эту колонку. В запросе выбираем обе суммы и переименовываем, например КАК Сумма1, КАК Сумма2. В цикле стр.Сумма = стр.Сумма1 - стр.Сумма2.