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