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

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

Как исправить базу 1С: практическое руководство по восстановлению

Пошаговая инструкция по исправлению базы 1С: тестирование и исправление, утилита chdbfl.exe, проверка конфигурации, восстановление из резервной копии и типичные ошибки.

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

Хорошая новость в том, что большинство повреждений файловых баз устраняется штатными средствами: встроенным механизмом «Тестирование и исправление» и служебной утилитой chdbfl.exe, которая входит в комплект поставки платформы. Для клиент-серверных баз (MS SQL, PostgreSQL) инструментарий другой, и лезть в него без понимания структуры СУБД опасно.

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

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

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

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

Ошибка у всех пользователейВероятно повреждение базы

Проверьте целостность файла 1Cv8.1CD утилитой chdbfl

Ошибка у одного пользователяПроблема в кэше или правах

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

Ошибка после обновленияПрервано обновление конфигурации БД

Завершите обновление в конфигураторе или восстановите копию

Медленная работа без ошибокНе повреждение, а производительность

Проверьте размер базы, свободное место и фрагментацию

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

Для файловой базы достаточно скопировать файл 1Cv8.1CD (и при желании весь каталог базы) в отдельную папку, пока все пользователи вышли из программы. Копировать файл при работающих пользователях нельзя — получите неконсистентную копию. Альтернатива — выгрузка в файл .dt через конфигуратор (Администрирование → Выгрузить информационную базу), но если база уже повреждена, выгрузка может оборваться с ошибкой.

Для клиент-серверной базы копию делают средствами СУБД (backup в MS SQL, pg_dump для PostgreSQL). Дополнительно полезно сделать выгрузку .dt из конфигуратора — она независима от СУБД и позволяет развернуть базу в другом окружении.

Исправление утилитой chdbfl.exe

Chdbfl.exe — штатная утилита проверки физической целостности файловых баз. Она находится в каталоге bin установленной платформы, например: C:\Program Files\1cv8\<версия>\bin\chdbfl.exe. Утилита работает напрямую с файлом 1Cv8.1CD и не требует запуска конфигуратора.

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

Обратите внимание: chdbfl работает только с файловыми базами. Для клиент-серверных баз она бесполезна — там физическую целостность проверяют средствами СУБД (DBCC CHECKDB для MS SQL).

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

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

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

В настройках доступны несколько проверок. «Реиндексация таблиц» перестраивает индексы — безопасная операция, часто ускоряет базу. «Проверка логической целостности» находит битые ссылки и несоответствия. «Проверка ссылочной целостности» ищет объекты, ссылающиеся на удалённые или отсутствующие записи — это самая частая причина ошибок вида «Объект не найден». «Пересчёт итогов» восстанавливает регистры накопления и бухгалтерии, если итоги «поплыли».

Ключевой выбор — режим обработки ошибок: «Не изменять» (только диагностика), «Очищать ссылки» (битые ссылки заменяются пустыми) или «Создавать объекты» (создаются пустые объекты-заглушки). Для первого прохода всегда выбирайте «Не изменять» и изучите протокол. Очистка ссылок безопаснее создания заглушек: заглушки потом приходится выискивать и удалять вручную.

Проверка конфигурации и восстановление после прерванного обновления

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

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

Когда исправить не получается: восстановление из копии и крайние меры

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

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

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

Профилактика: как снизить риск повторного повреждения

Большинство повреждений файловых баз связано с инфраструктурой, а не с самой 1С. Настройте регулярное резервное копирование (хотя бы ежедневное копирование 1Cv8.1CD или выгрузку .dt по расписанию), поставьте источник бесперебойного питания на сервер с базой, следите за свободным местом на диске и состоянием самого диска (SMART).

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

Итог

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

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

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

Чем отличается chdbfl от «Тестирования и исправления»?

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

База лежит на SQL Server — chdbfl поможет?

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

Тестирование и исправление зависло — что делать?

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

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

Можно попробовать, но сначала сделайте копию файла 1Cv8.1CD в текущем состоянии — даже повреждённый файл лучше сохранить до вмешательства. Затем действуйте по стандартной схеме: chdbfl, затем тестирование и исправление сначала в режиме диагностики.

После исправления в отчётах появились расхождения — это нормально?

Если при исправлении очищались битые ссылки или удалялись повреждённые записи, часть данных могла быть потеряна, и итоги изменятся. Сравните ключевые отчёты (ОСВ, взаиморасчёты) с данными из резервной копии и при необходимости восстановите документы вручную. Пересчёт итогов в режиме тестирования обычно выравнивает регистры.