Обнаружено дублирование ключевых значений в колонке ссылка – ошибка в 1С

В управляемом списке не может выводиться 2 одинаковых ссылки…т.е.

  1. Реализация 1
  2. Реализация 2
  3. Реализация 2

недопустимо. Тогда и возникает ошибка Обнаружено дублирование ключевых значений в колонке «Ссылка». Отображение данных в списке невозможно

Решение: смотреть запрос динамического списка – быстрее всего у вас есть соединение, но Без повторяющихся вы забыли поставить или соединение полностью некорректное, приводящее к дублированию поля Ссылка в строках.

Дополнительная инфа:

http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=590024#590024

http://forum.infostart.ru/forum26/topic60673/

https://helpf.pro/help/view/15748.html

Как открыть форму списка регистра сведений на подбор?

Когда в базе скапливается много информации – проще все данные хранить в регистрах – место существенно экономится и файловые вариант 1Ски не так сильно распухает. Встает вопрос – как работать с регистром сведений в 1С, если записей порядка нескольких миллионов. Запросы ко всем записям подвисают. Поэтому эффективней подбирать нужное количество записей и обрабатывать. Как осуществить подбор записей регистра сведений в табличное поле на форме обработки. Привожу довольно топорный код – желающие могут его доработать.

Кнопка Подбор на форме обработки:

Процедура КоманднаяПанель2Подбор(Кнопка)
	
	ФормаВыбора = РегистрыСведений.Курсы.ПолучитьФорму("ФормаСписка");
	ФормаВыбора.ВладелецФормы = ЭтаФорма;
	//ФормаВыбора.Открыть();
	ФормаВыбора.РежимВыбора = Истина;
	ФормаВыбора.ЗакрыватьПриЗакрытииВладельца = Истина;
	ФормаВыбора.ЗакрыватьПриВыборе = Истина;
 	ВыбранныйЭлемент = ФормаВыбора.ОткрытьМодально();
	Для Каждого Эл Из ВыбранныйЭлемент.Домен Цикл
		Стр = Домены.Добавить();
		Стр.Домен = Эл.АдресСайта;
	КонецЦикла;

КонецПроцедуры
 

Далее в самой форме списка регистра сведений добавляем следующую процедуру выбора:

Процедура РегистрСведенийСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
	
	//Если ЭтаФорма.РежимВыбора Тогда
	//	СтандартнаяОбработка = Ложь;
	//	Если мВозвратДанныхКонтактнойИнформации = Истина Тогда
	//		ЭтаФорма.Закрыть(Элемент.ТекущиеДанные);
	//	Иначе
	//		ЭтаФорма.Закрыть(Элемент.ТекущиеДанные.Представление);
	//	КонецЕсли;
	//КонецЕсли; 

	Стр=Новый Структура;
    Стр.Вставить("Домен",Элемент.ВыделенныеСтроки);
    //Стр.Вставить("Коэффициент",Элемент.ТекущиеДанные.Коэффициент);
    ОповеститьОВыборе(Стр);
    СтандартнаяОбработка=Ложь;
КонецПроцедуры
 

Т.е. работает таким образом – нажали подбор, открылся список регистра сведений, выделили несколько строк, нажали ввод – строки влетели в табличное поле на форме обработки.

В типовых конфах можно смотреть как сделана КонтактаяИнформация – там по цивильней все выглядит.