Запрос без дубликатов по колонке

1. arshanskiyav 32 19.07.15 14:59 Сейчас в теме
Доброго дня!

1С:Предприятие 8.2 (8.2.19.116), "Управление торговлей", редакция 10.3 (10.3.31.3)

Задача:
Найти ППвходящее за период, получить СД, из СД получить заказы покупателей. Сделал запрос:

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


Работает, но есть проблема, если СД указан в разных заказах, то в колонке СсылкаППВ появляются дубли, как на картинке:


А надо так:


Какой именно заказ будет в последней колонке неважно, это уже проблемы пользователя.

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

Показать

Тоже требует ЗаказПокупателяСсылка.

Буду признателен за подсказку.

Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. YNik 19.07.15 16:57 Сейчас в теме
(1) arshanskiyav, в 1-й запрос добавить сгруппировать, кроме СсылкаЗП.
А вместо
| ЗаказПокупателя.Ссылка КАК СсылкаЗП,
поставить
| МИНИМУМ(ЗаказПокупателя.Ссылка) КАК СсылкаЗП,

или МАКСИМУМ, если нужен более поздний заказ.
arshanskiyav; +1 Ответить
3. arshanskiyav 32 19.07.15 18:10 Сейчас в теме
(2) YNik, Спасибо, работает.
Оставьте свое сообщение

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