Администрирование · 8 мин
База повреждена в 1С 8.3: как исправить и восстановить данные
Что делать, если база 1С 8.3 повреждена: диагностика, chdbfl, тестирование и исправление, восстановление из бэкапа. Пошаговая инструкция и предупреждения о рисках.
Сообщение «ошибка формата потока», «файл базы данных повреждён» или внезапный аварийный выход из 1С при открытии документа — типичные признаки повреждения файловой базы 1С 8.3. Причины обычно стандартные: аварийное завершение работы, отключение электричества, сбой сети при размещении файла на общем ресурсе, нехватка места на диске, работа антивируса с файлом 1Cv8.1CD или аппаратные проблемы диска.
Хорошая новость: в большинстве случаев базу удаётся восстановить штатными средствами — утилитой chdbfl.exe и режимом «Тестирование и исправление» в конфигураторе. Плохая новость: при неправильных действиях (запуск исправления без копии, повторные попытки записи в повреждённый файл) можно усугубить ситуацию и потерять данные, которые ещё можно было спасти.
Ниже — последовательность действий от диагностики до восстановления, с указанием границ, где самостоятельная работа безопасна, а где нужна копия и осторожность.
Почему повреждается файловая база 1С
Файловая база 1С 8.3 — это один файл 1Cv8.1CD, в котором хранятся и конфигурация, и все данные. Любое прерывание записи в этот файл (выключение питания, обрыв сети, зависание процесса) оставляет его в несогласованном состоянии. Особенно уязвимы базы, размещённые на сетевых дисках и открытые несколькими пользователями одновременно.
Дополнительные факторы риска: переполнение диска во время записи, работа антивируса, который блокирует или изменяет файл в момент обращения, сбои контроллера диска и битые сектора. Если база падает регулярно, сначала устраните причину — иначе восстановление будет временным.
Сначала очистите кэш, затем проверьте chdbfl
Тестирование и исправление в конфигураторе
chdbfl, при неудаче — восстановление из копии
Проверить диск на ошибки, затем chdbfl
Первые действия: остановиться и сделать копию
Прежде чем запускать любые средства исправления, завершите все сеансы пользователей и скопируйте файл 1Cv8.1CD в отдельную папку. Это единственная страховка: утилиты исправления изменяют файл безвозвратно, и если результат окажется хуже исходного состояния, откат будет возможен только с копии.
Проверьте свободное место на диске — для работы утилит и тестирования нужен запас, сопоставимый с размером самой базы. Также убедитесь, что диск физически исправен: если база лежит на диске с битой секторами, сначала скопируйте файл на здоровый носитель и работайте уже там.
Исправление утилитой chdbfl.exe
Chdbfl — штатная утилита проверки физической целостности файловой базы, входящая в состав платформы. Она находится в каталоге bin установленной версии платформы, например: C:\Program Files\1cv8\8.3.22.xxxx\bin\chdbfl.exe.
Запустите утилиту, укажите путь к файлу 1Cv8.1CD, установите флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить». Утилита проверит физическую структуру файла и попытается устранить повреждения. Процесс на больших базах занимает заметное время — не прерывайте его.
- 1Завершите все сеансы и сделайте копию 1Cv8.1CD
- 2Запустите chdbfl.exe из каталога bin платформы
- 3Укажите путь к файлу базы и включите «Исправлять обнаруженные ошибки»
- 4Дождитесь завершения и прочитайте отчёт
- 5Попробуйте открыть базу в конфигураторе и в режиме предприятия
Если утилита сообщила, что ошибок не обнаружено, но база по-прежнему не открывается — проблема может быть не в файле, а в кэше метаданных. Удалите базу из списка в окне запуска и добавьте заново, либо очистите папки кэша в профиле пользователя (каталоги вида 1cv8 в %APPDATA% и %LOCALAPPDATA% с характерными GUID-именами).
Тестирование и исправление в конфигураторе
Если физическая структура файла в порядке, но в данных есть логические повреждения (битые ссылки, ошибки в таблицах), используется встроенный механизм конфигуратора: «Администрирование → Тестирование и исправление». Работает он только в монопольном режиме.
Для начала выберите проверку «Реиндексация таблиц информационной базы» и «Проверка логической целостности информационной базы». В нижней части окна есть выбор режима: «Тестирование» (только диагностика, без изменений) и «Тестирование и исправление». Разумная тактика — сначала прогнать диагностику, оценить масштаб ошибок, и только потом запускать исправление.
Пункт «Проверка ссылочной целостности» может удалять объекты с битыми ссылками. Это опасная операция: если в отчёте диагностики много таких ошибок, лучше сначала выгрузить базу в dt, чтобы иметь возможность сравнить данные до и после.
Восстановление из резервной копии и выгрузка в dt
Если исправить базу не удалось, основной путь — откат на последнюю рабочую резервную копию с последующим переносом данных, введённых после её создания. Именно поэтому регламентное резервное копирование (хотя бы ежедневное) для файловых баз критично: восстановление из копии почти всегда быстрее и надёжнее многочасовых попыток реанимации.
Промежуточный вариант — выгрузка повреждённой базы в файл dt через конфигуратор («Администрирование → Выгрузить информационную базу»). Если выгрузка проходит успешно, её можно загрузить в новую пустую базу: при загрузке структура таблиц пересоздаётся, и часть физических повреждений «отсеивается». Если выгрузка обрывается на конкретной таблице — это указание, где именно сидит повреждение.
Как выбрать действие
Профилактика: как не вернуться к этой проблеме
Настройте автоматическое резервное копирование файла базы по расписанию с хранением нескольких поколений копий на другом физическом носителе. Копия на том же диске не спасёт ни от сбоя диска, ни от шифровальщика.
Исключите каталог базы из проверки антивируса в реальном времени, обеспечьте бесперебойное питание сервера или компьютера с базой, а при многопользовательской работе по сети рассмотрите переход на клиент-серверный вариант (PostgreSQL, MS SQL) — он устойчивее к сбоям и лучше масштабируется.
Частые вопросы
Можно ли исправить базу, если она лежит на сетевом диске?
Можно, но лучше сначала скопировать файл на локальный диск: сетевые задержки и обрывы замедляют работу утилит и создают риск повторного сбоя прямо во время исправления. После успешного восстановления верните файл на место.
Chdbfl не нашёл ошибок, но база всё равно не открывается. Что делать?
Наиболее вероятная причина — повреждённый кэш метаданных. Удалите базу из списка информационных баз и добавьте заново или очистите каталоги кэша в профиле пользователя. Если не помогло — запустите «Тестирование и исправление» в конфигураторе.
Чем отличается chdbfl от «Тестирования и исправления»?
Chdbfl проверяет физическую целостность файла 1Cv8.1CD — структуру страниц и таблиц. «Тестирование и исправление» работает на уровне логики данных: реиндексация, проверка ссылок, целостность объектов. Обычно их применяют последовательно: сначала chdbfl, затем ТиИ.
Потеряются ли данные при исправлении?
Chdbfl и реиндексация обычно не удаляют данные. Риск потери есть при проверке ссылочной целостности с включённым удалением объектов с битыми ссылками и при сильных физических повреждениях, когда часть страниц файла не восстанавливается. Поэтому копия перед исправлением обязательна.
Нет ни одной резервной копии, а база не восстанавливается. Есть ли шанс?
Шансы зависят от степени повреждения. Попробуйте выгрузку в dt (часто выгружается большая часть данных), затем загрузку в пустую базу. Если и это не проходит — остаётся обращение к специалистам по восстановлению данных 1С, которые работают с внутренней структурой файла напрямую.
Что важно запомнить
Порядок безопасного восстановления: копия файла → chdbfl → тестирование и исправление → выгрузка в dt → откат из резервной копии. Каждый шаг делайте только при наличии резервной копии, а повторяющиеся сбои лечите устранением причины — диска, сети или питания.