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