Что делать, если 1С пишет «Файл базы данных поврежден»
Содержание
Ошибку Файл базы данных поврежден в 1С 8.3 исправляют в таком порядке: закрыть все сеансы, скопировать файл 1Cv8.1CD в отдельную папку, проверить диск, запустить утилиту chdbfl.exe из папки bin платформы с флажком «Исправлять обнаруженные ошибки», а затем выполнить в Конфигураторе Администрирование → Тестирование и исправление. Если база всё равно не открывается — восстановить её из резервной копии или перенести данные в новую пустую базу.
Сообщение относится к файловому варианту: вся база хранится в одном файле 1Cv8.1CD, и повреждение его внутренней структуры платформа не может обойти сама. Чаще всего так заканчивается отключение света во время записи, обрыв сети при работе с базой в общей папке, сбой диска или вмешательство антивируса. В клиент-серверном варианте данные лежат в СУБД, и там диагностика другая — о ней коротко в конце.
Ни одного исправления не делайте на единственном экземпляре файла. Утилиты восстановления удаляют то, что не смогли прочитать. Если что-то пойдёт не так, без копии откатиться будет некуда.
Первые шаги: копия файла и проверка диска
Начните не с 1С, а с носителя. Если диск сыплется, любое восстановление базы на нём только добавит повреждений.
Шаг 1. Завершите работу с базой
- Попросите всех пользователей выйти из программы.
- Закройте Конфигуратор, если он открыт.
- Если база лежит в сетевой папке, убедитесь, что на других компьютерах не висят процессы
1cv8.exeили1cv8c.exe(Диспетчер задач → вкладка «Подробности»).
Если завершаете процессы принудительно, несохранённые документы у пользователей пропадут. Делайте это после предупреждения и лучше в нерабочее время.
Шаг 2. Скопируйте всю папку базы
Путь к базе виден в окне запуска 1С: выделите базу в списке — внизу окна появится строка File="D:\Base\Buh". Откройте эту папку и скопируйте её целиком, а не только 1Cv8.1CD. Внутри лежит ещё журнал регистрации (1Cv8Log), он понадобится для анализа.
Копию кладите на другой физический диск или флешку. Копия на тот же сбойный диск — плохая страховка.
Шаг 3. Проверьте диск
Признаки проблем с носителем: компьютер подвисает при копировании, файл копируется с ошибкой, в системном журнале есть предупреждения о диске.
- 🔍 Откройте
Просмотр событий → Журналы Windows → Системаи отфильтруйте события по источникамdiskиNtfs. Ошибки чтения-записи там — повод сначала менять диск. - 🩺 Посмотрите состояние SMART любой утилитой диагностики дисков. Растущее число переназначенных секторов — тревожный знак.
- 🛠 Проверьте файловую систему командой от имени администратора:
chkdsk D: /f
Для системного диска C: проверка запустится при следующей перезагрузке. Ключ /r (поиск сбойных секторов) идёт долго, на больших дисках — часами.
Если диск неисправен, сначала перенесите копию папки базы на исправный носитель, а все дальнейшие шаги выполняйте уже там.
Восстановление из резервной копии
Если свежая копия есть, это самый быстрый и надёжный путь. Утилиты восстановления возвращают структуру файла, но не гарантируют, что в базе не потеряются документы. Копия возвращает базу в точное состояние на момент её создания.
Где искать копии:
| Источник | Что это за файл | Как восстановить |
|---|---|---|
| Резервное копирование из программы | Архив с файлом базы или выгрузка .dt | В БП 3.0, ЗУП 3.1, УТ 11: Администрирование → Обслуживание → Резервное копирование и восстановление |
| Выгрузка из Конфигуратора | Файл .dt | Конфигуратор → Администрирование → Загрузить информационную базу |
| Копия перед обновлением | Выгрузка .dt или копия папки | Так же, как выше, в зависимости от формата |
| Ручная копия папки | Файл 1Cv8.1CD | Заменить повреждённый файл копией при закрытой базе |
| Теневые копии Windows | Предыдущая версия папки | Свойства папки → вкладка «Предыдущие версии», если защита включена |
Как действовать:
- Повреждённый файл не удаляйте — переименуйте, например, в
1Cv8_broken.1CD. - Восстановите копию в новую папку и подключите её в окне запуска кнопкой «Добавить» как отдельную базу.
- Проверьте, что база открывается и последние документы на месте.
- Определите, за какой период данные нужно ввести заново: всё, что создано после даты копии.
Загрузка .dt полностью заменяет данные в базе, куда вы её загружаете. Загружайте её в новую пустую базу, а не поверх рабочей.
Утилита chdbfl.exe: исправление структуры файла 1CD
Если копии нет или она слишком старая, переходите к утилите проверки физической целостности. Она входит в поставку платформы и лежит рядом с 1cv8.exe:
C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe
Вместо 8.3.xx.xxxx — номер вашей версии платформы. Запускайте утилиту из той же версии, которой открываете базу.
Порядок работы
- Убедитесь, что база закрыта у всех пользователей. Утилите нужен монопольный доступ к файлу.
- Запустите
chdbfl.exe. - В поле имени файла укажите путь к
1Cv8.1CD. - Сначала запустите проверку без флажка «Исправлять обнаруженные ошибки» — посмотрите масштаб повреждений.
- Затем поставьте флажок и нажмите «Выполнить» ещё раз.
- Дождитесь окончания. На базе в несколько гигабайт проверка может идти десятки минут — не прерывайте её.
Утилита выводит список найденных проблем по таблицам. Если она сообщает об ошибках в таблицах документов или регистров, часть записей при исправлении будет удалена. Это нормально для утилиты, но после неё обязательно нужна логическая проверка.
Тестирование и исправление в Конфигураторе
chdbfl.exe чинит только физическую структуру файла. Связи между объектами и итоги регистров проверяет Конфигуратор:
- Откройте базу в режиме «Конфигуратор».
- Выберите
Администрирование → Тестирование и исправление. - Отметьте реиндексацию таблиц, проверку логической и ссылочной целостности, пересчёт итогов и сжатие таблиц.
- Выберите режим «Тестирование и исправление».
- В блоках про ссылки на несуществующие объекты и частичную потерю данных выберите «Создавать объекты» — так битые ссылки станут видимыми, и их можно будет разобрать вручную.
- Нажмите «Выполнить».
Ту же проверку можно запустить без интерфейса, например ночью по расписанию:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Base\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -IBCompression /Out "D:\Logs\check.txt"
Результат проверки будет в файле check.txt.
Если Конфигуратор после chdbfl.exe всё ещё не открывает базу с той же ошибкой, повторите утилиту второй раз. Иногда первый проход исправляет одни таблицы, и только после этого видны ошибки в других.
chdbfl.exe с исправлением, затем тестирование и исправление в Конфигураторе..dt и загрузите в новую.Журнал регистрации и системные логи: ищем причину
Исправить файл мало — нужно понять, почему он сломался. Иначе ошибка вернётся.
Журнал регистрации базы
Он хранится в папке 1Cv8Log внутри каталога базы. В современных версиях 8.3 это файл 1Cv8.lgd, в базах, перешедших со старых версий, — набор файлов .lgf и .lgp.
Если база открывается, журнал смотрят в пользовательском режиме: Администрирование → Обслуживание → Журнал регистрации (БП 3.0, ЗУП 3.1, УТ 11). В Конфигураторе — Администрирование → Журнал регистрации.
Что искать:
- ⏱ Последние события перед сбоем: кто работал и что проводил. Аварийно завершённый сеанс без события «Сеанс. Завершение» — подсказка, что программу закрыли некорректно.
- 📄 Документы, созданные в день сбоя. Их нужно проверить первыми: именно они чаще всего теряются при исправлении.
- 🔄 Обновление конфигурации или обмен данными в момент сбоя. Прерванное обновление — частая причина повреждения.
Если основная база не открывается, подключите копию папки как отдельную базу: журнал из 1Cv8Log можно читать через неё после восстановления.
Системные журналы Windows
В Просмотр событий проверьте время, когда база перестала открываться:
- 🔌
Kernel-Power— неожиданная перезагрузка или отключение питания; - 💽
disk,Ntfs— ошибки чтения и записи; - 🌐 ошибки сетевого подключения на клиентах, если база лежит в общей папке.
Совпадение по времени с одним из этих событий почти всегда указывает на причину.
Перенос данных в новую пустую базу
Этот способ помогает, когда структура файла восстановлена, но база ведёт себя нестабильно: вылетает на отдельных объектах, медленно открывается, ошибка возвращается после исправления. Идея простая — получить совершенно новый файл 1Cv8.1CD, собранный заново, а не залатанный старый.
Вариант 1. Через выгрузку .dt
Самый простой и надёжный путь, если Конфигуратор открывает базу:
- В Конфигураторе повреждённой базы:
Администрирование → Выгрузить информационную базу, сохраните файл.dt. - В окне запуска создайте новую пустую базу: «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации».
- Откройте её в Конфигураторе:
Администрирование → Загрузить информационную базу, укажите выгруженный.dt. - Проверьте работу новой базы и только после этого замените ею рабочую.
При загрузке платформа строит файл с нуля, поэтому накопленные «шрамы» внутренней структуры уходят. Если выгрузка .dt падает с ошибкой — вернитесь к chdbfl.exe и тестированию.
Вариант 2. Конфигурация плюс данные по частям
Если .dt не выгружается, можно спасти хотя бы часть данных:
- Сохраните конфигурацию:
Конфигурация → Сохранить конфигурацию в файл(файл.cf). Если основная конфигурация снята с поддержки или доработана, это единственный способ не потерять доработки. - Создайте новую базу из этого
.cfили из шаблона той же типовой конфигурации того же релиза. - Перенесите справочники и документы обработкой выгрузки и загрузки данных в XML. Она переносит объекты выборочно, поэтому таблицы, которые не читаются, можно пропустить.
- Остатки по счетам, которые не удалось перенести документами, введите заново на дату начала периода.
При загрузке в XML документы приходят непроведёнными или с движениями, как их выгрузили. После переноса проведите документы за период через групповое перепроведение и сверьте остатки с последней сданной отчётностью.
Как сравнить способы
| Способ | Когда подходит | Риски |
|---|---|---|
| Восстановление из копии | Есть свежая копия | Потеря данных после даты копии |
chdbfl.exe + тестирование | Копии нет, повреждения локальные | Утилита удаляет нечитаемые записи |
Выгрузка и загрузка .dt | База открывается, но нестабильна | Нет, если выгрузка прошла без ошибок |
| Новая база + XML | .dt не выгружается | Долго, нужна сверка остатков |
Профилактика: как не столкнуться с повреждением базы снова
Повреждение файла почти всегда связано с окружением, а не с самой 1С. Вот что реально снижает риск.
Питание и железо
- 🔋 Источник бесперебойного питания для компьютера, где лежит база. Отключение света во время записи — главная причина повреждений.
- 💽 Локальный диск SSD вместо старого HDD или USB-накопителя.
- 🧯 Регулярная проверка SMART, хотя бы раз в квартал.
Сеть и общие папки
- 🌐 Файловая база в общей папке — рабочее решение для 3–5 пользователей в проводной сети. По Wi‑Fi и через VPN с нестабильным каналом базу в общей папке не открывайте: обрыв во время записи бьёт файл.
- 👥 Если пользователей больше, переходите на клиент-серверный вариант или публикацию через веб-сервер, где с файлом работает один процесс.
- 📁 Не держите базу в папке, которую синхронизируют облачные клиенты (Яндекс Диск, OneDrive и подобные). Синхронизация открытого файла приводит к повреждению.
Антивирус
Добавьте папку базы и расширения .1CD, .lgd, .lgp в исключения антивируса. Проверка файла «на лету» во время записи 1С — одна из известных причин блокировок и сбоев.
Резервное копирование
Настройте автоматическое копирование в программе: Администрирование → Обслуживание → Резервное копирование и восстановление. Задайте расписание (например, ежедневно в конце дня), каталог на другом диске и срок хранения, например последние 10 копий.
Дополнительно раз в неделю делайте выгрузку .dt через Конфигуратор. Она меньше по объёму и заодно проверяет, что база читается целиком.
Копию, которую ни разу не пробовали восстановить, нельзя считать копией. Раз в месяц разворачивайте её в отдельную базу и открывайте.
Если база клиент-серверная
В клиент-серверном варианте файла 1Cv8.1CD нет, и chdbfl.exe не применяется. Похожие симптомы там проверяют средствами СУБД:
- для MS SQL Server — командой
DBCC CHECKDBдля базы данных информационной базы, её запускает администратор СУБД; - для PostgreSQL — по журналу сервера СУБД и восстановлением из резервной копии СУБД.
Логическую проверку в Конфигураторе (Тестирование и исправление) выполняют так же, как для файловой базы. Перед ней нужно установить блокировку сеансов в консоли кластера — у работающих пользователей сеансы будут завершены.
Частые вопросы
Можно ли запускать chdbfl.exe, пока пользователи работают в базе?
Где взять chdbfl.exe, если её нет в папке bin?
Сколько данных теряется после исправления?
Помогает ли от этой ошибки очистка кэша 1С?
1Cv8.1CD очисткой кэша не исправить.