Если 1С пишет «Ошибка СУБД: файл базы данных поврежден» или просто перестала открывать файловую базу, почти всегда причина в том, что файл 1Cv8.1CD испортился при аварийном завершении работы: пропал свет, выключили компьютер с базой, оборвалась сеть. Порядок действий такой: сначала сделать копию файла 1Cv8.1CD, затем проверить его штатной утилитой chdbfl.exe с галочкой «Исправлять обнаруженные ошибки», при необходимости запустить тестирование и исправление в конфигураторе и сразу выгрузить базу в dt. Если есть свежая резервная копия, часто проще и надёжнее восстановиться из неё.

Ниже разбираю каждый шаг подробно и объясняю, где можно сделать хуже, чем было.

Почему файл базы 1С повреждается

Файловая база 1С — это один большой файл 1Cv8.1CD в папке информационной базы. Пока с ним работают, платформа постоянно пишет в него данные. Если запись прервалась на середине, часть страниц файла остаётся в неконсистентном состоянии, и при следующем обращении к ним 1С сообщает об ошибке СУБД.

Типовые причины, которые я встречаю на практике и которые описывают методисты 1С:

  • Отключение электричества без бесперебойника на компьютере или сервере, где лежит база.
  • Выключение «главного» компьютера, на котором хранится база, пока другие пользователи продолжают работать по сети.
  • Обрыв сети в момент записи: Wi-Fi, слабый роутер, VPN до удалённого офиса.
  • Проблемы диска: битые сектора, переполненный диск, сбойная флешка или внешний диск, если база лежит там.
  • Вмешательство сторонних программ: антивирус, облачная синхронизация (Яндекс Диск, OneDrive, Google Drive) или резервное копирование, которые трогают открытый файл базы.

Характерный признак: ошибка вылезает не сразу при запуске, а при открытии или проведении конкретного документа, создании элемента справочника, формировании отчёта. Это значит, что повреждена часть таблиц, а не весь файл. Если же база не открывается совсем, повреждение затронуло служебные структуры.

Шаг 0. Ничего не трогайте, пока не сделали копию

Это главное правило. И утилита проверки, и тестирование в конфигураторе меняют файл. Если что-то пойдёт не так, без копии откатиться будет некуда.

  1. Попросите всех пользователей выйти из 1С. Убедитесь, что на компьютере с базой не висят процессы 1cv8.exe или 1cv8c.exe.
  2. Найдите папку базы. Путь виден внизу окна запуска 1С, когда база выделена в списке.
  3. Скопируйте всю папку базы, а не только файл 1Cv8.1CD, на другой диск или в другую папку. Назовите копию понятно, например с датой.
  4. Если есть автоматические бэкапы, проверьте, какая копия последняя и открывается ли она. Иногда правильный ответ — просто восстановиться из неё и заново внести данные за день.

Не запускайте проверку на единственном экземпляре файла и не копируйте базу в облачную папку, пока не убедились, что синхронизация не трогает исходник.

Шаг 1. Проверка и исправление утилитой chdbfl.exe

chdbfl.exe — штатная утилита проверки физической целостности файловой базы. Она ставится вместе с платформой, скачивать её отдельно не нужно и небезопасно: под видом утилиты в интернете легко поймать вредоносный файл.

  1. Откройте папку bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin (у 32-битной платформы — C:\Program Files (x86)\1cv8\...). Номер версии — ваш.
  2. Запустите chdbfl.exe.
  3. В поле «Имя файла БД» укажите файл 1Cv8.1CD повреждённой базы.
  4. Сначала можно запустить проверку без исправления, чтобы увидеть масштаб проблемы. Затем включите галочку «Исправлять обнаруженные ошибки» — без неё утилита только проверяет.
  5. Нажмите «Выполнить» и дождитесь окончания. На большой базе это занимает долго, не прерывайте процесс.

Если база лежит на сервере или в общей папке, запускайте утилиту на том компьютере, где лежит файл. Если кто-то остался в базе, проверка не начнётся и появится ошибка совместного доступа.

После завершения откройте базу и попробуйте сделать то, на чём вылезала ошибка: открыть и провести тот же документ. Сообщение «Ошибок не обнаружено» не всегда значит, что всё в порядке — проверяйте на практике.

Важно: chdbfl.exe работает только с файловыми базами. Если у вас клиент-серверный вариант на MS SQL или PostgreSQL, утилита не подходит — там повреждения ищут средствами СУБД.

Проверка повреждённого файла базы 1С утилитой chdbfl на копии файла
Проверка повреждённого файла базы 1С утилитой chdbfl на копии файла

Шаг 2. Тестирование и исправление в конфигураторе

