Повреждён файл 1Cv8.1CD: проверка и исправление через chdbfl.exe

· 10 мин

Содержание

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

Частая ошибка — запускать chdbfl как первое средство при любой странности в 1С. Утилита чинит только физическую структуру файла: страницы, заголовки таблиц, индексы. Неправильные остатки, «битые» ссылки и ошибки в учёте она не исправляет — это делается уже в Конфигураторе, после неё.

Когда chdbfl нужна, а когда бесполезна

Утилита работает только с файловыми базами — теми, что хранятся одним файлом 1Cv8.1CD в каталоге на диске. Для клиент-серверной базы на MS SQL или PostgreSQL она не подходит: там структуру проверяют средства самой СУБД.

Поводы запустить chdbfl:

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

Когда утилита не поможет:

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

Подготовка к восстановлению: копия файла и свободная база

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

Шаг 1. Найдите каталог базы

В окне запуска 1С выделите базу в списке. Внизу окна отображается путь вида File="D:\Bases\Buh". В этом каталоге лежит файл 1Cv8.1CD — его и будем проверять.

Если путь не виден, нажмите «Изменить» и пройдите по шагам мастера: на втором шаге показан каталог информационной базы.

Шаг 2. Освободите базу

Утилите нужен монопольный доступ к файлу. Всем пользователям нужно выйти из 1С, включая Конфигуратор и фоновые обработки.

Если база открыта по сети с другого компьютера, закрытие окна на вашем ПК ничего не даст. Предупредите коллег заранее: при принудительном закрытии процесса 1cv8.exe у них потеряются несохранённые документы.

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

Шаг 3. Скопируйте файл

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

Свободного места на диске нужно не меньше размера самой базы: копия плюс запас для работы утилиты.

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

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

Где лежит chdbfl.exe

Утилита ставится вместе с платформой и лежит в папке bin нужной версии:

C:\Program Files\1cv8\8.3.24.1548\bin\chdbfl.exe

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

Для 32-разрядной платформы путь начинается с C:\Program Files (x86)\1cv8\.

Порядок работы в окне утилиты

  1. Запустите chdbfl.exe. Если база лежит в системном каталоге или на диске с ограниченными правами — через «Запуск от имени администратора».
  2. В поле «Имя файла БД» нажмите кнопку выбора и укажите 1Cv8.1CD.
  3. Для первого прохода оставьте флажок «Исправлять обнаруженные ошибки» снятым. Это режим только проверки: файл не меняется.
  4. Нажмите «Выполнить» и дождитесь окончания. На базе в 2–3 ГБ это обычно минуты, на 20–30 ГБ — может занять час и больше.
  5. Если найдены ошибки — сохраните текст из окна, поставьте флажок исправления и запустите проверку ещё раз.
  6. После завершения закройте утилиту и только потом открывайте базу.

Пользователя и пароль 1С утилита не спрашивает: она работает с файлом, а не с информационной базой как приложением.

Не прерывайте исправление. Если остановить утилиту на середине — закрыть окно, выключить компьютер, — файл может стать хуже, чем был. Для ноутбука подключите зарядку, для сервера убедитесь, что ИБП в порядке.

Если утилита сразу пишет, что не может открыть файл

Почти всегда причина в одном из трёх:

  • файл всё ещё занят процессом 1С — на этом или другом компьютере;
  • нет прав на запись в каталог — запустите утилиту от администратора;
  • антивирус в этот момент сканирует большой .1CD и держит его.

Что означают сообщения утилиты восстановления

Цифровых кодов ошибок, как у Windows, у chdbfl нет. Результат — текстовый протокол в окне: перечень проблем с указанием таблицы базы, где они найдены, и итог проверки.

Имена таблиц в протоколе внутренние: _Document123, _Reference45, _AccumRg678, _InfoRg90. По префиксу понятно, какой тип объекта затронут:

Префикс в протоколеЧто это в 1СЧем грозит повреждение
_Document…ДокументыНе открываются отдельные документы, ошибка при проведении
_Reference…СправочникиПропадают элементы, ошибки при выборе в реквизитах
_AccumRg…, _AccRg…Регистры накопления и бухгалтерииНеверные остатки и обороты, падают отчёты
_InfoRg…Регистры сведенийСбиваются цены, курсы, настройки
_Config…, Config, ParamsСлужебные таблицы конфигурацииБаза может не открываться вообще

Сопоставить номер таблицы с конкретным объектом можно из Конфигуратора с помощью встроенного метода ПолучитьСтруктуруХраненияБазыДанных() — он возвращает соответствие имён метаданных и таблиц хранения.

Как действовать по итогу проверки:

  • ✅ Ошибок нет. Файл физически цел. Проблему ищите в данных или конфигурации — переходите к тестированию в Конфигураторе.
  • 🟡 Ошибки найдены и исправлены. Структура восстановлена, но часть записей могла быть удалена как нечитаемая. Обязательно проверьте данные (следующие разделы).
  • 🔴 Ошибки в служебных таблицах конфигурации. Даже после исправления база может не запуститься. Готовьте вариант с резервной копией.
  • 🔴 Утилита аварийно завершилась или зависла. Повторите на копии файла; если не помогает — см. раздел о том, что делать, когда chdbfl не справилась.
Диагностика: выберите симптом

После восстановления файла: тестирование и проверка данных

