Что делать, если 1С пишет «Файл базы данных поврежден»

· 11 мин

Содержание

Ошибку Файл базы данных поврежден в 1С 8.3 исправляют в таком порядке: закрыть все сеансы, скопировать файл 1Cv8.1CD в отдельную папку, проверить диск, запустить утилиту chdbfl.exe из папки bin платформы с флажком «Исправлять обнаруженные ошибки», а затем выполнить в Конфигураторе Администрирование → Тестирование и исправление. Если база всё равно не открывается — восстановить её из резервной копии или перенести данные в новую пустую базу.

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

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

Первые шаги: копия файла и проверка диска

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

Шаг 1. Завершите работу с базой

  1. Попросите всех пользователей выйти из программы.
  2. Закройте Конфигуратор, если он открыт.
  3. Если база лежит в сетевой папке, убедитесь, что на других компьютерах не висят процессы 1cv8.exe или 1cv8c.exe (Диспетчер задач → вкладка «Подробности»).

Если завершаете процессы принудительно, несохранённые документы у пользователей пропадут. Делайте это после предупреждения и лучше в нерабочее время.

Шаг 2. Скопируйте всю папку базы

Путь к базе виден в окне запуска 1С: выделите базу в списке — внизу окна появится строка File="D:\Base\Buh". Откройте эту папку и скопируйте её целиком, а не только 1Cv8.1CD. Внутри лежит ещё журнал регистрации (1Cv8Log), он понадобится для анализа.

Копию кладите на другой физический диск или флешку. Копия на тот же сбойный диск — плохая страховка.

Шаг 3. Проверьте диск

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

  • 🔍 Откройте Просмотр событий → Журналы Windows → Система и отфильтруйте события по источникам disk и Ntfs. Ошибки чтения-записи там — повод сначала менять диск.
  • 🩺 Посмотрите состояние SMART любой утилитой диагностики дисков. Растущее число переназначенных секторов — тревожный знак.
  • 🛠 Проверьте файловую систему командой от имени администратора:
chkdsk D: /f

Для системного диска C: проверка запустится при следующей перезагрузке. Ключ /r (поиск сбойных секторов) идёт долго, на больших дисках — часами.

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

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

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

Где искать копии:

ИсточникЧто это за файлКак восстановить
Резервное копирование из программыАрхив с файлом базы или выгрузка .dtВ БП 3.0, ЗУП 3.1, УТ 11: Администрирование → Обслуживание → Резервное копирование и восстановление
Выгрузка из КонфигуратораФайл .dtКонфигуратор → Администрирование → Загрузить информационную базу
Копия перед обновлениемВыгрузка .dt или копия папкиТак же, как выше, в зависимости от формата
Ручная копия папкиФайл 1Cv8.1CDЗаменить повреждённый файл копией при закрытой базе
Теневые копии WindowsПредыдущая версия папкиСвойства папки → вкладка «Предыдущие версии», если защита включена

Как действовать:

  1. Повреждённый файл не удаляйте — переименуйте, например, в 1Cv8_broken.1CD.
  2. Восстановите копию в новую папку и подключите её в окне запуска кнопкой «Добавить» как отдельную базу.
  3. Проверьте, что база открывается и последние документы на месте.
  4. Определите, за какой период данные нужно ввести заново: всё, что создано после даты копии.

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

Утилита chdbfl.exe: исправление структуры файла 1CD

Если копии нет или она слишком старая, переходите к утилите проверки физической целостности. Она входит в поставку платформы и лежит рядом с 1cv8.exe:

C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe

Вместо 8.3.xx.xxxx — номер вашей версии платформы. Запускайте утилиту из той же версии, которой открываете базу.

Порядок работы

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

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

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

chdbfl.exe чинит только физическую структуру файла. Связи между объектами и итоги регистров проверяет Конфигуратор:

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

Ту же проверку можно запустить без интерфейса, например ночью по расписанию:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Base\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -IBCompression /Out "D:\Logs\check.txt"

Результат проверки будет в файле check.txt.

Если Конфигуратор после chdbfl.exe всё ещё не открывает базу с той же ошибкой, повторите утилиту второй раз. Иногда первый проход исправляет одни таблицы, и только после этого видны ошибки в других.

Диагностика: выберите симптом

Журнал регистрации и системные логи: ищем причину

Исправить файл мало — нужно понять, почему он сломался. Иначе ошибка вернётся.

Журнал регистрации базы

Он хранится в папке 1Cv8Log внутри каталога базы. В современных версиях 8.3 это файл 1Cv8.lgd, в базах, перешедших со старых версий, — набор файлов .lgf и .lgp.

Если база открывается, журнал смотрят в пользовательском режиме: Администрирование → Обслуживание → Журнал регистрации (БП 3.0, ЗУП 3.1, УТ 11). В Конфигураторе — Администрирование → Журнал регистрации.

Что искать:

  • ⏱ Последние события перед сбоем: кто работал и что проводил. Аварийно завершённый сеанс без события «Сеанс. Завершение» — подсказка, что программу закрыли некорректно.
  • 📄 Документы, созданные в день сбоя. Их нужно проверить первыми: именно они чаще всего теряются при исправлении.
  • 🔄 Обновление конфигурации или обмен данными в момент сбоя. Прерванное обновление — частая причина повреждения.

Если основная база не открывается, подключите копию папки как отдельную базу: журнал из 1Cv8Log можно читать через неё после восстановления.

Системные журналы Windows

