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