Группировка запроса по РТУ

1. Intercititude 10.07.20 16:25 Сейчас в теме
Доброе время суток всем!
Есть ошибка в следующем куске запроса:

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

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

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

СГРУППИРОВАТЬ ПО
	Заказы.ЗаказПокупателя
;

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


На выходе происходят дубли заказов в том случае если к заказу привязаны несколько разделенных реализации!
Как это исправить ?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. user1058740 10.07.20 17:56 Сейчас в теме +0.5 $m
Убери из первого запроса РТУ.Регистратор и замени Реализации.Регистратор.Сделка на Реализации.Сделка.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 10.07.20 16:31 Сейчас в теме
(1) зачем в первой таблице Регистратор ?
3. Intercititude 10.07.20 16:45 Сейчас в теме
(2)Связь рту с заказом. Последняя строка запроса.
4. alex-l19041 8 10.07.20 16:46 Сейчас в теме
(3) сделка уже есть в таблице
РТУ.Регистратор.Сделка КАК Сделка
user1058740; +1 Ответить
5. Intercititude 10.07.20 16:55 Сейчас в теме
(4) Вот итоговый запрос. Если убрать "Регистратор" из группировки, то лезет ещё больше дублей.

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

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

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

СГРУППИРОВАТЬ ПО
	Заказы.ЗаказПокупателя
;

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

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

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

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

ВЫБРАТЬ
	Реализации.СуммаРТУ
ИЗ
	ВТ_РТУ КАК Реализации
ГДЕ
	Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)

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

ВЫБРАТЬ
	Заказы.СуммаЗаказов
ИЗ
	ВТ_Заказы КАК Заказы
ГДЕ
	НЕ Заказы.ЗаказПокупателя.Ссылка В
				(ВЫБРАТЬ
					реализации.Сделка
				ИЗ
					ВТ_РТУ КАК реализации)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
ИЗ
	ВТ_ИТОГ КАК ВТ_ИТОГ
Показать
6. user1058740 10.07.20 17:56 Сейчас в теме +0.5 $m
Убери из первого запроса РТУ.Регистратор и замени Реализации.Регистратор.Сделка на Реализации.Сделка.
7. Intercititude 10.07.20 18:11 Сейчас в теме
(6) У этого регистра нету "Сделки" же.
8. starjevschik 11.07.20 11:18 Сейчас в теме
Прежде чем "это" исправлять, надо бы понять, что же нужно получить. Запрос он же не думает, что сказали - то и выдал.
9. Intercititude 11.07.20 12:54 Сейчас в теме
(8)За определенный период по контрагенту сумму заказов + реализации..
10. Intercititude 11.07.20 13:28 Сейчас в теме
(9)1) Заказы + реализации с учётом корректировок
2) Реализации без заказов
3) Заказы без реализации.

И эту общую сумму получаем
11. starjevschik 11.07.20 14:50 Сейчас в теме
(9) если только сумму, то зачем там вообще документы в результатах запроса? Надо документы выкинуть и все получится.
12. Intercititude 11.07.20 15:29 Сейчас в теме
(11) К Примеру? Без документов же корректно не отгруппировать и не связать,и условия как же.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день