Не могу правильно написать запрос

1. sanya.petrakov 15.03.17 06:16 Сейчас в теме
Конфигурация Управление торговлей, редакция 11.2 (11.2.3.143)

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

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

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

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


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

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

УПОРЯДОЧИТЬ ПО
	РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент
Показать
sanya.petrakov; +1
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. kasper076 104 15.03.17 09:23 Сейчас в теме
(1) что значит дебиторская задолженность за период? Дебиторка может быть на дату.
Semargl201; alex-l19041; +2
8. ditp 91 15.03.17 09:40 Сейчас в теме
(1)
ВЫБРАТЬ
	КонтрагентыКонтактнаяИнформация.Представление КАК Адрес,
	РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент,
	СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0)) КАК СуммаРеал,
	СУММА(ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0)) КАК СуммаПост,
	СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0)) КАК Разница
ИЗ
	РегистрНакопления.РасчетыСКлиентамиПоДокументам.ОстаткиИОбороты(&ДатаН, &ДатаК, , , ) КАК РасчетыСКлиентамиПоДокументамОстаткиИОбороты
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
		ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
			И (КонтрагентыКонтактнаяИнформация.Вид = &Вид)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
		ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.РасчетныйДокумент = РеализацияТоваровУслугТовары.Ссылка
			И (РеализацияТоваровУслугТовары.Склад = &Склад)
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК ПоступлениеБезналичныхДенежныхСредств
		ПО РасчетыСКлиентамиПоДокументамОстаткиИОбороты.РасчетныйДокумент = ПоступлениеБезналичныхДенежныхСредств.Ссылка
			И (ПоступлениеБезналичныхДенежныхСредств.ДокументОснование = НЕОПРЕДЕЛЕНО)

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

УПОРЯДОЧИТЬ ПО
	РасчетыСКлиентамиПоДокументамОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент
Показать
sanya.petrakov; +1
9. starjevschik 15.03.17 10:15 Сейчас в теме
(1) 1) про СКД забудь на время, она постоянно мешает всем писать нормальные запросы.
2) сделай две временные таблицы, в одной пусть считается одна сумма, в другой вторая. Потом третий запрос их соединяет и считает разность.
+
10. japopov 68 15.03.17 10:28 Сейчас в теме
(1) Я бы делал так:
1) Сделал временную таблицу с суммой по РегистрНакопления.РасчетыСКлиентамиПоДокументам.ОстаткиИОбороты. Проиндексировал её по ключевым полям.
2) Сделал вторую ВТ, где подобрал бы контактную информацию, при этом за исходную таблицу брал бы ВТ1 (это позволит ограничить размер используемых временных таблиц, если правильно отборы настроить). Опять же, проиндексировал.
3) Третья ВТ считает сумму по документам поступления, её тоже индексировать по документу.
4) Итоговый запрос берёт ВТ2 и к ней цепляет ВТ1 и ВТ3, получает сумму.

Будет работать в меру шустренько.
И в СКД потом просто вставить...
sanya.petrakov; +1
2. Semargl201 15.03.17 08:26 Сейчас в теме
 СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма
    //СУММА(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента) КАК Сумма


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

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

 СУММА(РеализацияТоваровУслугТовары.Сумма) КАК СуммаРеализация
 СУММА(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента) КАК СуммаПоступлениеБезнал
+
3. sanya.petrakov 15.03.17 08:34 Сейчас в теме
(2)Мне нужно получить разность:
СУММА(РеализацияТоваровУслугТовары.Сумма)-СУММА(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента) КАК Сумма


НО эта строчка выводит ересь
+
4. Semargl201 15.03.17 08:42 Сейчас в теме
Разность = СуммаРеализация - СуммаПоступлениеБезнал;

Повторюсь у вас в запросе два поля с одинаковым именем. Так быть не должно.
+
5. kolya_tlt 86 15.03.17 08:55 Сейчас в теме
боюсь спросить причем тут вообще РасчетыСКлиентамиПоДокументам ... ?
+
6. ResetAtreides 15.03.17 09:01 Сейчас в теме
Раз в СКД считаете, рассчитайте это поля в ВычисляемыхПолях. У вас тут вообще мешанина в запросе. Нельзя накладывать условие ГДЕ в запросе с соединениями на НЕ левую таблицу. Будет та самая ересь
+
11. avart2006 15.03.17 11:36 Сейчас в теме
А по простому можно выгрузить в ТЗ, добавить итоговую колонку Сумма, пройтись в цикле с записью разности в эту колонку. В запросе выбираем обе суммы и переименовываем, например КАК Сумма1, КАК Сумма2. В цикле стр.Сумма = стр.Сумма1 - стр.Сумма2.
sanya.petrakov; +1
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот