Ошибка «Обнаружено дублирование ключевых значений в колонках: Ссылка» в 1С 8.3
📋 Содержание
Открываете справочник или список, а вместо данных — окно с текстом Обнаружено дублирование ключевых значений в колонках: "Ссылка". В 1С 8.3 эта ошибка вылезает в динамических списках: платформа встретила две строки с одинаковым ключом и не может показать их в колонках формы.
Сам по себе текст пугает, но чинится всё предсказуемо. Ниже — почему появляется дублирование ключевых значений, как за минуту отсеять безобидный кэш от реальных дублей в базе и четыре способа убрать проблему: от очистки кэша до точечного поиска битой записи.
Что означает ошибка «Обнаружено дублирование ключевых значений в колонках: Ссылка»
Динамический список (справочник, журнал документов, форма выбора) строит выборку из СУБД. Каждой строке нужен уникальный ключ — обычно это поле Ссылка. Когда в результате запроса две строки получают одну и ту же ссылку, платформа отказывается их отрисовывать и выдаёт ошибку.
Ключевое слово здесь — «в колонках». Проблема не в самом объекте, а в том, как список собирает данные для колонок. Поэтому одна и та же запись может нормально открываться по гиперссылке, но валить список при попытке его показать.
💡 Полный текст ошибки часто выглядит так:
Обнаружено дублирование ключевых значений в колонках: "Ссылка". Отображение данных в списке.Слово «список» в конце — прямая подсказка, что чинить надо динамический список, а не данные документа.
Причин у дублирования немного, и почти все сводятся к двум группам: временный сбой кэша и настоящие дубли в таблицах базы.
Почему появляется дублирование ключевых значений в 1С 8.3
Основные сценарии, от частого к редкому:
- 🗂️ Дубли в регистре сведений. Список показывает данные из регистра, где измерением или ресурсом идёт ссылка. Две записи с одинаковой ссылкой — и список падает. Самый частый случай.
- 🧹 Битый кэш клиента. Локальные файлы сеанса устарели после обновления или обрыва связи. Данных-дублей нет, но клиент их «видит».
- 🔧 Нарушение целостности после сбоя. Незавершённое обновление, аварийное отключение во время записи, реструктуризация — в таблице остаются физические дубли строк.
- 🧩 Ошибка в доработке. Кривой запрос в форме списка, добавленное поле без уникальности, самописная обработка, наплодившая записи.
- 🔁 Перенос и загрузка данных. Выгрузка-загрузка через XML, обмены, конвертация — при повторной загрузке пары ключей задвоились.
Чтобы не гадать, начните с быстрой диагностики.
Быстрая диагностика: с чего начать
Определите свой симптом — и сразу видно направление.
Способ 1. Очистка кэша (самый безопасный)
Если данные целы, а виноват локальный кэш — помогает за минуту.
- Закройте все окна 1С.
- Запустите ярлык программы с ключом очистки: в свойствах ярлыка в конце строки
Объектдопишите/ClearCache(через пробел). - Либо вручную удалите каталог кэша пользователя. Путь вида:
C:\Users\<Пользователь>\AppData\Local\1C\1cv82\<длинный GUID базы>
C:\Users\<Пользователь>\AppData\Local\1C\1cv8\<длинный GUID базы>
Удаляйте только папку конкретной базы (её GUID виден в списке баз при выборе → «Изменить» → строка каталога). Данные это не тронет — кэш пересоберётся при следующем запуске.
⚠️ Очистка кэша помогает, только если дублей в базе физически нет. Если после пересборки список падает снова — переходите к поиску настоящих дублей.
Способ 2. Тестирование и исправление базы
Годится, когда база пережила сбой: обрыв обновления, аварийное завершение, проблемы с СУБД.
Для файловой базы сначала проверьте физическую целостность утилитой chdbfl.exe (лежит в каталоге платформы, bin):
- Закройте базу для всех.
- Сделайте резервную копию каталога базы перед любыми правками.
- Запустите
chdbfl.exe, укажите файл1Cv8.1CD, поставьте галку «Исправлять обнаруженные ошибки», запустите.
Затем — штатное Тестирование и исправление в конфигураторе: Администрирование → Тестирование и исправление. Отметьте:
- ✅ Реиндексация таблиц;
- ✅ Проверка логической целостности;
- ✅ Проверка ссылочной целостности;
- ✅ Пересчёт итогов.
💡 Для клиент-серверной базы (PostgreSQL / MS SQL)
chdbflне применяют — работают черезТестирование и исправлениев конфигураторе и средства самой СУБД.
Тестирование лечит нарушенную целостность, но не всегда убирает логические дубли в регистре — их часто приходится искать руками.
Способ 3. Найти и удалить дубли через «Все функции»
Прямой путь, когда список падает на конкретном регистре сведений. Смотрим содержимое регистра в обход сломанной формы.
Открыть регистр напрямую
Команда Все функции показывает регистры, минуя проблемный динамический список.
- Включите режим:
Сервис → Параметры → Отображать команду "Все функции"(галка). В части конфигураций пункт называетсяГлавное меню → Сервис. - Откройте
Все функции → Регистры сведений → <нужный регистр>. - Отсортируйте по колонке
Ссылка(или по нужному измерению) — задвоенные записи встанут рядом.
Нашли пару одинаковых строк — лишнюю удаляйте (Del), оставляя одну актуальную.
Найти дубли запросом
Если регистр большой, ищите дубли запросом в консоли запросов (внешняя обработка или через расширение):
ВЫБРАТЬ
Т.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(*) КАК Сколько
ИЗ
РегистрСведений.ВашРегистр КАК Т
СГРУППИРОВАТЬ ПО
Т.Ссылка
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
Запрос вернёт только те ссылки, что задвоились. Дальше — точечно удалить лишние записи.
⚠️ Перед удалением поймите, чем строки отличаются (период, другие измерения). Иногда «дубль» по ссылке — это нормальные записи с разными измерениями, а падает список из-за неверно заданного ключа в самой форме. Тогда чинить надо форму (Способ 4), а не данные.
Способ 4. Точный поиск причины через отладку
Когда простые способы не сработали, а ошибка на доработанной форме, — ищем точное место в отладчике.
- В конфигураторе включите отладку:
Сервис → Параметры → Запуск 1С:Предприятия → галка "Устанавливать режим разрешения отладки". - Поставьте точку останова на открытие проблемной формы списка.
- Проверьте текст запроса динамического списка (свойство
Основная таблица/ произвольный запрос) — нет ли соединений, дающих задвоение строк.
Ускоряет разбор инструмент OneDebugger и подобные — они подсвечивают участок кода, из-за которого список получает неуникальный ключ. Ставится как внешняя обработка, помогает пройти по стеку до конкретной строки.
Типичная находка: в запросе списка есть ЛЕВОЕ СОЕДИНЕНИЕ с таблицей, где на одну ссылку приходится несколько строк. Лечится добавлением РАЗЛИЧНЫЕ, агрегацией или переносом соединения в отдельный запрос.
Сравнение способов: что когда применять
| Способ | Когда применять | Риск | Время |
|---|---|---|---|
| Очистка кэша | Сразу после обновления, данные целы | Нет | ~1 мин |
| chdbfl + ТиИ | База падала, сбой обновления/СУБД | Низкий (нужна копия) | 10–60 мин |
| «Все функции» + удаление | Реальные дубли в регистре | Средний (удаляем данные) | 5–20 мин |
| Отладка / OneDebugger | Ошибка на доработанной форме | Низкий | от 20 мин |
Начинайте сверху вниз: от безопасного к радикальному.
Порядок действий: пройдите по шагам
Как предотвратить повторение
- 💾 Перед обновлением конфигурации и платформы — всегда резервная копия базы.
- 🔌 Не выключайте сервер и не рвите сеанс во время реструктуризации и обновления.
- 🧪 Периодически (например, раз в месяц) прогоняйте регламентное
Тестирование и исправлениев нерабочее время. - 🧷 В доработках форм списка следите за уникальностью ключа:
РАЗЛИЧНЫЕи агрегация при соединениях «один ко многим». - 📦 После обменов и загрузок XML проверяйте регистры на дубли запросом с группировкой.
Если не помогло
Список всё ещё падает — сузьте область:
- Проверьте, у всех ли пользователей ошибка. Только у одного — почти наверняка кэш или его профиль.
- Откройте базу в режиме
Конфигуратор → Открыть базу под другим пользователембез расширений — если ошибка ушла, виновато расширение. - Выгрузите базу в
.dtи загрузите в чистую копию — часть проблем целостности уходит при выгрузке-загрузке. - Соберите точный текст ошибки и название регистра/справочника — с этим быстрее найдёте причину или обратитесь к специалисту.
Проверьте себя
Частые вопросы
Что вообще значит «дублирование ключевых значений в колонках: Ссылка»?
Ссылка и не может показать их в колонках. Причина — либо дубли в регистре/таблице, либо битый кэш.Удалит ли очистка кэша мои данные?
/ClearCache — это временные файлы сеанса на клиенте. Они пересобираются при следующем запуске, данные базы не затрагиваются.Помогает ли Тестирование и исправление от этой ошибки?
Как быстро посмотреть регистр, если сам список не открывается?
Все функции (включается в Сервис → Параметры). Она открывает регистр напрямую, минуя сломанный динамический список.Ошибка только у одного пользователя — почему?
Можно ли просто удалить одну из двух одинаковых строк?
Материал подготовлен редакцией 1С 8.3 — независимый справочник. Проверено и обновлено: 12.07.2026. Независимый справочник. Мы не представляем фирму «1С» и не аффилированы с ней.