Администрирование · 12 мин
Ошибка «Запись с такими ключевыми полями существует» в 1С: что это значит и как исправить
Что означает ошибка «Запись с такими ключевыми полями существует» в 1С, почему она возникает при записи документов и регистров, и как устранить её самостоятельно.
Ошибка «Запись с такими ключевыми полями существует» появляется в 1С в момент сохранения объекта: документа, элемента справочника, записи регистра сведений. Платформа сообщает, что в базе данных уже есть строка с тем же набором ключевых (уникальных) полей, и отказывается создавать дубликат. Это защитный механизм целостности данных, а не сбой программы.
Ключевые поля — это комбинация измерений, периода и других реквизитов, которая должна быть уникальной. Например, в периодическом регистре сведений «Курсы валют» не может быть двух записей на одну дату по одной валюте. Если пользователь или обмен данными пытается записать вторую такую строку, платформа останавливает операцию.
Сообщение часто пугает бухгалтеров и менеджеров, потому что появляется внезапно — при проведении документа, загрузке выписок или обмене с другой базой. Однако в большинстве случаев причина лежит в дублировании данных, и её можно найти и устранить штатными средствами без вмешательства программиста.
Что именно проверяет платформа при записи
Каждый объект в 1С имеет набор полей, образующих уникальный ключ. У справочника это код (если включён контроль уникальности кода) и ссылка. У документа — номер в пределах периода и организации. У регистра сведений — комбинация измерений, а для периодического регистра ещё и поле «Период». У регистров накопления и бухгалтерии уникальность обеспечивается парой «регистратор + номер строки».
Когда пользователь нажимает «Записать», платформа выполняет проверку: существует ли уже строка с таким ключом. Если да — транзакция откатывается и выводится сообщение об ошибке. Важно понимать: проверяется именно комбинация полей, а не весь объект целиком. Два элемента справочника могут иметь одинаковое наименование, это не запрещено, но не могут иметь одинаковый код при включённой уникальности.
Текст ошибки обычно содержит имя таблицы и значения ключевых полей. Например: «Запись с такими ключевыми полями существует! : КурсыВалют: 01.03.2026, USD». Эти значения — главная подсказка для поиска проблемной записи.
Типичные сценарии возникновения ошибки
Ручной ввод дублирующей записи
Самая частая ситуация — пользователь вводит в регистр сведений строку, которая уже существует. Например, добавляет ответственное лицо организации на дату, когда запись по этой организации и этому типу ответственного уже создана. Или вводит цену номенклатуры на ту же дату и тот же тип цен повторно.
Решение простое: открыть регистр, найти существующую запись по значениям из текста ошибки и отредактировать её вместо создания новой. Если нужна история изменений, используйте механизм периодических регистров корректно — новая запись должна иметь другую дату.
Обмен данными между базами
Вторая по частоте причина — синхронизация: между УТ и БП, с сайтом, с мобильным приложением. Объект, изменённый в обеих базах, при обмене может попытаться записаться поверх уже существующей записи регистра, и возникает конфликт ключей. Также ошибка появляется, когда в узле обмена регистрация изменений накопила дубли из-за прерванных сеансов обмена.
Здесь ошибка часто проявляется не у пользователя, а в журнале регистрации: обмен завершается с ошибкой, данные не загружаются. Признак — растущая очередь сообщений обмена и жалобы пользователей, что документы «не приезжают» из другой базы.
Проведение документа и движения по регистрам
Ошибка возникает при проведении документа, если его движения конфликтуют с уже существующими. Классический случай — документ скопировали, изменили дату, а старые движения остались из-за сбоя, или документ записывается вторым экземпляром с тем же номером. Ещё вариант: внешняя обработка или загрузка из Excel создала записи регистра напрямую, а теперь документ пытается сформировать те же строки штатно.
Миграции и обновления
При переходе на новую версию конфигурации обработчики обновления иногда создают служебные записи. Если обновление прерывалось и запускалось повторно, обработчик может попытаться создать уже существующую запись. Обычно это видно в журнале регистрации сразу после обновления базы.
Найти существующую запись по значениям из текста ошибки
Проверить очередь обмена и повторную регистрацию объектов
Проверить, нет ли записей регистра, созданных обходом документа
Посмотреть журнал регистрации по событию обновления
Как найти проблемную запись
Первый шаг — внимательно прочитать текст ошибки. В нём указаны имя таблицы (регистра или справочника) и значения ключевых полей. Скопируйте эти значения: дату, наименование измерения, код.
Далее откройте соответствующий регистр или справочник. Для регистра сведений удобнее всего воспользоваться отбором: установите фильтр по измерениям и периоду из текста ошибки. Если запись нашлась — вы видите дубль и можете решить, какая из двух версий данных правильная.
Если ошибка возникает при обмене и запись не видна в интерфейсе, откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации), отфильтруйте по уровню «Ошибка» за нужный период. Там будет полный текст с контекстом: какой объект загружался, из какого узла обмена.
В файловой базе без доступа к конфигуратору поиск ограничен интерфейсом. В клиент-серверной базе администратор может выполнить запрос через консоль запросов, но это уже зона ответственности специалиста.
- 1Скопируйте из текста ошибки имя таблицы и значения ключевых полей
- 2Откройте указанный регистр сведений или справочник
- 3Установите отбор по значениям из ошибки (период, измерения, код)
- 4Сравните найденную запись с той, которую пытаетесь создать
- 5Определите, какая версия данных верна, и исправьте или удалите лишнюю
- 6Повторите исходное действие и убедитесь, что ошибка ушла
Способы устранения в зависимости от причины
Если дубль создан вручную, достаточно отредактировать существующую запись или удалить её, если она ошибочна. Удаление записи регистра сведений безопасно, только если она не используется в расчётах — например, удаление записи о курсе валюты изменит пересчёт документов за эту дату.
При конфликте в обмене данными порядок действий другой. Сначала проверьте, есть ли в обеих базах объект с одинаковым ключом, но разными ссылками — это классический дубль по синхронизации. В типовых конфигурациях для этого есть обработка поиска и удаления дублей (раздел «Администрирование» → «Обслуживание» → «Корректировка данных» → «Поиск и удаление дублей»). После объединения дублей повторите синхронизацию.
Если ошибка вызвана движениями документа, попробуйте последовательность: распровести документ, записать его, провести заново. Если не помогает — проверьте, не создавались ли записи регистра вручную или обработкой. Прямые записи в регистр, подчинённый регистратору, без самого документа-регистратора — признак некорректной доработки.
При повторном запуске обработчика обновления помогает отложенное обновление: зайдите в «Администрирование» → «Результаты обновления программы», посмотрите, какой обработчик завершился с ошибкой, и перезапустите его после устранения дубля. Иногда достаточно просто дождаться завершения отложенных обработчиков.
Сравнение подходов к устранению
Подходит при ручном дубле; сохраняет историю, но требует понять, какие данные верны
Быстро, но опасно, если запись участвует в расчётах или связана с документами
Правильный путь при конфликтах обмена; объединяет ссылки во всех объектах базы
Помогает при конфликте движений; не решает проблему прямых записей в регистр
Чего делать не стоит
Не пытайтесь обойти ошибку, многократно нажимая «Записать» или «Провести» — результат не изменится, а в журнале регистрации накопятся бесполезные ошибки. Не изменяйте ключевые поля «наугад», например не сдвигайте дату записи на минуту, лишь бы сохранить: это искажает учётные данные и создаёт скрытые проблемы в отчётах.
Не удаляйте записи регистров напрямую через внешние обработки, не разобравшись в связях. Удаление строки из регистра бухгалтерии или накопления разрушит проводки и остатки, и восстановить их можно будет только перепроведением всех документов за период или из резервной копии.
Не отключайте контроль уникальности в конфигураторе ради устранения ошибки. Это снимает защиту целостности данных и приводит к размножению дублей, которые потом придётся вычищать вручную по всей базе.
Профилактика и проверка результата
После устранения ошибки проверьте результат: повторите действие, которое вызывало ошибку, и убедитесь, что объект записывается. Затем проверьте связанные данные — если правили регистр сведений с ценами, сформируйте отчёт по ценам; если чинили обмен, выполните полный цикл синхронизации и посмотрите журнал на предмет новых ошибок.
Для профилактики при обменах настройте в типовых конфигурациях автоматическое разрешение коллизий или хотя бы регулярно просматривайте предупреждения синхронизации. Большинство конфликтов ключей при обмене видны заранее в виде «проблем с сопоставлением объектов» — их разбор на ранней стадии предотвращает ошибки записи.
Полезно периодически запускать штатный поиск дублей по справочникам «Номенклатура», «Контрагенты», «Физические лица» — именно дубли в этих справочниках чаще всего провоцируют конфликты при синхронизации. Также следите за корректностью внешних загрузок: обработки загрузки из Excel должны проверять существование записи перед созданием новой.
Как проверить результат
Объект записывается без сообщений об ошибке
Ошибка повторяется с теми же ключевыми полями
Нет новых ошибок записи за период синхронизации
Ошибки появляются по другим объектам — проблема системная
Данные корректны, история изменений сохранена
Пропали записи или изменились итоги за прошлые периоды
Часто задаваемые вопросы
Ошибка появляется, хотя я вижу только одну запись в регистре. Почему?
Скорее всего, вторая запись создаётся программно — обменом, обработкой или фоновым заданием в тот же момент. Проверьте журнал регистрации: там видно, какой сеанс и какое действие конфликтует с вашим. Также возможен вариант, что запись существует с незаполненным или отличающимся по типу значением измерения, которое визуально выглядит одинаково.
Можно ли узнать, какие именно поля являются ключевыми для конкретного регистра?
Да. Откройте конфигуратор, найдите нужный регистр сведений и посмотрите список его измерений — именно их комбинация вместе с периодом (для периодических регистров) образует ключ. Ресурсы и реквизиты в ключ не входят и могут совпадать у разных записей свободно.
Ошибка возникает при обмене с сайтом. Кто виноват — 1С или сайт?
Чаще всего причина в повторной выгрузке объекта, который на стороне 1С уже существует с другим идентификатором сопоставления. Проверьте таблицу соответствия объектов в настройках обмена и очистите устаревшие соответствия. Если после очистки ошибка сохраняется, проблему нужно разбирать на стороне модуля обмена.
Опасно ли удалять запись регистра сведений, чтобы устранить ошибку?
Зависит от регистра. Удаление записи независимого регистра сведений (например, штрихкода или настройки) обычно безопасно. Удаление записей, влияющих на расчёты — курсов валют, цен, параметров учётной политики, — изменит результаты пересчёта документов за соответствующие даты. Перед удалением такой записи зафиксируйте её значения, чтобы иметь возможность восстановить.
Ошибка появилась после обновления конфигурации у всех пользователей. Что делать?
Это признак незавершённого или повторно запущенного обработчика обновления. Откройте раздел «Администрирование» → «Результаты обновления программы» и проверьте статус отложенных обработчиков. Завершите или перезапустите проблемный обработчик. Если он снова завершается ошибкой, смотрите детали в журнале регистрации — там указана конкретная запись, на которой происходит конфликт.
Поможет ли тестирование и исправление базы при этой ошибке?
Обычно нет. Ошибка ключевых полей — это логический конфликт данных, а не повреждение таблиц. Тестирование и исправление имеет смысл запускать только если есть признаки физического повреждения базы: вылеты платформы, ошибки СУБД, нечитаемые записи. В остальных случаях нужен поиск и устранение дубля.
Что важно запомнить
Ошибка «Запись с такими ключевыми полями существует» — это срабатывание контроля уникальности, а не поломка. Найдите дубль по значениям из текста ошибки, устраните его подходящим способом и проверьте результат повторным выполнением действия. При массовом характере проблемы сделайте резервную копию и привлеките специалиста.