Повреждение файла 1Cv8.1CD: лечение chdbfl, тестирование и откат на копию
Содержание
Если 1С 8.3 пишет Файл базы данных поврежден, закройте базу у всех пользователей, скопируйте файл 1Cv8.1CD в другую папку и запустите на оригинале утилиту chdbfl.exe с галочкой «Исправлять обнаруженные ошибки». Она лежит в каталоге bin установленной платформы. Если после неё база открывается — добейте результат тестированием и исправлением в конфигураторе. Если нет — восстанавливайте файл из резервной копии.
Способов исправить и восстановить повреждённую базу три, и выбирают их по тяжести. chdbfl.exe чинит физическую структуру файла: страницы, индексы, заголовки таблиц. Тестирование и исправление в конфигураторе лечит логику: ссылки, итоги, связи. Резервная копия нужна, когда сам файл разрушен так, что обе утилиты бессильны.
Всё ниже касается файлового варианта 1С 8.3. В клиент-серверной базе данные хранит СУБД (MS SQL, PostgreSQL), и лечат её средствами этой СУБД, а файла 1Cv8.1CD там нет.
Почему файл базы 1С повреждается и как отличить поломку
Файловая база — это один большой файл 1Cv8.1CD в папке базы. Платформа пишет в него страницами. Если запись прервалась на середине, страница остаётся «полуживой», и при следующем чтении 1С сообщает о повреждении.
Типичные причины:
- ⚡ внезапное отключение питания или «жёсткая» перезагрузка во время работы;
- 🌐 обрыв сети, когда база лежит в общей папке, особенно при работе по Wi-Fi или VPN;
- 💽 сбойные сектора, исчерпанный ресурс SSD, переполненный диск;
- 🛡️ антивирус, который проверяет
1Cv8.1CDпрямо во время записи; - ☁️ синхронизация папки базы облачным клиентом (Яндекс Диск, OneDrive, Google Drive): он копирует файл кусками, пока 1С в него пишет;
- 🔪 принудительное завершение процесса
1cv8.exeчерез диспетчер задач.
Сообщения, которые обычно говорят о физическом повреждении файла:
Файл базы данных поврежден;Ошибка формата потокапри открытии базы или конкретного документа;Нарушена целостность структуры конфигурации;- зависание или вылет при открытии одного и того же журнала, справочника, отчёта.
Если ошибка появляется только на одном документе, а остальная база работает — повреждение локальное, шансы на полное лечение высокие. Если база не стартует вовсе — сразу готовьте вариант с копией.
Перед исправлением: копия файла и проверка диска
Любая утилита лечения меняет файл на месте. Если она ошибётся, второго шанса без копии не будет.
Не запускайте никакое исправление, пока не скопировали 1Cv8.1CD в другое место.
Порядок подготовки:
- Попросите всех выйти из базы. Проверьте, что на компьютерах пользователей и на сервере нет процессов
1cv8.exeи1cv8c.exe, открытых с этой базой. - Узнайте путь к базе. В окне запуска выделите её — внизу появится строка вида
File="D:\Bases\Buh". - Скопируйте всю папку базы целиком на другой диск или флешку. Минимум — файл
1Cv8.1CD. - Проверьте свободное место: для лечения и последующих операций нужно не меньше двух объёмов файла базы.
- Проверьте диск. В командной строке от имени администратора:
chkdsk D: /f(буква — ваш диск). Для системного диска Windows предложит проверку при следующей загрузке.
Если сеансы висят и пользователи не выходят, принудительное завершение 1cv8.exe оборвёт их несохранённую работу. Делайте это после предупреждения и вне рабочего времени.
Если диск при проверке показывает сбойные сектора или SMART-ошибки, копируйте базу на другой носитель и лечите уже копию. Работа с умирающим диском добивает и его, и файл.
Как исправить файл базы данных 1С утилитой chdbfl.exe
chdbfl.exe — штатная утилита платформы для проверки физической целостности файловой базы. Отдельно её скачивать не нужно.
Где найти: C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe. Для 32-разрядной платформы — C:\Program Files (x86)\1cv8\<номер версии>\bin\. Берите утилиту той же версии платформы, на которой работает база.
Пошагово:
- Убедитесь, что база закрыта у всех.
- Запустите
chdbfl.exeот имени администратора. - В поле имени файла укажите путь к
1Cv8.1CD, кнопкой выбора или вручную. - Поставьте галочку «Исправлять обнаруженные ошибки».
- Нажмите «Выполнить» и дождитесь окончания. На базе в 5–10 ГБ это может занять от нескольких минут до часа.
- Прочитайте итог в окне утилиты. Если ошибки найдены и исправлены — переходите к тестированию в конфигураторе.
Утилита работает на уровне страниц и таблиц. Испорченные записи она может удалить: тогда база откроется, но часть документов или строк пропадёт. Поэтому после неё обязательно проверяют данные.
Сначала можно запустить проверку без галочки «Исправлять». Так вы увидите масштаб: пара ошибок в индексах — одно, сотни повреждённых записей в таблицах документов — повод сразу думать о резервной копии.
Тестирование и исправление информационной базы в конфигураторе
Когда база открывается, следующий шаг — встроенное тестирование. Оно чинит то, что chdbfl не видит: битые ссылки, неверные итоги, рассогласование индексов.
Как запустить:
- Откройте базу в режиме «Конфигуратор».
- Меню
Администрирование → Тестирование и исправление.... - Отметьте проверки (см. таблицу ниже).
- Выберите режим «Тестирование и исправление».
- Нажмите «Выполнить».
Для тестирования нужен монопольный доступ: в базе не должно быть других пользователей.
| Проверка | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Всегда при подозрении на повреждение |
| Проверка логической целостности | Ищет нарушения структуры данных | Всегда |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты | После chdbfl, если были удаления |
| Пересчёт итогов | Пересчитывает остатки и обороты регистров | Если отчёты показывают странные остатки |
| Сжатие таблиц | Уплотняет файл, убирает пустоты | Когда файл раздут, после успешного лечения |
| Реструктуризация таблиц | Пересоздаёт таблицы базы | Тяжёлые случаи; долго, нужен большой запас места |
Для битых ссылок программа спрашивает, что делать: создавать объекты-заглушки, очищать ссылки или ничего не менять. Безопаснее создавать объекты. Потом вы найдёте их по пометке и разберётесь вручную, а не потеряете данные молча.
Запуск тестирования из командной строки
Если базу нужно проверять регулярно или ночью, тестирование запускают параметром /IBCheckAndRepair:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogIntegrity -RecalcTotals /Out "D:\Logs\check.log"
Номер версии в пути замените на свою. Режим только проверки без исправления — ключ -TestOnly. Результат пишется в файл из /Out.
Если база не открывается: копия, выгрузка .dt и «Предыдущие версии»
Когда обе утилиты не помогли, восстанавливайте данные. Источники — от самого свежего к самому старому.
Резервные копии средствами конфигурации
В БП 3.0, ЗУП 3.1 и других типовых конфигурациях на файловой базе есть встроенное копирование: Администрирование → Обслуживание → Резервное копирование и восстановление. Если оно было настроено, в указанной папке лежат архивы с копией базы. Распакуйте свежий архив в новую папку и подключите её как новую базу в списке.
Выгрузка в DT
Файл .dt — выгрузка базы средствами платформы. Восстановление:
- Создайте новую пустую базу без конфигурации.
- Откройте её в конфигураторе.
Администрирование → Загрузить информационную базу..., выберите файл.dt.- После загрузки проверьте пользователей и последние документы.
Загрузка .dt полностью заменяет содержимое базы. Грузите в новую пустую базу, а не поверх повреждённой.
Выгрузка в .dt полезна и как способ лечения. Если повреждённая база после chdbfl открывается, выгрузите её через Администрирование → Выгрузить информационную базу... и загрузите в новую базу. Платформа запишет данные в чистый файл, без старых «пустот» и испорченных служебных страниц.
Теневые копии Windows
Если на диске включена защита системы или резервное копирование
истории файлов, щёлкните правой кнопкой по папке базы → «Свойства» → вкладка «Предыдущие версии». Там могут быть копии 1Cv8.1CD за прошлые дни. Восстановите копию в другую папку и проверьте её chdbfl.
Что делать с данными после отката
Восстановленная копия — это база на дату копии. Всё, что вводили после, придётся завести заново. Чтобы понять объём, откройте повреждённую базу (если она хоть частично открывается после chdbfl) и сформируйте списки документов за период после даты копии. Их и перенесите.
Права доступа, сетевая папка и антивирус
Часть «повреждений» на деле — проблемы с доступом к файлу. Платформа не может нормально записать страницу и потом не может её прочитать.
Что проверить:
- 🔐 Права на папку. Пользователям Windows, которые работают в базе, нужны права на чтение, запись, создание и удаление файлов во всей папке базы, а не только на
1Cv8.1CD. Платформа создаёт рядом служебные файлы. - 🌐 Путь к базе. Все пользователи должны подключаться по одному сетевому пути, например
\\server\Bases\Buh. Одновременная работа через разные буквы дисков и разные пути к одной базе — лишний риск. - 📶 Тип подключения. Работа с файловой базой через Wi-Fi или VPN по общей папке — частая причина повреждений. Для удалённых пользователей лучше терминальный доступ или публикация на веб-сервере.
- 🛡️ Антивирус. Добавьте папку базы в исключения проверки в реальном времени. Антивирус, который блокирует файл на запись, — классика.
- ☁️ Облачная синхронизация. Не держите базу в папке, которую синхронизирует облачный клиент. Резервные архивы — можно, рабочий файл — нет.
- 💾 Атрибут «Только чтение». После копирования с флешки или из архива у файла может остаться этот атрибут. Снимите его в свойствах файла.
Если ошибка возникает у одного пользователя, а у остальных база работает, сначала проверяйте его компьютер и права, а не файл базы.
Как не повредить базу снова
Лечение без устранения причины даёт передышку на неделю. Минимальный набор мер:
| Мера | Что даёт |
|---|---|
| Источник бесперебойного питания на компьютере или сервере с базой | Нет обрыва записи при скачке питания |
| Ежедневное резервное копирование на другой диск | Откат максимум на сутки |
Еженедельная выгрузка в .dt | Независимая от формата файла копия |
| Исключение папки базы из антивируса и облачных клиентов | Никто не трогает файл во время записи |
Проверка SMART и chkdsk раз в месяц | Видно умирающий диск до потери данных |
Тестирование с -TestOnly по ночам | Ранний сигнал о проблемах в данных |
Отдельно о размере. Чем больше файл, тем дольше любая операция и тем выше цена сбоя. Когда файловая база перерастает десятки гигабайт или в ней одновременно работают больше 10–15 человек, стоит подумать о переходе на клиент-серверный вариант. В нём сбой питания на рабочем месте пользователя базу не повреждает.
Проверку копий не пропускайте. Раз в квартал разверните последнюю копию в отдельную папку и откройте её. Копия, которую ни разу не проверяли, может оказаться пустой или такой же битой.
Частые вопросы
Можно ли запускать chdbfl.exe, если в базе работают пользователи?
Пропадут ли данные после chdbfl?
Где взять chdbfl.exe, если в папке bin её нет?
Помогает ли переименовать или удалить старые файлы рядом с 1Cv8.1CD?
1Cv8.1CD, его не удаляют и не переименуют без копии.