К статье
Практический материал

Администрирование · 11 мин

Повреждена база данных 1С: как восстановить самостоятельно

Что делать, если повреждена база данных 1С: диагностика, восстановление из копии, chdbfl, тестирование и исправление, работа с SQL-базой.

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

Главное правило в этой ситуации — не паниковать и не запускать подряд все найденные в интернете утилиты. Любые действия по «лечению» выполняются только на копии базы, а не на единственном экземпляре. Неправильная последовательность действий способна превратить частично повреждённую базу, из которой ещё можно было извлечь данные, в окончательно нечитаемый файл.

Порядок восстановления зависит от типа базы: файловая (один файл 1Cv8.1CD в каталоге) или клиент-серверная (Microsoft SQL Server, PostgreSQL, Oracle). Ниже разобраны оба сценария, а также случаи, когда восстановление возможно только из резервной копии.

Шаг 1. Остановите работу и зафиксируйте состояние базы

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

Далее сделайте полную копию текущего состояния. Для файловой базы просто скопируйте весь каталог базы (или как минимум файл 1Cv8.1CD) в другое место — на другой диск или сетевой ресурс. Для SQL-базы создайте резервную копию средствами СУБД, даже если база частично повреждена: это зафиксирует отправную точку, к которой можно вернуться.

Проверьте свободное место на диске, где лежит база, и на диске, куда вы копируете данные. Переполнение диска — частая причина повреждения, и попытка восстановления на переполненном разделе может усугубить ситуацию.

Шаг 2. Определите тип и масштаб повреждения

Не все ошибки означают физическое повреждение файла. Иногда база не открывается из-за повреждённого кэша метаданных, блокировок или проблем с правами доступа. Прежде чем «лечить» базу, исключите простые варианты.

«Ошибка формата потока» при запускеЧасто повреждён кэш, а не сама база

Очистите кэш: удалите базу из списка в окне запуска и добавьте заново, либо очистите каталоги кэша в профиле пользователя

«Файл базы данных поврежден» с указанием пути к 1Cv8.1CDФизическое повреждение файла базы

Проверка chdbfl.exe и тестирование и исправление

База не открывается только по сети, локально работаетПроблема с сетью или правами доступа

Проверьте сетевое подключение и права на общую папку

Ошибки СУБД при подключенииПроблема на стороне SQL-сервера

Проверка целостности средствами СУБД и журналы сервера

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

Шаг 3. Проверьте файловую базу утилитой chdbfl.exe

Для файловых баз 1С поставляется специальная утилита проверки физической целостности — chdbfl.exe. Она находится в каталоге установки платформы, в подкаталоге bin (например, C:\Program Files\1cv8\<версия платформы>\bin\chdbfl.exe).

Утилита проверяет именно физическую структуру файла 1Cv8.1CD — целостность страниц данных. Это более низкий уровень, чем «Тестирование и исправление» в конфигураторе, поэтому chdbfl запускают первым.

Порядок работы с chdbfl.exe
  1. 1
    Закройте все сеансы 1С и убедитесь, что файл базы никем не открыт
  2. 2
    Сделайте копию файла 1Cv8.1CD в отдельный каталог
  3. 3
    Запустите chdbfl.exe из каталога bin установленной платформы
  4. 4
    Укажите путь к файлу 1Cv8.1CD
  5. 5
    Установите флажок «Исправлять обнаруженные ошибки» только после первого пробного прогона без исправления
  6. 6
    Запустите проверку и дождитесь завершения
  7. 7
    Проверьте результат: откройте базу в конфигураторе и запустите тестирование и исправление

Если chdbfl сообщает об ошибках и исправляет их, это не гарантирует сохранность всех данных: повреждённые страницы могут содержать потерянные записи. После работы утилиты обязательно проверьте критичные данные — остатки по счетам, последние документы, справочники.

Шаг 4. Запустите «Тестирование и исправление» в конфигураторе

Второй инструмент для файловой базы — встроенный механизм «Тестирование и исправление информационной базы». Откройте базу в конфигураторе (в монопольном режиме) и выберите в меню «Администрирование» пункт «Тестирование и исправление».

В диалоге доступны несколько проверок. Рекомендуется включать «Реиндексация таблиц», «Проверка логической целостности» и «Проверка ссылочной целостности». Режим «Проверка физической целостности» для файловой базы фактически дублирует chdbfl и выполняется долго — его часто пропускают, если утилита уже отработала.

Процедура может занимать от нескольких минут до нескольких часов в зависимости от размера базы. Не прерывайте её принудительно — это может добавить новые повреждения. По завершении изучите протокол: там перечислены найденные и исправленные ошибки.

Шаг 5. Восстановление клиент-серверной базы

Для баз на Microsoft SQL Server, PostgreSQL или Oracle утилита chdbfl не применяется — файл 1Cv8.1CD там отсутствует. Проверка целостности выполняется штатными средствами СУБД.

Для Microsoft SQL Server используется команда проверки целостности базы данных. Сначала запустите её в режиме только проверки, чтобы оценить масштаб проблемы, и лишь затем — с вариантами восстановления, понимая, что режим REPAIR_ALLOW_DATA_LOSS допускает потерю части данных.

sql
DBCC CHECKDB (N'ИмяБазы') WITH NO_INFOMSGS;

