Поиск дублей в запросе

1. 5225688vd 22.12.22 07:28 Сейчас в теме
Коллеги добрый день, подскажите пожалуйста, столкнулся вот с такой проблемой, есть отчет в который выводится данные документов реализация, отчет о розничной продаже и возвраты, и эти данные разбиваются на ТЧ самописного документа на табличные части товары услуги и возвраты, проблема в том что самописный документ один и тот же может быть прикреплен к разным документам например к реализации и к отчету розницы, и тем самым в отчет попадает дважды и увеличивает итоговую сумму, как избавиться от повторений в запросе, вот сам запрос:
ВЫБРАТЬ
	ОтчетОРозничныхПродажахТовары.Ссылка КАК Ссылка,
	ОтчетОРозничныхПродажахТовары.Количество КАК КоличествоОРП,
	"" КАК КоличествоРТУ,
	"" КАК КоличествоВозврата,
	ОтчетОРозничныхПродажахТовары.Сумма КАК СуммаОРП,
	"" КАК СуммаРТУ,
	"" КАК СуммаВозврата,
	ОтчетОРозничныхПродажахТовары.Ссылка.Организация КАК Организация,
	ОтчетОРозничныхПродажахТовары.Продавец КАК Продавец,
	ОтчетОРозничныхПродажахТовары.ЗаказПокупателя КАК ЗаказПокупателя,
	ОтчетОРозничныхПродажахТовары.ЗаказПокупателя.ЗаказНаряд КАК ЗаказПокупателяЗаказНаряд,
	ОтчетОРозничныхПродажахТовары.Ссылка.Магазин КАК Магазин,
	ОтчетОРозничныхПродажахТовары.Склад КАК Склад
ПОМЕСТИТЬ Документы
ИЗ
	Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
ГДЕ
	ОтчетОРозничныхПродажахТовары.Ссылка.Проведен = ИСТИНА
	И ОтчетОРозничныхПродажахТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
	И ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
	И ОтчетОРозничныхПродажахТовары.Ссылка.Организация = &Организация

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

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

СГРУППИРОВАТЬ ПО
	ВозвратТоваровОтПокупателяТовары.Ссылка,
	ВозвратТоваровОтПокупателяТовары.Ссылка.Организация,
	ВозвратТоваровОтПокупателяТовары.Ссылка.Магазин,
	ВозвратТоваровОтПокупателяТовары.Ссылка.Склад

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

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

СГРУППИРОВАТЬ ПО
	РеализацияТоваровТовары.Ссылка,
	РеализацияТоваровТовары.Ссылка.Организация,
	РеализацияТоваровТовары.ЗаказПокупателя.ЗаказНаряд,
	РеализацияТоваровТовары.Ссылка.ЗаказПокупателя
;

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

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

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

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

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

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

СГРУППИРОВАТЬ ПО
	Документы.ЗаказПокупателяЗаказНаряд,
	Документы.Ссылка,
	Документы.ЗаказПокупателя,
	ЗаказНарядУслугиТоварыСтороннихОрганизаций.Номенклатура,
	ЗаказНарядУслугиТоварыСтороннихОрганизаций.Характеристика,
	ЗаказНарядУслугиТоварыСтороннихОрганизаций.Склад,
	ЗаказНарядУслугиТоварыСтороннихОрганизаций.Количество,
	ЗаказНарядУслугиТоварыСтороннихОрганизаций.Ссылка.Магазин

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

ВЫБРАТЬ
	"Возвраты",
	Документы.Ссылка,
	Документы.ЗаказПокупателя,
	"",
	-1 * Документы.Ссылка.СуммаДокумента,
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	""
ИЗ
	Документы КАК Документы
ГДЕ
	ТИПЗНАЧЕНИЯ(Документы.Ссылка) = ТИП(Документ.ВозвратТоваровОтПокупателя)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втЗаказНаряд.Документы КАК Документы,
	втЗаказНаряд.ЗаказПокупателя КАК ЗаказПокупателя,
	втЗаказНаряд.ЗаказПокупателяЗаказНаряд КАК ЗаказПокупателяЗаказНаряд,
	втЗаказНаряд.Склад КАК Склад,
	втЗаказНаряд.Магазин КАК Магазин,
	втЗаказНаряд.Номенклатура КАК Номенклатура,
	втЗаказНаряд.Характеристика КАК Характеристика,
	втЗаказНаряд.Количество КАК Количество,
	втЗаказНаряд.ТЧ КАК ТЧ,
	СУММА(втЗаказНаряд.Сумма) КАК Сумма,
	"" КАК СуммаОбщая,
	втЗаказНаряд.Продавец КАК Продавец,
	втЗаказНаряд.Участок КАК Участок,
	втЗаказНаряд.ВидРемонта КАК ВидРемонта
ИЗ
	втЗаказНаряд КАК втЗаказНаряд

СГРУППИРОВАТЬ ПО
	втЗаказНаряд.ЗаказПокупателя,
	втЗаказНаряд.ЗаказПокупателяЗаказНаряд,
	втЗаказНаряд.Документы,
	втЗаказНаряд.Номенклатура,
	втЗаказНаряд.Продавец,
	втЗаказНаряд.ТЧ,
	втЗаказНаряд.Характеристика,
	втЗаказНаряд.Склад,
	втЗаказНаряд.Участок,
	втЗаказНаряд.ВидРемонта,
	втЗаказНаряд.Количество,
	втЗаказНаряд.Магазин

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

ВЫБРАТЬ
	Документы.Ссылка,
	Документы.ЗаказПокупателя,
	Документы.ЗаказПокупателяЗаказНаряд,
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	""
ИЗ
	Документы КАК Документы
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. nomad_irk 81 22.12.22 08:46 Сейчас в теме
(1)
.......и тем самым в отчет попадает дважды и увеличивает итоговую сумму, как избавиться от повторений в запрос

Вы для начала в экселе накидайте то, какие таблицы с данными у вас имеются, какого вида таблицу необходимо получить на выходе и уже там будет видно, что нужно сделать, чтобы не было дублей.

Пока могу сказать только то, что запрос выдает вам ровно то, что вы его просите.
2. lostcay 10 22.12.22 08:17 Сейчас в теме
Есть такой тип выборки в языке запросов (ВЫБРАТЬ РАЗЛИЧНЫЕ), при его использовании выводятся только различные строки выборки. Будь с этим аккуратнее, строки выборки {Документ: 1; Сумма: 100} и {Документ: 1; Сумма: 200} это разное. Отдельно выбирай документы с "ВЫБРАТЬ РАЗЛИЧНЫЕ", отдельно делай реляцию со всеми остальными данными.

Во вкладке Дополнительно галочка "Без повторяющихся".
3. 5225688vd 22.12.22 08:43 Сейчас в теме
(2)Выбрать различные не срабатывает потому что регистраторы у ЗаказНаряда разные, я уже пробовал
4. 5225688vd 22.12.22 08:44 Сейчас в теме
В том то и дело что для системы это разные данные, надо каким-то образом брать регистраторы и сравнивать у них повторяющийся ЗаказНаряд и у одного из них убирать дубль
6. lostcay 10 22.12.22 08:57 Сейчас в теме
Сгруппируй итоговую таблицу по ссылке (или что там не должно дублироваться), остальные (МАКСИМУМ), если СКД, то настройки подергай, чтобы выводило только 1 уровень группировки.
7. 5225688vd 22.12.22 10:25 Сейчас в теме
Оставьте свое сообщение

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