База 1С не открывается из-за сбоя файла: восстановление по шагам
Содержание
Если 1С пишет, что файл базы данных поврежден, первым делом закройте все сеансы и скопируйте папку базы целиком. Потом восстановите базу из свежей резервной копии. Копии нет или она старая — исправьте файл 1Cv8.1CD утилитой chdbfl.exe и прогоните тестирование и исправление в конфигураторе.
Обычно ошибка выглядит так: Ошибка СУБД: Файл базы данных поврежден. Рядом в журнале или в окне ошибки могут быть Ошибка формата потока или Нарушена целостность структуры конфигурации. Чаще всего файл повреждают внезапное отключение питания, обрыв сети при работе с базой в общей папке, сбойный диск и антивирус, который проверяет файл базы во время записи.
Первые действия при повреждении файла базы
Главное правило: ничего не лечить на единственном экземпляре файла. Любая утилита исправления может удалить часть данных, и без копии откатиться будет не к чему.
- Попросите всех выйти из базы. Проверьте, что процессов
1cv8.exeи1cv8c.exeс этой базой не осталось ни у кого. - Откройте папку базы. Путь виден в окне запуска: выделите базу в списке, внизу окна будет строка
File="...". - Скопируйте всю папку на другой диск или в другую папку. Назовите её с датой, например
Base_broken_2026-10-07. - Посмотрите размер
1Cv8.1CD. Если файл весит 0 байт или заметно меньше вчерашнего, лечить утилитами почти нечего — сразу идите к резервной копии. - Проверьте диск. В Windows это
chkdsk D:(без ключей — только проверка). Если диск сыплет ошибками, переносите копию базы на исправный носитель и работайте уже с ней.
Файл 1Cv8.1CL рядом с базой — файл блокировки. Удалять его можно только когда точно никто не работает в базе, иначе оборвёте чужие сеансы и рискуете повредить базу ещё раз.
Что лежит в папке файловой базы:
| Файл или папка | Что это | Можно ли трогать |
|---|---|---|
1Cv8.1CD | сама база: данные и конфигурация | только копировать, лечить — на копии |
1Cv8.1CL | блокировка, пока база открыта | удалить можно при закрытой базе |
1Cv8Log | журнал регистрации | не нужен для восстановления данных, но помогает найти момент сбоя |
Восстановление из резервной копии — самый надёжный путь
Если копия есть, это самый быстрый и безопасный вариант. Вы теряете только то, что внесли после её создания, зато получаете заведомо целую базу.
Какая копия у вас может быть
- 📦 Выгрузка
.dt— делается в конфигураторе черезАдминистрирование → Выгрузить информационную базу. - 🗂 Копия файла
1Cv8.1CD— сделанная скриптом, программой резервного копирования или вручную при закрытой базе. - 🔁 Копия из самой программы. В типовых конфигурациях на БСП для файловых баз есть
Администрирование → Обслуживание → Резервное копирование и восстановление. Программа сама складывает копии в указанную папку. - ☁️ Копия облачного сервиса или NAS — снапшот папки на определённый момент.
Как вернуть базу из выгрузки .dt
- Создайте новую пустую информационную базу в окне запуска:
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации. - Откройте её в конфигураторе.
- Выберите
Администрирование → Загрузить информационную базуи укажите файл.dt. - Дождитесь окончания загрузки и согласитесь на перезапуск.
- Зайдите в базу в режиме 1С:Предприятие, проверьте последние документы.
Загружайте .dt в новую базу, а не поверх повреждённой. Так у вас остаётся и старый файл, из которого потом можно вытащить данные за последние дни.
Как вернуть копию файла 1Cv8.1CD
Здесь всё проще: при закрытой базе подменяете файл 1Cv8.1CD в папке базы на файл из копии. Повреждённый файл не удаляйте, а переименуйте — например, в 1Cv8_broken.1CD.
Что делать с данными после даты копии
Копия недельной давности означает неделю потерянных документов. Варианты:
- вылечить повреждённый файл (следующий раздел) и сравнить его с копией;
- если лечение прошло успешно, работать в вылеченной базе, а копию держать для сверки;
- если лечение не помогло — восстановить из копии и внести документы заново по первичке, банковским выпискам и данным ЭДО.
Лечение файла 1Cv8.1CD утилитой chdbfl
chdbfl.exe — штатная утилита платформы для проверки физической целостности файловой базы. Она лежит в папке bin установленной версии платформы, например: C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.
Утилита работает только с файловыми базами и только с закрытым файлом: пока кто-то в базе, она файл не получит.
Порядок работы
- Убедитесь, что копия папки базы сделана (первый раздел).
- Запустите
chdbfl.exeот имени администратора. Берите утилиту из той же версии платформы, на которой работает база, или из более новой. - В поле имени файла укажите путь к
1Cv8.1CD. - Сначала запустите проверку без исправления: снимите флажок исправления ошибок и нажмите «Выполнить». Посмотрите, сколько ошибок найдено.
- Затем включите флажок исправления обнаруженных ошибок и запустите ещё раз.
- Повторяйте запуск, пока утилита не перестанет находить ошибки. Обычно хватает одного-двух проходов.
- После chdbfl обязательно сделайте тестирование и исправление в конфигураторе (раздел ниже). Утилита чинит структуру файла, но не проверяет логику данных.
Исправление в chdbfl может удалить повреждённые записи безвозвратно — запускайте его только на базе, копия которой уже лежит в надёжном месте.
Если chdbfl не справилась
- ❌ Утилита падает или зависает на одном и том же месте — попробуйте
chdbfl.exeиз более новой версии платформы. - ❌ Ошибки остаются после нескольких проходов — переходите к выгрузке: попробуйте открыть базу
в конфигураторе и сделать выгрузку
.dt. Если выгрузка прошла, загрузите её в новую базу. Загрузка сама по себе пересобирает файл и часто убирает остатки повреждения. - ❌ Конфигуратор не открывает базу вообще — остаются резервная копия или помощь специалистов (последний раздел).
Если база на SQL: проверка на стороне СУБД
В клиент-серверном варианте файла 1Cv8.1CD нет, и chdbfl не применяется. Данные лежат в Microsoft SQL Server или PostgreSQL, поэтому физическую целостность проверяют средствами СУБД. Работы на стороне СУБД ведёт администратор сервера.
Microsoft SQL Server
Проверка базы без изменений:
DBCC CHECKDB ('Base1C') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Если ошибки найдены, лучший путь — восстановить базу из резервной копии SQL. При полной модели восстановления и наличии копий журнала транзакций можно вернуться на момент прямо перед сбоем.
Если копии нет, исправление выполняют в однопользовательском режиме:
ALTER DATABASE Base1C SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ('Base1C', REPAIR_REBUILD);
ALTER DATABASE Base1C SET MULTI_USER;
SET SINGLE_USER WITH ROLLBACK IMMEDIATE сразу обрывает все подключения к базе, включая сеансы 1С. Делайте это вне рабочего времени и предупредите пользователей.
Режим REPAIR_ALLOW_DATA_LOSS — крайняя мера: он может удалить целые страницы данных. После него база 1С почти всегда требует тестирования и исправления, а часть документов может пропасть.
PostgreSQL
Встроенного аналога DBCC CHECKDB нет. Начиная с PostgreSQL 14 есть утилита pg_amcheck, она проверяет индексы и таблицы. Повреждённые индексы перестраивают командой REINDEX. Если повреждены сами данные, надёжный выход — восстановление из дампа или из копии кластера.
После проверки СУБД
Когда СУБД сообщает, что база целая, запустите тестирование и исправление в конфигураторе. Оно проверяет уже логику 1С: ссылки, итоги регистров, структуру таблиц.
Тестирование и исправление информационной базы в конфигураторе
Этот режим проверяет базу на уровне 1С и работает и для файловых, и для клиент-серверных баз. Нужен монопольный доступ, поэтому все пользователи должны выйти.
Путь: Конфигуратор → Администрирование → Тестирование и исправление.
Какие проверки включить
| Проверка | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | перестраивает индексы | почти всегда |
| Проверка логической целостности | ищет нарушения внутренней структуры данных | всегда после сбоя |
| Проверка ссылочной целостности | ищет ссылки на несуществующие объекты | всегда после сбоя |
| Пересчёт итогов | пересчитывает итоги регистров | если отчёты показывают не те остатки |
| Сжатие таблиц | убирает пустое место | по желанию, увеличивает время |
| Реструктуризация таблиц | пересоздаёт таблицы базы | если остальное не помогло; самая долгая |
В последних версиях платформы для файловых баз в этом списке есть и проверка физической целостности — по сути, тот же chdbfl, только из конфигуратора.
Что делать со «битыми» ссылками
В окне есть два блока настроек:
- При наличии ссылок на несуществующие объекты: создавать объекты, очищать ссылки или не изменять.
- При частичной потере данных объектов: создавать объекты или удалять их.
Для бухгалтерской базы безопаснее вариант «Создавать объекты». Программа создаст пустые элементы-заглушки, которые потом видно в справочниках и можно восполнить вручную. Очистка ссылок «тихо» обнуляет реквизиты в документах, и найти, что именно пропало, гораздо сложнее.
Порядок
- Сначала выберите режим «Тестирование» без исправления. Посмотрите отчёт в окне сообщений.
- Затем режим «Тестирование и исправление» с теми же галочками.
- Откройте базу в режиме 1С:Предприятие. Проверьте оборотно-сальдовую ведомость, остатки по складам и последние документы.
То же самое из командной строки
Для больших баз удобно запускать проверку ночью из пакетного файла:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -BadRefCreate -BadDataCreate /Out"D:\Logs\check.log"
Чтобы только проверить, без изменений, добавьте ключ -TestOnly. Результат проверки окажется в файле, указанном в /Out.
Как не допустить повторного повреждения
Повреждение файла почти всегда имеет внешнюю причину. Если её не убрать, через месяц всё повторится.
Железо и питание
- 🔌 Источник бесперебойного питания для компьютера или сервера, где лежит файловая база, с корректным выключением при пропадании сети.
- 💽 Регулярная проверка состояния дисков. Диск с растущими ошибками чтения — первый кандидат на повреждение базы.
Сеть и общие папки
- 🌐 Файловая база в общей папке по Wi-Fi или через нестабильный VPN — частая причина повреждений. Обрыв связи посреди записи оставляет файл в неполном состоянии.
- 👥 Если в базе одновременно работают больше 5–10 человек или есть удалённые пользователи, разумно перейти на клиент-серверный вариант или веб-доступ через публикацию на веб-сервере.
Антивирус и программы синхронизации
- 🛡 Добавьте папку базы в исключения антивируса. Проверка
1Cv8.1CDво время записи блокирует файл и может привести к сбою. - ☁️ Не держите рабочую базу в папке, которую синхронизируют облачные сервисы. Они копируют файл в момент записи и иногда «возвращают» старую версию.
Резервные копии по расписанию
- Ежедневная копия файла или выгрузка
.dtвне рабочего времени. - Хранение минимум 7–14 последних копий, а не одной перезаписываемой: повреждение замечают не всегда в тот же день.
- Одна копия — на другом физическом носителе.
- Раз в месяц пробное восстановление копии в отдельную базу. Копия, которую никто не проверял, может оказаться пустой.
Когда без специалиста не обойтись
Своими силами база восстанавливается в большинстве бытовых случаев: свежая копия, один проход chdbfl, тестирование. Специалист нужен, если:
1Cv8.1CDвесит 0 байт или открывается с ошибкой уже на уровне файловой системы;- диск физически сбоит — щелкает, не определяется, система не видит раздел;
- chdbfl и тестирование не убирают ошибку, а копии нет совсем;
- на SQL-сервере
DBCC CHECKDBсообщает о повреждениях системных страниц, иREPAIR_REBUILDне помогает; - после исправления пропали документы, и их нужно вытащить из повреждённого файла по частям.
Кого искать:
| Ситуация | К кому обращаться | Ориентир по цене (примерно) |
|---|---|---|
| Файл открывается, но не лечится стандартными средствами | специалист по 1С или партнёр 1С | от 3 до 15 тыс. руб. за случай |
| Повреждения на SQL-сервере | администратор баз данных | от 5 тыс. руб., зависит от размера базы |
| Физически сбойный диск | лаборатория восстановления данных | от 5–10 тыс. руб., сложные случаи — дороже |
При поломке диска ничего не запускайте с него повторно и не устанавливайте программы восстановления на тот же диск. Каждая попытка записи уменьшает шанс вернуть файл.
Пока ждёте специалиста, подготовьте: копию папки базы, версию платформы, точный текст ошибки и время, когда базу последний раз открывали без проблем. Это ускорит работу и снизит её стоимость.
Частые вопросы
Можно ли запускать chdbfl, если база на сервере 1С?
1Cv8.1CD файловой базы. Для клиент-серверной базы целостность проверяют средствами СУБД, а затем — тестированием в конфигураторе.Сколько времени занимает лечение базы?
Пропадут ли документы после исправления?
Помогает ли очистка кэша при ошибке «Файл базы данных поврежден»?
Ошибка формата потока, но повреждение 1Cv8.1CD она не исправит.