Ошибка "Дублирование ключевых значений"

1. Romakon92 23.11.17 16:56 Сейчас в теме
Добрый день! Изменяю динамический список( добавляю реквизит "НомерТТНКонтрагента как ТТН")
Сначала создаю вложенный запрос, в котором соединяю Путевой Лист и ТТД, а после, соединяю вложенный запрос и основной запрос.
При формировании списка документов за период Январь, Февраль, Март, Апрель, Май - возникает ошибка:
Обнаружено дублирование ключевых значений в колонках: "Ссылка." Отображение данных в списке невозможно.

Но если указать период Июнь, Июль и т.д. то ошибки не возникает. Почему так происходит?
Код запроса:
ВЫБРАТЬ
	ДокументуатЗаказГрузоотправителя.Ссылка,
	ДокументуатЗаказГрузоотправителя.ПометкаУдаления,
	ДокументуатЗаказГрузоотправителя.Номер,
	ДокументуатЗаказГрузоотправителя.Дата,
	ДокументуатЗаказГрузоотправителя.Проведен,
	ДокументуатЗаказГрузоотправителя.АдресНазначения,
	ДокументуатЗаказГрузоотправителя.АдресОтправления,
	ДокументуатЗаказГрузоотправителя.ВалютаДокумента,
	ДокументуатЗаказГрузоотправителя.ВалютаТоваров,
	ДокументуатЗаказГрузоотправителя.ВесБрутто,
	ДокументуатЗаказГрузоотправителя.ВидОперации,
	ДокументуатЗаказГрузоотправителя.Грузоотправитель,
	ДокументуатЗаказГрузоотправителя.Грузополучатель,
	ДокументуатЗаказГрузоотправителя.ДоговорКонтрагента,
	ДокументуатЗаказГрузоотправителя.ДокументОснование,
	ДокументуатЗаказГрузоотправителя.ДоставкаПо,
	ДокументуатЗаказГрузоотправителя.ДоставкаС,
	ДокументуатЗаказГрузоотправителя.КоличествоМест,
	ДокументуатЗаказГрузоотправителя.Комментарий,
	ДокументуатЗаказГрузоотправителя.КонтактноеЛицоГрузоотправителя,
	ДокументуатЗаказГрузоотправителя.КонтактноеЛицоГрузополучателя,
	ДокументуатЗаказГрузоотправителя.Контрагент,
	ДокументуатЗаказГрузоотправителя.КратностьВзаиморасчетов,
	ДокументуатЗаказГрузоотправителя.КурсВзаиморасчетов,
	ДокументуатЗаказГрузоотправителя.ЛатДоставки,
	ДокументуатЗаказГрузоотправителя.ЛатОтправления,
	ДокументуатЗаказГрузоотправителя.ЛонДоставки,
	ДокументуатЗаказГрузоотправителя.ЛонОтправления,
	ДокументуатЗаказГрузоотправителя.НазваниеГруза,
	ДокументуатЗаказГрузоотправителя.НомерПоУчетуЗаказчика,
	ДокументуатЗаказГрузоотправителя.Объем,
	ДокументуатЗаказГрузоотправителя.Организация,
	ДокументуатЗаказГрузоотправителя.Ответственный,
	ДокументуатЗаказГрузоотправителя.ОтправлениеПо,
	ДокументуатЗаказГрузоотправителя.ОтправлениеС,
	ДокументуатЗаказГрузоотправителя.СтоянкаПунктНазначения,
	ДокументуатЗаказГрузоотправителя.СтоянкаПунктОтправления,
	ДокументуатЗаказГрузоотправителя.СуммаВключаетНДС,
	ДокументуатЗаказГрузоотправителя.СуммаДокумента,
	ДокументуатЗаказГрузоотправителя.ТребованиеКТС,
	ДокументуатЗаказГрузоотправителя.ТребованиеКТСТипТС,
	ДокументуатЗаказГрузоотправителя.УчитыватьНДС,
	ДокументуатЗаказГрузоотправителя.ЭтоЭтап,
	ДокументуатЗаказГрузоотправителя.МоментВремени,
	ВЫБОР
		КОГДА ДокументуатЗаказГрузоотправителя.Проведен
				И ЕСТЬNULL(Статусы.ЕстьРасход, 0) > 0
				И ЕСТЬNULL(Статусы.ЕстьОстаток, 0) > 0
			ТОГДА "Частично выполнен"
		КОГДА ДокументуатЗаказГрузоотправителя.Проведен
					И Статусы.ЕстьОстаток ЕСТЬ NULL
				ИЛИ Статусы.ЕстьОстаток = 0
			ТОГДА "Исполнен"
		КОГДА ДокументуатЗаказГрузоотправителя.Проведен
			ТОГДА "Открыт"
	КОНЕЦ КАК СтатусЗаказа,
	ДокументуатЗаказГрузоотправителя.Подразделение,
	ВложенныйЗапрос.ТТН
