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

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

Чем исправить базу 1С: инструменты и порядок восстановления

Разбираем, чем исправить базу 1С: тестирование и исправление, chdbfl, конфигуратор, выгрузка в dt. Признаки повреждений, порядок действий и риски.

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

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

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

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

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

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

Если ошибка возникает только у одного пользователя или только на одном компьютере, сначала проверьте кэш: очистите каталог кэша 1С (папки с длинными именами в %APPDATA%\1C\1cv8) или удалите базу из списка и добавьте заново. Часто «повреждённая база» оказывается повреждённым локальным кэшем, и никакое исправление не требуется.

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

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

«Ошибка формата потока»Часто проблема кэша или повреждение данных

Сначала очистить кэш, проверить на другом ПК

«Объект не найден» в документахБитые ссылки — логическая ошибка

Тестирование и исправление с проверкой ссылочной целостности

Ошибка только у одного пользователяВероятен локальный кэш или профиль

Очистить кэш, пересоздать подключение базы

Подготовка: копия базы и монопольный доступ

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

Для файловой базы скопируйте каталог целиком или хотя бы файл 1Cv8.1CD — именно в нём хранятся все данные. Для клиент-серверной базы сделайте резервную копию средствами СУБД (например, pg_dump для PostgreSQL или backup в SQL Server) либо выгрузку dt из конфигуратора, если база ещё открывается.

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

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

Штатный инструмент запускается из конфигуратора: меню «Администрирование» → «Тестирование и исправление». Если конфигуратор не открывается из-за повреждения, этот способ недоступен — переходите к chdbfl.

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

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

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

Способ 2. Утилита chdbfl.exe для файловых баз

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

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

После chdbfl обязательно запустите тестирование и исправление в конфигураторе: утилита восстанавливает физическую структуру, но логические ошибки (битые ссылки, сбитые итоги) остаются и устраняются штатным инструментом. Эта связка — стандартный маршрут восстановления файловой базы.

Способ 3. Выгрузка и загрузка через dt

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

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

Ограничение способа: если повреждение затронуло таблицы так, что чтение прерывается ошибкой, выгрузка может не завершиться. В этом случае сначала chdbfl, затем повторная попытка выгрузки. Также помните, что dt штатно загружается в базу с той же версией конфигурации — это не инструмент переноса между разными конфигурациями.

Способ 4. Восстановление из резервной копии и журналы СУБД

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

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

Для клиент-серверных баз дополнительно проверьте целостность на уровне СУБД: DBCC CHECKDB для SQL Server, анализ логов PostgreSQL. Если СУБД сообщает о повреждении страниц, восстановление из бэкапа обычно единственный корректный путь — править страницы данных вручную крайне рискованно.

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

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

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

Chdbfl.exe

Первый инструмент при «Файл базы данных поврежден» в файловом режиме; не исправляет логику, только структуру

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

Хороша при нестабильной работе открывающейся базы; требует, чтобы данные читались без фатальных ошибок

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

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

Если ничего не помогло и как не допустить повторения

Когда chdbfl, тестирование и выгрузка не дали результата, а резервной копии нет, остаются специализированные средства восстановления и сервисы, работающие с внутренним форматом 1Cv8.1CD на уровне страниц. Это платная и небыстрая процедура с негарантированным результатом — но часто единственный шанс вытащить хотя бы часть данных. Перед отправкой базы куда-либо снимите побайтовый образ диска, чтобы сохранить исходное состояние.

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

Дополнительные меры: следите за свободным местом на дисках, не работайте с базой через Wi-Fi и медленные VPN-каналы в файловом режиме, при росте числа пользователей и объёма данных переходите на клиент-серверный вариант — СУБД с журналированием транзакций переносит сбои значительно устойчивее, чем файловый формат.

Типичные ошибки
01
Запуск исправления без копии — при неудаче теряется возможность попробовать другой метод
02
Прерывание тестирования и исправления — база остаётся в промежуточном повреждённом состоянии
03
Работа с файловой базой по нестабильной сети после восстановления — повторное повреждение в ближайшее время
04
Игнорирование ошибок СУБД при клиент-серверной базе — лечат 1С, а проблема на уровне диска или сервера
05
Доверие к резервной копии, которую никогда не проверяли восстановлением
Итог

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

Сначала копия базы и монопольный доступ, затем диагностика: очистка кэша, chdbfl для файловых баз, тестирование и исправление, выгрузка dt. При серьёзном повреждении надёжнее восстановиться из проверенной резервной копии. Регулярные бэкапы и ИБП предотвращают большинство таких ситуаций.

Ответы на частые вопросы

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

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

Тестирование и исправление удалит мои документы?

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

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

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

Можно ли исправить базу на SQL Server средствами 1С?

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

Ошибка «Ошибка формата потока» — база испорчена?

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

Как проверить, что восстановление прошло успешно?

Откройте базу в режиме предприятия, сформируйте ключевые отчёты (оборотно-сальдовая ведомость, остатки склада) и сравните с данными до сбоя или с восстановленной копией. Проведите несколько документов за разные периоды, проверьте журналы на предмет «Объект не найден». Завершите контрольным тестированием без ошибок.