Для PostgreSQL проверяйте журналы сервера, при подозрении на повреждение индексов используйте REINDEX, а в тяжёлых случаях — восстановление из бэкапа через pg_restore. После работы средств СУБД дополнительно выполните «Тестирование и исправление» в конфигураторе 1С — логическая целостность прикладных данных проверяется только там.

Если у вас нет опыта администрирования СУБД, этот этап — разумная граница самостоятельной работы. Ошибочные команды на уровне СУБД способны уничтожить данные всего сервера, а не одной базы.

Шаг 6. Восстановление из резервной копии

Если проверки показывают массовые повреждения, а после исправления база не открывается или данные явно неполны, правильный путь — восстановление из резервной копии. Оцените «цену» отката: сколько данных введено с момента создания копии и реально ли их повторно внести.

Для файловой базы восстановление — это копирование каталога из архива на место рабочей базы. Для клиент-серверной — восстановление бэкапа средствами СУБД. Если копии делались выгрузкой в dt через конфигуратор, создайте пустую базу и загрузите dt-файл через «Администрирование → Загрузить информационную базу».

Сравнение способов восстановления

chdbfl + тестирование и исправление

Подходит при точечных повреждениях файловой базы; риск — потеря данных на повреждённых страницах

Восстановление из резервной копии

Самый надёжный вариант при массовых повреждениях; теряются данные, введённые после создания копии

Средства СУБД (DBCC, REINDEX)

Для клиент-серверных баз; требует навыков администрирования и осторожности с режимами ремонта

Выгрузка/загрузка dt

Помогает при повреждении кэша и структуры; не спасает, если сами данные физически испорчены

Шаг 7. Проверьте результат и закройте причину сбоя

Восстановление не заканчивается тем, что база открылась. Нужно убедиться, что данные целы и согласованны, а причина повреждения устранена — иначе ситуация повторится.

Контрольные точки

Как проверить результат

Открытие базы в режиме Предприятия
Норма

База открывается без ошибок, работают основные разделы

Тревожный признак

Ошибки формата потока, падения при открытии отдельных объектов

Отчёты по остаткам (ОСВ, складские остатки)
Норма

Остатки сходятся с ожидаемыми значениями на дату до сбоя

Тревожный признак

Пропавшие обороты, нулевые или искажённые остатки

Последние документы за период
Норма

Документы открываются и проводятся

Тревожный признак

Документы не открываются, ошибки при проведении

Повторное тестирование и исправление
Норма

Протокол без ошибок

Тревожный признак

Ошибки появляются снова — база требует восстановления из копии

Параллельно устраните первопричину: замените нестабильный диск, настройте источник бесперебойного питания, откажитесь от размещения файловой базы на сетевом диске при нестабильной сети, проверьте антивирусные исключения для каталога базы. И главное — настройте регулярное автоматическое резервное копирование с хранением копий на отдельном носителе.

Типичные ошибки
01
Запуск исправления без резервной копии — необратимая потеря данных при неудачном ремонте
02
Одновременная работа пользователей с базой во время проверки — новые повреждения поверх старых
03
Выбор «Удалять объект» при ссылочной целостности — безвозвратное удаление записей
04
Игнорирование состояния диска — повторное повреждение базы на сбойном носителе
05
Прерывание тестирования и исправления на середине — усугубление повреждений
Итог

Что важно запомнить

Сначала копия повреждённой базы, потом любые действия. Файловую базу проверяют chdbfl и «Тестированием и исправлением», клиент-серверную — средствами СУБД. При массовых повреждениях надёжнее восстановиться из резервной копии, а после восстановления — проверить остатки и устранить причину сбоя.

Частые вопросы

Можно ли восстановить базу 1С без резервной копии?

Да, если повреждение точечное: chdbfl и «Тестирование и исправление» часто возвращают базу к жизни. Но данные на физически испорченных страницах восстановить нечем — без копии они теряются окончательно. Поэтому резервное копирование остаётся единственной полноценной страховкой.

Что делать, если chdbfl не нашёл ошибок, а база не открывается?

Проверьте кэш: удалите базу из списка в окне запуска и добавьте заново, очистите каталоги кэша в профиле пользователя. Попробуйте открыть базу в конфигураторе и выполнить тестирование и исправление. Также убедитесь, что хватает места на диске и есть права на каталог базы.

Поможет ли выгрузка и загрузка через dt-файл?

Да, если база ещё открывается в конфигураторе: выгрузка в dt и загрузка в новую пустую базу пересоздаёт структуру файла и часто устраняет повреждения физического уровня. Но если конфигуратор не открывает базу или данные испорчены на уровне записей, этот способ не сработает.

Сколько времени занимает тестирование и исправление?

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

База лежит на сетевом диске — это опасно?

Да, это одна из частых причин повреждений файловых баз: обрыв сети во время записи разрушает файл. Надёжнее размещать базу локально на сервере с публикацией через веб-сервер или переходить на клиент-серверный вариант работы.

Когда стоит привлекать специалиста?

Если база клиент-серверная и вы не администрируете СУБД, если после chdbfl и тестирования ошибки остаются, если диск физически неисправен или если в базе критичные данные, а резервной копии нет. Цена ошибки в этих случаях выше стоимости восстановления.