Ошибка «Запись с такими ключевыми полями существует»: что делать
Содержание
Первое, что стоит выкинуть из головы: база не «умерла». Сообщение Запись с такими ключевыми полями существует! при проведении документа в 1С 8.3 почти всегда означает не поломку, а конфликт — программа пытается записать в регистр сведений
строку с таким же набором ключевых полей, как у уже существующей.
Разберём, почему это происходит в 1С (8.3 и 8.2), что делать по шагам и в чём особенность ошибки в 1С ЗУП. Проверенные способы — от безопасных к радикальным.
Что означает ошибка и почему она возникает
Регистр сведений хранит данные в разрезе измерений. Комбинация измерений (а у периодического регистра — ещё и период, у подчинённого регистратору — и документ-регистратор) образует набор ключевых полей. Он должен быть уникальным.
Когда документ при проведении пытается добавить вторую строку с той же комбинацией, платформа отвергает запись и выдаёт:
Запись с такими ключевыми полями существует!
Типичные причины:
- 🔁 Дубли в регистре — две записи с одинаковыми измерениями и периодом уже лежат в базе.
- 🧩 Ошибка в данных документа — например, дважды указан один сотрудник, договор или период.
- 🛠 Баг конфигурации или платформы — лечится обновлением до актуального релиза.
- 💾 Повреждение таблиц после сбоя, отключения света, некорректной выгрузки/загрузки.
- 🧑💻 Ошибка в доработанном коде — при записи в регистр не выставлен режим замещения набора.
Само сообщение не подсказывает, какой именно регистр конфликтует. Его имя видно в полном тексте ошибки или в журнале регистрации — начинайте разбор именно с него.
«Запись с такими ключевыми полями существует» в 1С 8.3 — что делать по шагам
Идём от безопасного к радикальному. Перед любыми действиями сделайте резервную копию базы .
1. Перепровести документ
Иногда конфликт снимается простым перепроведением. Откройте документ, отмените проведение, затем проведите заново. Если рядом есть документы за тот же период по тому же объекту — перепроведите и их (Ещё → Провести).
2. Обновить конфигурацию
Часть таких ошибок — уже исправленные баги. Посмотрите текущий релиз в Главное → О программе и сравните с актуальным. Обновление нередко закрывает проблему без ручной чистки.
3. Тестирование и исправление
Запустите базу в режиме Конфигуратор → Администрирование → Тестирование и исправление. Отметьте:
- Реиндексация таблиц;
- Пересчёт итогов;
- Реструктуризация таблиц информационной базы;
- Проверка логической и ссылочной целостности.
Режим — «Тестирование и исправление». Для файловой базы дополнительно помогает chdbfl.exe из каталога установки платформы (C:\Program Files\1cv8\...\bin\chdbfl.exe) с галочкой «Исправлять».
4. Проверить сам документ
Откройте табличные части и реквизиты. Частый случай — одна и та же строка (сотрудник, договор, показатель) продублирована вручную. Уберите дубль — и запись пройдёт.
Быстрая диагностика по симптому
Движения.РегистрИмя.Записывать = Истина и режим замещения набора, либо предварительно очищайте набор перед добавлением строк.Как найти и удалить дубли в регистре сведений
Когда конфликтный регистр известен, дубли ищут запросом. Через консоль запросов сгруппируйте записи по измерениям и периоду и оставьте группы, где КОЛИЧЕСТВО(*) > 1:
ВЫБРАТЬ
Период, Измерение1, Измерение2, КОЛИЧЕСТВО(*) КАК Кол
ИЗ
РегистрСведений.ИмяРегистра
СГРУППИРОВАТЬ ПО
Период, Измерение1, Измерение2
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
Найденные дубли удаляют через обработку «Удаление помеченных объектов» (если регистр независимый) или перепроведением документа-регистратора после чистки его движений.
Прямое редактирование записей регистра в рабочей базе — крайняя мера. Делайте это только на копии и только если понимаете структуру данных.
Особенности ошибки в 1С ЗУП (регистр сведений в ЗУП)
В 1С ЗУП 8.3 (и в ЗКГУ 3.1) сообщение Запись с такими ключевыми полями существует чаще всего ловят при проведении:
- планового штатного расписания (ПШР) и кадровых приказов;
- начислений и удержаний с пересекающимися периодами действия;
- документов, где один сотрудник или договор попал в строки дважды.
Проверьте периоды действия плановых начислений: если два документа задают одно начисление на один и тот же интервал — платформа не даст записать второе. Разведите периоды или уберите дубль.
Отдельная ловушка — подчинённый регистр сведений: там в ключ входит ещё и регистратор, поэтому «одинаковыми» окажутся строки одного документа с совпадающими измерениями. Ищите дубль внутри самого документа.
Частые ошибки и как их избежать
- ❌ Правят записи регистра напрямую в рабочей базе без копии → 💡 сначала архив, потом изменения.
- ❌ Перепроводят один документ и бросают → 💡 перепроводите цепочку за период по возрастанию даты.
- ❌ Игнорируют релиз → 💡 сверьте версию конфигурации, обновление часто и есть решение.
- ❌ В доработке пишут в регистр без режима замещения → 💡 очищайте набор или используйте
Записывать = Истинас корректным ключом.
Если не помогло
Когда стандартные шаги не сняли ошибку:
- Сохраните полный текст ошибки — там указано имя регистра и набор полей.
- Откройте
Журнал регистрациии найдите запись об ошибке с деталями (какой документ, какое движение). - Воспроизведите проблему на свежей копии базы — так безопаснее экспериментировать.
- Если база на СУБД (PostgreSQL, MS SQL) — проверьте её средствами СУБД, повреждение индекса тоже даёт такой эффект.
- Нетиповая конфигурация или своя доработка — разбирайте код записи движений в отладчике.