Ошибка 1С «Несоответствие версии или отсутствие записи базы данных»: решение
- При записи нового документа или проведении закрытия месяца выпадает фатальная ошибка.
- Текст сбоя:
Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных. - Один конкретный документ или справочник не открывается и блокирует работу отдела.
Причина ошибки простыми словами
Эта ошибка означает нарушение логической или физической целостности внутренних таблиц. Программа прочитала объект из памяти (версия 1), а когда попыталась записать его обратно, выяснилось, что в СУБД этой записи уже нет, либо ее параллельно изменил другой сеанс (версия изменилась), либо поврежден индекс таблицы.
Шаг 1. Проверка физической целостности файловой базы (chdbfl.exe)
Если у вас клиент-серверная SQL база — сразу переходите к Шагу 2.
- Полностью закройте 1С у всех пользователей.
- Перейдите в папку с установленной платформой:
C:\Program Files\1cv8\8.3.XX.XXXX\bin\. - Запустите утилиту chdbfl.exe.
- Укажите файл вашей базы
1Cv8.1CD, установите галочку «Исправлять обнаруженные ошибки» и нажмите Выполнить.
Шаг 2. Тестирование и исправление в Конфигураторе
- Запустите базу в режиме Конфигуратор.
- Обязательно сделайте копию: Администрирование → Выгрузить информационную базу.
- Перейдите в меню Администрирование → Тестирование и исправление.
- Отметьте пункты:
- Реиндексация таблиц информационной базы;
- Проверка логической целостности;
- Проверка ссылочной целостности (при наличии ссылок на несуществующие элементы — Очищать ссылки);
- Реструктуризация таблиц информационной базы.
- Нажмите кнопку Выполнить.
Частые вопросы (FAQ)
Что делать, если ошибка возникает только в одном конкретном документе?
Создайте точную копию этого документа вручную, проведите ее, а старый сбойный документ пометьте на удаление и сотрите через 'Удаление помеченных объектов'.
Помогает ли очистка кэша при этой ошибке?
Да, если несоответствие версии возникло из-за того, что тонкий клиент закэшировал старое состояние формы. Очистите папки %localappdata%\1C\1cv8.
Почему chdbfl пишет 'Ошибок не обнаружено', а 1С все равно падает?
Утилита chdbfl проверяет только бинарную разметку файла 1CD, но не проверяет внутреннюю логику связей между таблицами 1С. Логику исправляет только Тестирование и исправление в Конфигураторе.
Можно ли выполнять тестирование и исправление, пока работают пользователи?
Нет, тестирование требует строго монопольного доступа к базе данных.