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

При разработке какой-либо из версий из версий конфигурации 1С и тестировании созданной программы программист 1С может столкнуться с уведомлением «Обнаружено дублирование ключевых значений в колонках «Ссылка» в 1С 8.3. Появление указанного уведомления обычно вызвано неправильным составлением запроса, и лечиться проверкой имеющейся базы данных и удалением дублирующих значений. Ниже разберём суть возникшей дисфункции и методы её решения.

Содержание статьи:

  • 1 Что может означать «Обнаружено дублирование ключевых значений»?
  • 2 Как исправить ошибку в 1С 8.3
  • 3 Заключение

Что может означать «Обнаружено дублирование ключевых значений»?

Как правило, рассматриваемая ошибка проявляет себя уже на стадии тестирования создаваемой конфигурации. Она появляется при попытке открытия какой-либо формы выбора, или работающей на управляемом приложении формы списка в 1С, при выполнении других операций и процессов.

Проблема возникает как в версии 1С 8.3, так и более ранних версиях продукта (зафиксировано её появление в более ранних версиях 8.2 и 8.1.)

При возникновении ошибки появляется уведомление «Обнаружено дублирование ключевых значений в колонке «Ссылка» (или каких-либо альтернативных колонках). Отображение данных в списке невозможно». Программисту предлагается нажать на кнопку «Ок», после чего уведомление пропадает.

Появления указанного сообщения означает, что форма заполняется на основании динамического списка, запрос которого выдаёт дублирующие строки.

Причиной этого является неправильно настроенное соединение с основной таблицей, которое и предстоит откорректировать программисту 1С.

Также причиной указанной ошибки может выступать наличие в базе ряда элементов справочника с незаполненным кодом.

Как исправить ошибку в 1С 8.3

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

Для этого перейдите в конфигуратор базы 1С, откройте запрос динамического списка (лучше всего через конструктор запросов), и просмотрите имеющиеся связи между таблицами в запросе. После нахождения проблемы скорректируйте запрос с целью удаления дублирующих ссылок по колонке (в случае данной статьи это упомянутая в тексте ошибки колонка «Ссылка»). Для этого в большинстве случаев достаточно перейти на закладку «Группировка», и перераспределить имеющиеся поля запроса в суммируемые и группируемые поля.

В случае неудачи попробуйте также в конструкторе запросов динамического списка перейти в закладку «Дополнительно», и там поставить галочку на опции «Без повторяющихся». Довольно часто это позволяет избавиться от ошибки «Обнаружено дублирование ключевых значений» в версии 1С 8.3 (и более ранних версий).

Обнаружено дублирование ключевых значений в колонках «Ссылка» в 1С 8.3
На вкладке «Дополнительно» активируйте опцию «Без повторяющихся»

Удалите все сомнительные соединения запроса. Если отыскать корень проблемы не удаётся – тогда стоит выполнить глобальное тестирование и исправление.

В более ранних версиях 1С помогал переход в раздел «Администрирование», далее «Обслуживание», затем выбор опции «Корректировка данных». Раскройте имеющуюся панель, выберите там «Поиск и удаление дублей», а затем кликните на «Искать». Выполните поиск и удаление дублей, каждый раз заново запуская обработку по справочникам.

Читайте также: как устранить проблему с нарушением целостности системы в 1С.

Заключение

В нашем материале мы разобрали, почему появляется ошибка — Обнаружено дублирование ключевых значений в колонках «Ссылка» в 1С 8.3, и как её можно исправить. В большинстве случаев причиной проблемы становится наличие дублирующих строк из запрашиваемого динамического списка. Для устранения дисфункции необходимо просмотреть имеющуюся программу (в частности, запросы динамического списка), после чего удалить дублирующие ссылки. После этого рассматриваемая нами проблема обычно бывает решена.