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

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

База данных повреждена в 1С 8.3: как восстановить

Что делать, если база 1С 8.3 повреждена: диагностика, тестирование и исправление, chdbfl.exe, восстановление из копии и типичные ошибки.

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

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

Ниже разобраны диагностика повреждения, порядок восстановления файловой и клиент-серверной базы, типичные ошибки и границы, за которыми самостоятельные действия становятся рискованными.

Как понять, что база действительно повреждена

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

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

База не открывается совсемВероятно повреждение заголовка или системных таблиц

Запустить chdbfl.exe или тестирование и исправление

Ошибка при обращении к конкретным документамПовреждена отдельная таблица данных

Проверить физическую целостность, затем реиндексацию

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

Открыть базу локально с того же диска

Ошибка после сбоя питанияНезавершённая транзакция, частичная запись

Сделать копию файла и запустить проверку целостности

Первый шаг: резервная копия до любых исправлений

Любая процедура «исправления» перезаписывает файл базы. Если утилита отработает некорректно или повреждение окажется глубже, чем ожидалось, вернуть исходное состояние без копии будет невозможно. Поэтому первое действие — скопировать каталог базы целиком (для файлового режима это файл 1Cv8.1CD и сопутствующие файлы) на другой диск или сетевой ресурс.

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

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

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

Инструмент предлагает несколько проверок, и их следует запускать последовательно, от простой к сложной. Сначала «Реиндексация таблиц» — перестраивает индексы и устраняет часть ошибок чтения. Затем «Проверка логической целостности» — выявляет битые ссылки и нарушения связей между объектами. Самая тяжёлая — «Проверка ссылочной целостности»: она находит объекты с потерянными данными и предлагает варианты обработки (создать объекты-заглушки, очистить ссылки, удалить объекты).

Режим «Тестирование и исправление» (а не «Только тестирование») реально изменяет данные. Для ссылочной целостности безопаснее всего сначала прогнать «Только тестирование», изучить список ошибок и лишь потом выбирать осмысленные действия по каждой группе объектов. Автоматическое «удалить всё битое» может уничтожить документы, которые на самом деле читались, но ссылались на повреждённый справочник.

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

Восстановление файловой базы утилитой chdbfl.exe

Для файловых баз (формат 1Cv8.1CD) в комплект платформы входит утилита chdbfl.exe — она находится в каталоге bin установленной версии платформы. Это низкоуровневый инструмент проверки физической целостности файла: он читает структуру страниц, находит повреждённые участки и может исключать их из файла.

Порядок работы простой: укажите путь к файлу 1Cv8.1CD, установите флаг «Исправлять обнаруженные ошибки» и запустите проверку. Утилита покажет список повреждённых объектов. Важно понимать: chdbfl.exe не «чинит» данные, а удаляет нечитаемые фрагменты, чтобы файл снова открывался. Если повреждённой оказалась таблица с документами, эти документы будут потеряны — именно поэтому копия обязательна.

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

text
C:\Program Files\1cv8\<версия>\bin\chdbfl.exe

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

В клиент-серверном варианте данные хранятся в СУБД (MS SQL Server, PostgreSQL и др.), и инструменты восстановления другие. Платформенное «Тестирование и исправление» работает и здесь, но при серьёзных повреждениях сначала проверяют целостность средствами самой СУБД: для MS SQL это команда DBCC CHECKDB, для PostgreSQL — анализ логов и проверка кластера.

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

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

Тестирование и исправление

Подходит при логических ошибках и битых ссылках; требует, чтобы база открывалась в конфигураторе

chdbfl.exe

Только файловые базы; спасает, когда файл не открывается, но удаляет повреждённые данные безвозвратно

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

Пересобирает базу логически; работает, только если база ещё открывается и выгружается

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

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

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

Если штатные средства не помогли или потери от «исправления» неприемлемы, остаётся откат на последнюю рабочую копию. Для файловой базы — заменить каталог базы копией, для клиент-серверной — восстановить backup средствами СУБД. После восстановления обязательно проверьте актуальность данных: какие документы вводились после даты копии, и организуйте их повторный ввод или перенос из повреждённой базы (если та частично читается) через выгрузку отдельных данных.

Профилактика дешевле восстановления. Настройте регулярные автоматические копии (для файловых баз — хотя бы копирование каталога по расписанию, для серверных — штатные планы обслуживания СУБД), исключите каталоги баз из проверки антивируса в реальном времени, используйте источник бесперебойного питания на сервере и не размещайте файловые базы на сетевых дисках при нестабильной сети. Периодический запуск тестирования в режиме «Только тестирование» позволяет поймать проблему до того, как база перестанет открываться.

Типичные ошибки
01
Запуск исправления без резервной копии — при неудаче возвращать нечего
02
Массовое удаление объектов при ссылочной проверке без анализа — теряются реально существующие документы
03
Работа с файловой базой по нестабильной сети — повреждение повторяется снова и снова
04
Игнорирование состояния диска — базу чинят, а диск продолжает портить файлы
05
Одновременная работа пользователей во время исправления — монопольный режим обязателен
Контрольные точки

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

Запуск базы в режиме предприятия и конфигуратора
Норма

Оба режима открываются без ошибок

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

Ошибки чтения таблиц или падение при запуске

Журналы документов и справочники
Норма

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

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

Пустые журналы, ошибки при открытии отдельных объектов

Ключевые отчёты (оборотно-сальдовая ведомость и т. п.)
Норма

Отчёты формируются, итоги сходятся с ожидаемыми

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

Ошибки построения, расхождение итогов

Повторное тестирование в режиме «Только тестирование»
Норма

Ошибок не обнаружено

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

Остались ошибки целостности — нужен следующий этап

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

База не открывается даже в конфигураторе — что делать в первую очередь?

Скопируйте файл 1Cv8.1CD в безопасное место и запустите chdbfl.exe из каталога платформы с включённым режимом исправления. Если после этого база открылась — сразу сделайте выгрузку .dt и прогоните тестирование и исправление. Если chdbfl.exe не помог, восстанавливайте из резервной копии.

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

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

Чем отличается выгрузка .dt от копирования файла базы?

Копирование файла 1Cv8.1CD сохраняет базу «как есть», включая физические повреждения. Выгрузка .dt читает данные логически и собирает их в новый файл, поэтому загрузка .dt в чистую базу часто устраняет повреждения физического уровня. Минус .dt — он не переносит некоторые служебные данные и требует, чтобы база открывалась.

Почему база повреждается повторно после успешного восстановления?

Потому что устранено следствие, а не причина. Проверьте диск на сбойные сектора, стабильность сети (если база файловая и сетевая), работу антивируса с файлом базы, наличие ИБП и свободное место на диске. Пока причина не устранена, повреждения будут возвращаться.

Безопасно ли запускать исправление при работающих пользователях?

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

Стоит ли использовать сторонние программы восстановления баз 1С?

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

Итог

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

Сначала копия — потом исправление. Для файловых баз основные инструменты: chdbfl.exe плюс тестирование и исправление; для клиент-серверных — средства СУБД и восстановление из backup. Если штатные средства не помогли или диск неисправен, дальнейшие самостоятельные действия рискованны — восстанавливайте из резервной копии и устраняйте причину повреждения.