Дублируются поля в динамическом списке

1. pusal 14.03.24 12:02 Сейчас в теме
Всем привет. Конфигурация ERP -> в справочнике ДоговорыКонтрагентов есть форма списка договоров, но нет возможности установить основной договор (как в БП). Для этого был добавлен отдельный РС, куда записывается основной договор, и пытаемся вывести на форму списка. Получаем ошибку о дублировании ключевых значений в колонках, при этом в результирующем запросе динамического списка при анализе в конструкторе запроса никаких дублей нет. Такое случается при левом соединении с регистром сведений, но попробовали с контрагентом, у которого в системе всего два договора - та же ошибка при открытии формы, но нет ошибки в консоли запроса. В чем может быть дело, куда копать? Спасибо заранее!

Текст результируюшего запроса из отладчика:

ВЫБРАТЬ
	СправочникДоговорыКонтрагентов.Ссылка КАК Ссылка,
	СправочникДоговорыКонтрагентов.ВерсияДанных КАК ВерсияДанных,
	СправочникДоговорыКонтрагентов.ПометкаУдаления КАК ПометкаУдаления,
	СправочникДоговорыКонтрагентов.Предопределенный КАК Предопределенный,
	СправочникДоговорыКонтрагентов.Наименование КАК Наименование,
	СправочникДоговорыКонтрагентов.Номер КАК Номер,
	СправочникДоговорыКонтрагентов.Дата КАК Дата,
	СправочникДоговорыКонтрагентов.Партнер КАК Партнер,
	СправочникДоговорыКонтрагентов.Контрагент КАК Контрагент,
	СправочникДоговорыКонтрагентов.Организация КАК Организация,
	СправочникДоговорыКонтрагентов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	СправочникДоговорыКонтрагентов.ТипДоговора КАК ТипДоговора,
	СправочникДоговорыКонтрагентов.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
	СправочникДоговорыКонтрагентов.ОплатаВВалюте КАК ОплатаВВалюте,
	СправочникДоговорыКонтрагентов.Статус КАК Статус,
	СправочникДоговорыКонтрагентов.ДатаНачалаДействия КАК ДатаНачалаДействия,
	СправочникДоговорыКонтрагентов.ДатаОкончанияДействия КАК ДатаОкончанияДействия,
	СправочникДоговорыКонтрагентов.Менеджер КАК Менеджер,
	СправочникДоговорыКонтрагентов.Комментарий КАК Комментарий,
	СправочникДоговорыКонтрагентов.БанковскийСчет КАК БанковскийСчет,
	СправочникДоговорыКонтрагентов.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
	СправочникДоговорыКонтрагентов.ПлатежиПо275ФЗ КАК ПлатежиПо275ФЗ,
	&ПартнерПоУмолчанию КАК ПартнерПоУмолчанию,
	ВЫБОР
		КОГДА СправочникДоговорыКонтрагентов.ПометкаУдаления
			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияДоговоровКонтрагентов.ПустаяСсылка)
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Закрыт)
			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияДоговоровКонтрагентов.Закрыт)
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияДоговоровКонтрагентов.Действует)
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.НеСогласован)
			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияДоговоровКонтрагентов.ОжидаетсяСогласование)
	КОНЕЦ КАК Состояние,
	ВЫБОР
		КОГДА СправочникДоговорыКонтрагентов.ПометкаУдаления
			ТОГДА ЛОЖЬ
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.НеСогласован)
				И (СправочникДоговорыКонтрагентов.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
						И СправочникДоговорыКонтрагентов.ДатаНачалаДействия < &ДатаАктуальности
					ИЛИ СправочникДоговорыКонтрагентов.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1, 1, 1)
						И СправочникДоговорыКонтрагентов.ДатаОкончанияДействия < &ДатаАктуальности)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК СогласованиеПросрочено,
	ВЫБОР
		КОГДА СправочникДоговорыКонтрагентов.ПометкаУдаления
			ТОГДА ЛОЖЬ
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
				И (СправочникДоговорыКонтрагентов.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1, 1, 1)
					И СправочникДоговорыКонтрагентов.ДатаОкончанияДействия < &ДатаАктуальности)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК СрокДействияИстек,
	ВЫБОР
		КОГДА СправочникДоговорыКонтрагентов.ПометкаУдаления
			ТОГДА ЛОЖЬ
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
				И (СправочникДоговорыКонтрагентов.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
					И СправочникДоговорыКонтрагентов.ДатаНачалаДействия > &ДатаАктуальности)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК СрокДействияНеНаступил,
	ВЫБОР
		КОГДА СправочникДоговорыКонтрагентов.ПометкаУдаления
			ТОГДА ДАТАВРЕМЯ(1, 1, 1)
		КОГДА (СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.НеСогласован)
				ИЛИ СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует))
				И СправочникДоговорыКонтрагентов.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1, 1, 1)
			ТОГДА СправочникДоговорыКонтрагентов.ДатаОкончанияДействия
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.НеСогласован)
				И СправочникДоговорыКонтрагентов.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
			ТОГДА СправочникДоговорыКонтрагентов.ДатаНачалаДействия
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
				И (СправочникДоговорыКонтрагентов.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
					И СправочникДоговорыКонтрагентов.ДатаНачалаДействия > &ДатаАктуальности)
			ТОГДА СправочникДоговорыКонтрагентов.ДатаНачалаДействия
		ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
	КОНЕЦ КАК ДатаСобытия,
	ВЫБОР
		КОГДА СправочникДоговорыКонтрагентов.ПометкаУдаления
			ТОГДА ЛОЖЬ
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.НеСогласован)
				И (СправочникДоговорыКонтрагентов.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
						И СправочникДоговорыКонтрагентов.ДатаНачалаДействия < &ДатаАктуальности
					ИЛИ СправочникДоговорыКонтрагентов.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1, 1, 1)
						И СправочникДоговорыКонтрагентов.ДатаОкончанияДействия < &ДатаАктуальности)
			ТОГДА ИСТИНА
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
				И (СправочникДоговорыКонтрагентов.ДатаОкончанияДействия <> ДАТАВРЕМЯ(1, 1, 1)
					И СправочникДоговорыКонтрагентов.ДатаОкончанияДействия < &ДатаАктуальности)
			ТОГДА ИСТИНА
		КОГДА СправочникДоговорыКонтрагентов.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
				И (СправочникДоговорыКонтрагентов.ДатаНачалаДействия <> ДАТАВРЕМЯ(1, 1, 1)
					И СправочникДоговорыКонтрагентов.ДатаНачалаДействия > &ДатаАктуальности)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК Просрочен,
	СправочникДоговорыКонтрагентов.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
	СправочникДоговорыКонтрагентов.НаправлениеДеятельности КАК НаправлениеДеятельности,
	СправочникДоговорыКонтрагентов.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
	СправочникДоговорыКонтрагентов.ГрафикИсполненияДоговора КАК ГрафикИсполненияДоговора,
	НЕ псОсновныеДоговорыКонтрагента.Договор ЕСТЬ NULL КАК ЯвляетсяОсновным