В Просмотр событий проверьте время, когда база перестала открываться:

  • 🔌 Kernel-Power — неожиданная перезагрузка или отключение питания;
  • 💽 disk, Ntfs — ошибки чтения и записи;
  • 🌐 ошибки сетевого подключения на клиентах, если база лежит в общей папке.

Совпадение по времени с одним из этих событий почти всегда указывает на причину.

Перенос данных в новую пустую базу

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

Вариант 1. Через выгрузку .dt

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

  1. В Конфигураторе повреждённой базы: Администрирование → Выгрузить информационную базу, сохраните файл .dt.
  2. В окне запуска создайте новую пустую базу: «Добавить» → «Создание новой информационной базы» → «Создание информационной базы без конфигурации».
  3. Откройте её в Конфигураторе: Администрирование → Загрузить информационную базу, укажите выгруженный .dt.
  4. Проверьте работу новой базы и только после этого замените ею рабочую.

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

Вариант 2. Конфигурация плюс данные по частям

Если .dt не выгружается, можно спасти хотя бы часть данных:

  1. Сохраните конфигурацию: Конфигурация → Сохранить конфигурацию в файл (файл .cf). Если основная конфигурация снята с поддержки или доработана, это единственный способ не потерять доработки.
  2. Создайте новую базу из этого .cf или из шаблона той же типовой конфигурации того же релиза.
  3. Перенесите справочники и документы обработкой выгрузки и загрузки данных в XML. Она переносит объекты выборочно, поэтому таблицы, которые не читаются, можно пропустить.
  4. Остатки по счетам, которые не удалось перенести документами, введите заново на дату начала периода.

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

Как сравнить способы

СпособКогда подходитРиски
Восстановление из копииЕсть свежая копияПотеря данных после даты копии
chdbfl.exe + тестированиеКопии нет, повреждения локальныеУтилита удаляет нечитаемые записи
Выгрузка и загрузка .dtБаза открывается, но нестабильнаНет, если выгрузка прошла без ошибок
Новая база + XML.dt не выгружаетсяДолго, нужна сверка остатков

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

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

Питание и железо

  • 🔋 Источник бесперебойного питания для компьютера, где лежит база. Отключение света во время записи — главная причина повреждений.
  • 💽 Локальный диск SSD вместо старого HDD или USB-накопителя.
  • 🧯 Регулярная проверка SMART, хотя бы раз в квартал.

Сеть и общие папки

  • 🌐 Файловая база в общей папке — рабочее решение для 3–5 пользователей в проводной сети. По Wi‑Fi и через VPN с нестабильным каналом базу в общей папке не открывайте: обрыв во время записи бьёт файл.
  • 👥 Если пользователей больше, переходите на клиент-серверный вариант или публикацию через веб-сервер, где с файлом работает один процесс.
  • 📁 Не держите базу в папке, которую синхронизируют облачные клиенты (Яндекс Диск, OneDrive и подобные). Синхронизация открытого файла приводит к повреждению.

Антивирус

Добавьте папку базы и расширения .1CD, .lgd, .lgp в исключения антивируса. Проверка файла «на лету» во время записи 1С — одна из известных причин блокировок и сбоев.

Резервное копирование

Настройте автоматическое копирование в программе: Администрирование → Обслуживание → Резервное копирование и восстановление. Задайте расписание (например, ежедневно в конце дня), каталог на другом диске и срок хранения, например последние 10 копий.

Дополнительно раз в неделю делайте выгрузку .dt через Конфигуратор. Она меньше по объёму и заодно проверяет, что база читается целиком.

Защита файловой базы от повреждения
Выполнено: 0 / 8

Копию, которую ни разу не пробовали восстановить, нельзя считать копией. Раз в месяц разворачивайте её в отдельную базу и открывайте.

Если база клиент-серверная

В клиент-серверном варианте файла 1Cv8.1CD нет, и chdbfl.exe не применяется. Похожие симптомы там проверяют средствами СУБД:

  • для MS SQL Server — командой DBCC CHECKDB для базы данных информационной базы, её запускает администратор СУБД;
  • для PostgreSQL — по журналу сервера СУБД и восстановлением из резервной копии СУБД.

Логическую проверку в Конфигураторе (Тестирование и исправление) выполняют так же, как для файловой базы. Перед ней нужно установить блокировку сеансов в консоли кластера — у работающих пользователей сеансы будут завершены.

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

Можно ли запускать chdbfl.exe, пока пользователи работают в базе?
Нет. Утилите нужен монопольный доступ к файлу. Если файл занят, она не запустится или проверит его неправильно.
Где взять chdbfl.exe, если её нет в папке bin?
Она ставится вместе с платформой 1С:Предприятие 8.3. Если файла нет, переустановите или восстановите платформу через «Программы и компоненты» той же версии.
Сколько данных теряется после исправления?
Зависит от повреждения. Обычно это записи, которые писались в момент сбоя. Сверьте последние документы по журналу регистрации и введите недостающие заново.
Помогает ли от этой ошибки очистка кэша 1С?
Нет. Кэш хранится в профиле пользователя и лечит ошибки отображения и метаданных на клиенте. Повреждение самого файла 1Cv8.1CD очисткой кэша не исправить.
Стоит ли переходить с файловой базы на клиент-серверную?
Если пользователей больше пяти или ошибка повторяется при работе через сеть — да. В клиент-серверном варианте с данными работает СУБД, и обрыв сети у клиента не портит базу.