ИЗ
	(ВЫБРАТЬ
		уатТТД.НомерТТНКонтрагента КАК ТТН,
		уатТТД.ПутевойЛист КАК ПутевойЛист
	ИЗ
		Документ.уатПутевойЛист КАК уатПутевойЛист
			ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатТТД КАК уатТТД
			ПО уатПутевойЛист.Ссылка = уатТТД.ПутевойЛист.Ссылка) КАК ВложенныйЗапрос
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатЗаказГрузоотправителя КАК ДокументуатЗаказГрузоотправителя
			ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
				ТабСтатусов.ЗаказГрузоотправителя КАК ЗаказГрузоотправителя,
				МАКСИМУМ(ТабСтатусов.ЕстьОстаток) КАК ЕстьОстаток,
				МАКСИМУМ(ТабСтатусов.ЕстьРасход) КАК ЕстьРасход
			ИЗ
				(ВЫБРАТЬ
					уатЗаказыГрузоотправителейОстатки.ЗаказГрузоотправителя КАК ЗаказГрузоотправителя,
					уатЗаказыГрузоотправителейОстатки.КоличествоОстаток КАК ЕстьОстаток,
					NULL КАК ЕстьРасход
				ИЗ
					РегистрНакопления.уатЗаказыГрузоотправителей.Остатки КАК уатЗаказыГрузоотправителейОстатки
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					ВложенныйЗапрос.ЗаказГрузоотправителя,
					NULL,
					ВложенныйЗапрос.Количество
				ИЗ
					(ВЫБРАТЬ
						уатЗаказыГрузоотправителей.ЗаказГрузоотправителя КАК ЗаказГрузоотправителя,
						СУММА(уатЗаказыГрузоотправителей.Количество) КАК Количество
					ИЗ
						РегистрНакопления.уатЗаказыГрузоотправителей КАК уатЗаказыГрузоотправителей
					ГДЕ
						уатЗаказыГрузоотправителей.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
					
					СГРУППИРОВАТЬ ПО
						уатЗаказыГрузоотправителей.ЗаказГрузоотправителя) КАК ВложенныйЗапрос) КАК ТабСтатусов
			
			СГРУППИРОВАТЬ ПО
				ТабСтатусов.ЗаказГрузоотправителя) КАК Статусы
			ПО ДокументуатЗаказГрузоотправителя.Ссылка = Статусы.ЗаказГрузоотправителя
		ПО ВложенныйЗапрос.ПутевойЛист.ДокументОснование.Дата = ДокументуатЗаказГрузоотправителя.Дата
			И ВложенныйЗапрос.ПутевойЛист.ДокументОснование.Водитель1 = ДокументуатЗаказГрузоотправителя.Водитель1
			И ВложенныйЗапрос.ПутевойЛист.ДокументОснование.ТС = ДокументуатЗаказГрузоотправителя.ТС
Показать
По теме из базы знаний
Найденные решения
2. user633533_encantado 11 23.11.17 17:06 Сейчас в теме
В результате запроса дублируются строки, ищете что к этому приводит. Например есть несколько уатТТД с одним и тем же путевым листом.
Romakon92; +1 Ответить
4. SPID 24.11.17 10:25 Сейчас в теме
(3) Выполнить запрос в консоле запросов и посмотреть результат. Можно в консоле обернуть запрос в еще один с группировкой и условием типа ИМЕЮЩИЕ Количество(Ссылка) >1
Romakon92; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user633533_encantado 11 23.11.17 17:06 Сейчас в теме
В результате запроса дублируются строки, ищете что к этому приводит. Например есть несколько уатТТД с одним и тем же путевым листом.
Romakon92; +1 Ответить
3. Romakon92 24.11.17 10:16 Сейчас в теме
Подскажите пожалуйста, а как проверить что есть совпадающие документы?
4. SPID 24.11.17 10:25 Сейчас в теме
(3) Выполнить запрос в консоле запросов и посмотреть результат. Можно в консоле обернуть запрос в еще один с группировкой и условием типа ИМЕЮЩИЕ Количество(Ссылка) >1
Romakon92; +1 Ответить
Оставьте свое сообщение

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