ИЗ
	Справочник.ДоговорыКонтрагентов КАК СправочникДоговорыКонтрагентов
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.псОсновныеДоговорыКонтрагента КАК псОсновныеДоговорыКонтрагента
		ПО СправочникДоговорыКонтрагентов.Организация = псОсновныеДоговорыКонтрагента.Организация
			И СправочникДоговорыКонтрагентов.Контрагент = псОсновныеДоговорыКонтрагента.Контрагент
			И СправочникДоговорыКонтрагентов.ТипДоговора = псОсновныеДоговорыКонтрагента.ТипДоговора
			И СправочникДоговорыКонтрагентов.Ссылка = псОсновныеДоговорыКонтрагента.Договор
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
4. SlavaKron 14.03.24 12:42 Сейчас в теме
Вот что происходит при "ручной" доработке вместо программной. Обращайте внимание на "Основная таблица" и вид ключа в настройке динамического списка.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 14.03.24 12:11 Сейчас в теме
(1) У регистра Ссылка должно быть Измерением, остальные поля Ресурсами
3. pusal 14.03.24 12:34 Сейчас в теме
(2) при такой структуре регистра ошибка сохраняется, только теперь по полю Договор
Прикрепленные файлы:
4. SlavaKron 14.03.24 12:42 Сейчас в теме
Вот что происходит при "ручной" доработке вместо программной. Обращайте внимание на "Основная таблица" и вид ключа в настройке динамического списка.
5. pusal 14.03.24 12:47 Сейчас в теме
(4)
Вот что происходит при "ручной" доработке вместо программной. Обращайте внимание на "Основная таблица" и вид ключа в настройке динамического списка.
Основная таблица на таблицу регистра поменялась, в этом и была проблема. Благодарю!
Оставьте свое сообщение

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