Если при работе с конфигурацией 1С:ЗУП в клиент-серверном варианте (SQL) вы столкнулись с ошибкой «Обнаружено дублирование ключевых значений в колонках: Ссылка», значит, в данных одного из регистров сведений возникла логическая коллизия. Данная проблема чаще всего проявляется именно в SQL-базах, так как сервер СУБД предъявляет более строгие требования к уникальности записей, используемых в динамических списках, чем файловый вариант базы.
Прежде всего, необходимо понять, что именно вызывает конфликт. Чаще всего причиной является наличие у сотрудника двух и более активных записей в регистрах, которые отвечают за состояние кадровых данных. Наиболее вероятным виновником является регистр сведений СостоянияСотрудников.
Для выявления проблемных записей воспользуемся консолью запросов. Проанализируем состояние сотрудников, у которых «зависли» записи с пустой датой окончания (признак активного состояния):
ВЫБРАТЬ
СостоянияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
СУММА(1) КАК ВсегоЗаписей
ПОМЕСТИТЬ втСотр
ИЗ
РегистрСведений.СостоянияСотрудников.СрезПоследних КАК СостоянияСотрудниковСрезПоследних
ГДЕ
СостоянияСотрудниковСрезПоследних.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
СГРУППИРОВАТЬ ПО
СостоянияСотрудниковСрезПоследних.Сотрудник
;
ВЫБРАТЬ
втСотр.Сотрудник КАК Сотрудник
ИЗ
втСотр КАК втСотр
ГДЕ
втСотр.ВсегоЗаписей > 1
Если этот запрос вернул список сотрудников, значит, для них в регистре действительно числится более одной активной записи. Именно эти дубли мешают динамическому списку справочника Сотрудники корректно выводить информацию на экран.
Рассмотрим несколько проверенных способов решения данной задачи, от простых к более сложным:
ОбновитьСостоянияСотрудника.epf для исправления подобных задвоений. Если вы столкнулись с этой ошибкой, в первую очередь обратитесь в техническую поддержку 1С или на портал ИТС для получения актуальной версии этой обработки под ваш релиз. Важно: открывать её нужно через меню «Файл — Открыть», а не через добавление в «Дополнительные отчеты и обработки», чтобы избежать ошибок вызова методов.Сотрудники, в кадровых документах (например, в двух разных Приемах на работу) остались ссылки на «склеенные» объекты. Внимательно проверьте историю кадровых документов для найденных проблемных сотрудников.Рассмотрим подробнее, на что стоит обратить внимание, чтобы ситуация не повторилась:
В завершение, подчеркнем: если использование обработки не помогает или ошибка возвращается после проведения документов, это свидетельствует о системной ошибке в данных конкретных документов. В таком случае единственно верным решением будет создание документа-исправления текущей датой или полное перепроведение цепочки кадровых событий для сотрудника, чтобы регистр СостоянияСотрудников заполнился корректно с нуля.