chdbfl вернула файлу читаемую структуру. Теперь нужно привести в порядок логику данных.

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

  1. Откройте базу в режиме Конфигуратора.
  2. Выберите Администрирование → Тестирование и исправление.
  3. Отметьте проверку логической целостности, проверку ссылочной целостности и пересчёт итогов. Реиндексацию таблиц включите, если chdbfl сообщала о проблемах с индексами.
  4. Для начала выберите режим «Тестирование и исправление», а не только тестирование.
  5. Для битых ссылок выберите вариант создания объектов вместо удаления — так вы увидите, что пострадало, и сможете это восстановить.
  6. Нажмите «Выполнить» и сохраните протокол.

Ручная проверка

  • 📌 Откройте документы за последние дни перед сбоем — именно их запись чаще всего обрывается.
  • 📌 Сформируйте оборотно-сальдовую ведомость и сверьте остатки по ключевым счетам с последней сданной отчётностью.
  • 📌 Найдите элементы с пометкой <Объект не найден> — это следы удалённых записей. Их нужно заполнить заново по первичным документам.
  • 📌 Проверьте кадровые и складские остатки, если используются.

Свежая выгрузка

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

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

Если утилита chdbfl не справилась с восстановлением

Бывает, что chdbfl зависает, падает или после исправления база всё равно не открывается. Варианты по порядку — от безопасного к радикальному:

СпособКогда применятьРиски
Повтор chdbfl на свежей копии файлаУтилита прервалась или завислаПочти нет, если работаете с копией
chdbfl более новой версии платформыСтарая утилита не открывает файлНужно установить платформу; база может потребовать её же для работы
Проверка диска и перенос файла на исправный носительПовторяются ошибки чтения, есть подозрение на дискРаботать с отказывающим диском опасно — сначала скопируйте файл
Восстановление из резервной копииПовреждены служебные таблицы, утилита бессильнаТеряются данные после даты копии
Резервная копия + перенос данных за периодКопия старая, а повреждённая база частично читаетсяТрудоёмко, нужен специалист

Если 1С пишет об ошибках чтения файла, а chdbfl то находит, то не находит повреждения — подозревайте сам диск. Скопируйте 1Cv8.1CD на другой носитель и проверьте диск средствами ОС, например chkdsk D: /f. Команда с ключом /f для системного диска выполняется при перезагрузке.

Не запускайте исправление повторно на одном и том же файле много раз подряд в надежде на чудо. Каждый проход может удалять ещё часть записей. Работайте с копиями, сравнивайте результат.

Пакетный режим и параметры запуска для регламентных проверок

У chdbfl нет документированного набора ключей командной строки — это инструмент для ручного запуска. Для регулярной проверки по расписанию используют пакетный режим Конфигуратора с параметром /IBCheckAndRepair. Он делает тестирование и исправление — то же, что пункт меню, но без участия человека.

Пример bat-файла для ночной проверки:

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -LogIntegrity -RecalcTotals -TestOnly /Out"D:\Logs\check_buh.txt"

Что значат ключи:

  • -LogIntegrity — проверка логической целостности;
  • -RecalcTotals — пересчёт итогов;
  • -TestOnly — только проверка, без исправления. Уберите его, если нужно исправлять;
  • /Out — файл протокола, его потом можно разобрать или отправить себе.

Пакетный запуск тоже требует, чтобы в базе никого не было. Ставьте его на ночь, когда гарантированно нет пользователей, и не храните реальный пароль администратора в открытом bat-файле на общем ресурсе.

Сама chdbfl в такой сценарий не встраивается: её запускают руками, когда проверка в Конфигураторе уже показала проблемы или база не открывается.

Как защитить файловую базу от повреждений

Почти все повреждения 1Cv8.1CD — следствие оборванной записи. Защита сводится к тому, чтобы запись не обрывалась, а если оборвалась — было откуда восстановиться.

  • 🔌 ИБП. На компьютер или сервер, где лежит файл базы, — обязательно. Отключение света во время проведения документа — классический путь к Файл базы данных поврежден.
  • 🌐 Стабильная сеть. Файловая база по сети на Wi-Fi или через VPN — постоянный риск. Для удалённой работы лучше терминальный доступ или веб-публикация.
  • 🛡️ Исключения в антивирусе. Добавьте каталог с базами в исключения проверки в реальном времени: сканирование большого .1CD тормозит работу и мешает записи.
  • 💾 Резервные копии. Ежедневная копия файла 1Cv8.1CD, снятая, когда в базе никого нет, плюс периодическая выгрузка .dt. Копии храните на другом носителе.
  • 👥 Число пользователей. Файловая база рассчитана на небольшую команду. Если одновременно работают 8–10 человек и больше, задумайтесь о переходе на клиент-серверный вариант.
  • 🧹 Регламентная проверка. Раз в месяц — тестирование в пакетном режиме по расписанию, раз в квартал — проверка chdbfl в режиме без исправления.
Регламент для файловой базы
Выполнено: 0 / 6

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

Можно ли запускать chdbfl, пока в базе работают люди?
Нет. Утилита требует монопольного доступа к файлу и просто не откроет его, если база занята.
Утилита удалит мои данные?
В режиме проверки — нет, файл не меняется. В режиме исправления она может удалить записи, которые невозможно прочитать. Поэтому перед исправлением делают копию файла.
Подходит ли chdbfl для серверной базы на SQL?
Нет, только для файловых баз с файлом 1Cv8.1CD. Для серверных баз используют средства проверки самой СУБД и тестирование в Конфигураторе.
Нужна ли лицензия, чтобы запустить chdbfl?
Нет, утилита работает с файлом напрямую, без входа в информационную базу. Лицензия понадобится уже для запуска 1С после восстановления.
Сколько длится проверка?
Зависит от размера файла и скорости диска: базы до нескольких гигабайт проверяются за минуты, большие — до часа и дольше. На SSD быстрее в разы.