Два инструмента решают разные задачи, и путать их дорого. chdbfl.exe проверяет физическую целостность файла базы. Тестирование и исправление в конфигураторе работает уровнем выше — с логикой данных: ссылками, итогами, структурой таблиц.
chdbfl.exe — только для файловых баз
Лежит в каталоге платформы: C:\Program Files\1cv8\<версия>\bin\chdbfl.exe. Запускается при полностью закрытой базе, путь указывается к файлу 1Cv8.1CD.
Порядок работы всегда один:
- Сделать копию файла базы. Обязательно, без исключений — утилита правит файл на месте.
- Первый проход без флажка «Исправлять обнаруженные ошибки». Так вы узнаете масштаб проблемы, ничего не изменив.
- Если ошибки есть — второй проход с исправлением.
- После исправления — выгрузка в
.dtи загрузка в новую базу. Это перестраивает структуру заново.
Если chdbfl сообщает о неисправимых ошибках или падает — файл повреждён физически. Дальше только восстановление из копии либо специализированные утилиты восстановления, что уже платная история с непредсказуемым результатом.
Тестирование и исправление в конфигураторе
Конфигуратор → «Администрирование → Тестирование и исправление». Работает и с файловой, и с клиент-серверной базой, требует монопольного доступа.
Что делают проверки:
- Реиндексация таблиц — перестраивает индексы. Безопасно, помогает при странных «не видит запись» и подтормаживаниях.
- Проверка логической целостности — сверяет внутреннюю структуру таблиц с описанием метаданных.
- Проверка ссылочной целостности — ищет ссылки на несуществующие объекты (битые ссылки). Тут вы выбираете реакцию: создавать объекты, очищать ссылки или удалять объект. Это единственный по-настоящему опасный пункт: «удалять объект» может унести документы.
- Пересчёт итогов — после массовых перепроведений и правок регистров.
- Реструктуризация таблиц информационной базы — самая долгая операция, физически перестраивает таблицы.
- Сжатие таблиц информационной базы — освобождает место внутри файла после удалений.
Рабочий набор для планового обслуживания: реиндексация, логическая целостность, пересчёт итогов, режим «Тестирование и исправление». Ссылочную целостность включайте осознанно и только после копии.
Первый прогон делайте в режиме «Только тестирование». Отчёт покажет, что именно не так. Исправлять вслепую в рабочей базе — верный способ превратить одну проблему в две.
Клиент-серверный вариант
Здесь целостность файлов — забота СУБД, а не платформы:
- MS SQL —
DBCC CHECKDBпо расписанию, план обслуживания с реиндексацией и обновлением статистики; - PostgreSQL — регламентный
VACUUM ANALYZE, контроль раздувания таблиц, проверка журналов.
Тестирование и исправление из конфигуратора тоже применимо и лечит логику данных, но если ошибки идут с уровня СУБД, чинить надо там. Признак: ошибки приходят с текстом от драйвера СУБД, а не от платформы.
Типовые сообщения и что за ними стоит
| Сообщение | Обычная причина | Что делать |
|---|---|---|
| «Ошибка формата потока» | Повреждён файл базы или кэш клиента | Очистить кэш, затем chdbfl, при неудаче — копия |
| «Файл базы данных повреждён» | Аварийное завершение, проблемы диска | chdbfl, проверка диска, восстановление из копии |
| «Обнаружены ошибки в структуре» | Сбой при реструктуризации или обновлении | ТиИ с реструктуризацией, выгрузка/загрузка .dt |
| «Объект не найден» в отчётах | Битые ссылки | Проверка ссылочной целостности, режим «очищать ссылки» |
| Некорректные остатки в отчётах | Сбитые итоги | Пересчёт итогов, при необходимости перепроведение |
Порядок лечения «сломалась база»
- Никого не пускать в базу, снять копию в текущем состоянии, даже если она битая.
- Очистить кэш клиента: каталоги вида
%LocalAppData%\1C\1cv8и%AppData%\1C\1cv8. Удивительно часто помогает и не требует ничего больше. - Файловая база —
chdbflбез исправления, затем с исправлением. - Тестирование и исправление, начиная с безопасных пунктов.
- Выгрузка в
.dtи загрузка в новую пустую базу. - Контрольная проверка: провести документ, построить отчёт, закрыть месяц на копии.
Регламент, чтобы не лечить
Раз в месяц на копии базы прогоняйте тестирование с реиндексацией и пересчётом итогов, а результат — в журнал обслуживания. Раз в квартал — восстановление из бэкапа в тестовую базу. Пятнадцать минут в месяц дешевле любого аварийного восстановления.