Если база открывается хотя бы в конфигураторе, следующий шаг — логическая проверка.

  1. Запустите базу в режиме «Конфигуратор».
  2. Откройте «Администрирование» → «Тестирование и исправление».
  3. Выберите режим «Тестирование и исправление ошибок». Режим «Только тестирование» лишь покажет проблемы.
  4. Отметьте проверки по ситуации:
  • Реиндексация таблиц — восстанавливает индексы, сбитые при сбое;
  • Проверка логической целостности — ищет ошибки в структуре таблиц после внезапного выключения или обрыва сети;
  • Проверка ссылочной целостности — находит битые ссылки на несуществующие объекты; для них выбирается действие: создать объекты-заглушки, очистить ссылки или удалить объекты;
  • Пересчёт итогов — помогает, когда отчёты показывают то, чего нет в документах;
  • Сжатие таблиц — физически удаляет записи, помеченные на удаление, и уменьшает файл;
  • Реструктуризация таблиц — пересоздаёт таблицы и переносит в них данные, иногда это лечит то, что не исправили другие проверки.
  1. Запустите и дождитесь окончания.

Со ссылочной целостностью будьте осторожны: вариант «Удалить объекты» может удалить документы, которые ещё можно было восстановить вручную. Если не уверены, выбирайте «Создать объекты» — заглушки потом видно и можно разобрать.

Шаг 3. Выгрузка в dt и загрузка в новую базу

Даже если база после исправления открылась, я сразу делаю выгрузку в файл dt. Это одновременно и свежая резервная копия, и способ «пересобрать» файл базы начисто.

  1. В конфигураторе: «Администрирование» → «Выгрузить информационную базу». Сохраните файл .dt в надёжное место.
  2. Если выгрузка прошла без ошибок, создайте новую пустую информационную базу в окне запуска.
  3. Откройте её в конфигураторе и выполните «Администрирование» → «Загрузить информационную базу», указав сохранённый dt.
  4. Проверьте новую базу: остатки, последние документы, отчёты. Если всё в порядке, работайте в ней, а старую папку оставьте в архиве.

Если выгрузка в dt падает с ошибкой, значит повреждения остались, и это сигнал к следующему шагу.

Таблица: сообщение, причина, что делать

Что видитеВероятная причинаЧто делать
«Ошибка СУБД: файл базы данных поврежден» при открытии документаПовреждены отдельные таблицы после сбояКопия папки, chdbfl с исправлением, затем тестирование и исправление
База не открывается ни в пользовательском режиме, ни в конфигуратореПовреждены служебные структуры файлаКопия, chdbfl; если не помогло — восстановление из бэкапа или специалист
chdbfl не запускает проверку, ругается на доступВ базе остались пользователи или процесс 1СЗакрыть все сеансы и процессы, запускать на компьютере с базой
Отчёты показывают странные остатки после сбояСбиты итоги регистровПересчёт итогов в тестировании и исправлении
Выгрузка в dt прерывается с ошибкойПовреждение не устраненоНе работать в базе, восстанавливаться из копии или звать специалиста
Ошибка повторяется раз в несколько недельПричина не устранена: свет, сеть, диск, синхронизацияНайти источник сбоев, настроить бесперебойник и бэкапы

Когда нужна помощь специалиста

Самостоятельно стоит пройти шаги выше. Остановиться и позвать специалиста я советую, если:

  • chdbfl и тестирование не помогли, а свежей резервной копии нет;
  • база не открывается в конфигураторе и выгрузить её в dt невозможно;
  • в базе критичные данные за большой период, и ошибка в выборе действий может стоить недель ручного ввода;
  • повреждение повторяется и непонятно, откуда оно берётся.

В таких случаях данные часто удаётся вытащить из повреждённого файла по частям: найти уцелевшие таблицы, перенести их в чистую базу и разобраться с битыми документами. Это кропотливая работа, и делать её нужно строго на копии файла. Прямые попытки «наугад» на оригинале чаще всего ухудшают ситуацию.

Как не попасть в это снова

  • Поставьте бесперебойник на компьютер или сервер с базой.
  • Не выключайте «главный» компьютер, пока другие работают в базе.
  • Не держите рабочую базу в облачной папке с синхронизацией.
  • Настройте автоматическое резервное копирование с хранением нескольких копий на другом диске — подробно разбирал в статье про настройку резервного копирования 1С.
  • Если в базе по сети работает много людей одновременно, задумайтесь о клиент-серверном варианте или терминальном доступе: файловая база по сети особенно чувствительна к обрывам.

Короткий чек-лист

  1. Все вышли из базы, процессов 1С нет.
  2. Скопирована вся папка базы на другой диск.
  3. Проверена последняя резервная копия — может, проще восстановиться из неё.
  4. chdbfl.exe из папки bin платформы, галочка «Исправлять обнаруженные ошибки».
  5. Конфигуратор: «Администрирование» → «Тестирование и исправление».
  6. Выгрузка в dt и загрузка в новую чистую базу.
  7. Проверка остатков и последних документов.
  8. Устранена причина сбоя и настроены бэкапы.

Если восстановить базу самостоятельно не получается или страшно потерять данные, помогу удалённо: восстановлю повреждённую базу 1С, настрою резервное копирование, чтобы такой сбой больше не стоил вам данных, или просто подскажу порядок действий на консультации.