Восстановление базы данных 1С:Предприятие 8.3: что делать, когда база не открывается
Содержание
Восстановить базу данных 1С 8 можно четырьмя способами, и выбор зависит от того, что у вас есть на руках. Если делали выгрузку — загрузите копию .dt через Конфигуратор. Если база файловая и просто перестала открываться — прогоните файл 1Cv8.1CD через утилиту chdbfl.exe, а затем выполните «Тестирование и исправление». Если база клиент-серверная (MS SQL или PostgreSQL) — восстановите её из резервной копии средствами СУБД. А если ничего из этого нет — поднимите базу из последней копии каталога.
Прежде чем что-то делать, снимите копию текущего состояния базы, даже повреждённого. Любая процедура восстановления может сделать хуже, и шанс откатиться назад дороже потерянных десяти минут. Ниже — каждый способ по шагам: от безопасной загрузки копии до ремонта физически битого файла.
С чего начать: определяем характер повреждения
Симптомы у разных поломок разные, и лечатся они по-разному. Сначала поймите, с чем столкнулись.
- 🗂️ Файловая база — это один файл
1Cv8.1CDв каталоге базы (путь виден в окне запуска 1С при выборе базы). - 🖧 Клиент-серверная база — данные лежат в СУБД на сервере, в окне запуска у такой базы указан сервер 1С:Предприятия и имя базы данных.
Способ восстановления зависит от типа. Файловую чинят утилитами платформы и выгрузками, серверную — средствами СУБД.
В каталоге файловой базы, помимо самого 1Cv8.1CD, лежат вспомогательные файлы и папки: журнал регистрации, служебные данные полнотекстового поиска, временные файлы. Для восстановления важен только 1Cv8.1CD — остальное платформа пересоздаёт сама. Если рядом с файлом базы вы видите файл блокировки — значит, база всё ещё кем-то открыта или сеанс завис. Пока база занята, ни chdbfl, ни загрузка .dt не сработают.
1Cv8.1CD: оборвалась запись при сбое питания или потере связи с сетевым диском. Лечится chdbfl.exe.Если база открывается, но тормозит или «врёт» в отчётах, повреждение скорее логическое. Если не открывается вовсе и платформа ругается на формат файла или компонент Dbeng8 — физическое.
Восстановление файловой базы из копии .dt
Выгрузка .dt — это полный архив базы: и конфигурация, и все данные в одном файле. Если такая копия есть, восстановление сводится к её загрузке.
Загрузка .dt полностью затирает текущую базу. Всё, что внесли после создания копии, будет потеряно. Поэтому сначала выгрузите текущее состояние в отдельный файл — вдруг в нём окажутся нужные документы.
Порядок действий:
- Запустите 1С в режиме
Конфигуратор(в окне запуска выберите базу и нажмитеКонфигуратор). - Убедитесь, что в базе больше никто не работает . Загрузка требует монопольного доступа: остальные сеансы должны быть закрыты.
- Откройте
Администрирование → Загрузить информационную базу. - Укажите файл
.dtи подтвердите замену. - Дождитесь окончания и согласитесь на перезапуск Конфигуратора.
После загрузки откройте базу в режиме 1С:Предприятие и проверьте остатки, последние документы и обороты по ключевым счетам.
Загрузка .dt с чужой или более старой платформы может потребовать обновления конфигурации. Если версия платформы, на которой делали выгрузку, выше установленной — обновите платформу до номера не ниже той, иначе файл не загрузится.
Обратную операцию — создание .dt — делают там же: Администрирование → Выгрузить информационную базу. Возьмите за правило выгружать копию перед каждым обновлением и раз в неделю для рабочей базы.
Проверка и исправление файловой базы: chdbfl и Конфигуратор
Когда готовой выгрузки нет, а файл 1Cv8.1CD повреждён, базу чинят на месте. Сначала физика, потом логика — порядок важен.
Шаг 1. chdbfl.exe — проверка физической целостности
chdbfl.exe проверяет и чинит структуру самого файла базы. Утилита лежит в каталоге платформы: C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe.
- Закройте базу во всех режимах — и
1С:Предприятие, иКонфигуратор. Файл не должен быть занят. - Скопируйте файл
1Cv8.1CDв отдельную папку. Проверка с исправлением меняет файл необратимо. - Запустите
chdbfl.exe, укажите путь к1Cv8.1CD. - Поставьте галочку
Исправлять обнаруженные ошибкии нажмитеВыполнить. - Дождитесь завершения. Утилита покажет, сколько ошибок найдено и исправлено.
Первый прогон лучше сделать без галочки исправления — просто посмотреть масштаб проблемы. Если ошибок тысячи, файл, скорее всего, уже не спасти, и надёжнее поднимать базу из копии.
Шаг 2. Тестирование и исправление в Конфигураторе
Логическую целостность (ссылки, итоги, индексы) чинит встроенный механизм. Откройте Конфигуратор и зайдите в Администрирование → Тестирование и исправление.
Проверки, которые стоит включить при восстановлении:
| Проверка | Что делает |
|---|---|
| Реиндексация таблиц | Перестраивает индексы, часто снимает «тормоза» и ошибки поиска |
| Проверка логической целостности | Ищет нарушения в структуре данных |
| Проверка ссылочной целостности | Находит «битые» ссылки на удалённые объекты |
| Пересчёт итогов | Выравнивает итоги регистров с движениями документов |
| Сжатие таблиц ИБ | Освобождает место после удалений |
| Реструктуризация таблиц ИБ | Приводит структуру БД к описанию конфигурации |
Выберите режим Тестирование и исправление, а для ссылочной целостности укажите, что делать с битыми ссылками: создавать объекты, очищать ссылки или не изменять. Для первого прохода безопаснее выбрать Только тестирование, чтобы увидеть список проблем до правок.
Тестирование и исправление требует монопольного доступа и может идти часами на большой базе. Завершите все сеансы и запускайте в нерабочее время — прервавшаяся на полпути реструктуризация оставит базу в худшем состоянии, чем была.
Восстановление клиент-серверной базы из бэкапа СУБД
Если база работает на MS SQL Server или PostgreSQL, файлов 1Cv8.1CD у неё нет, и chdbfl тут бесполезен. Данные восстанавливают средствами самой СУБД из её резервных копий. Это и есть «восстановление через сервер SQL».
Перед восстановлением остановите работу пользователей: в консоли администрирования серверов 1С завершите сеансы и соединения с базой. Иначе RESTORE не получит монопольный доступ к базе СУБД и завершится ошибкой, а активные пользователи потеряют несохранённые данные.
MS SQL Server
Для полного восстановления из файла бэкапа .bak в SQL Server Management Studio или через T-SQL:
RESTORE DATABASE [MyBase1C]
FROM DISK = N'D:\Backup\mybase_full.bak'
WITH REPLACE, RECOVERY;
WITH REPLACE разрешает перезаписать существующую базу, RECOVERY переводит базу в рабочее состояние после восстановления.
Если у базы настроена модель восстановления Full и есть копии журнала транзакций, можно восстановиться на точный момент — например, за секунду до ошибочной групповой операции. Это и есть «восстановление через транзакции»:
-- 1. Полная копия без перевода в рабочий режим
RESTORE DATABASE [MyBase1C]
FROM DISK = N'D:\Backup\mybase_full.bak'
WITH NORECOVERY, REPLACE;
-- 2. Журнал транзакций до нужного момента
RESTORE LOG [MyBase1C]
FROM DISK = N'D:\Backup\mybase_log.trn'
WITH STOPAT = '2026-10-07 09:30:00', RECOVERY;
Point-in-time восстановление работает только при модели Full и регулярном бэкапе журнала. Если модель Simple, откатиться получится лишь до последней полной или разностной копии.
Если после сбоя сервера база в SQL Server помечена как Suspect или Recovery Pending, самый надёжный путь — не пытаться «оживить» её на месте, а восстановить из последней рабочей копии. Переводить базу в аварийный режим и запускать проверку целостности СУБД стоит только тогда, когда резервной копии нет вовсе, и лучше это делать вместе с администратором сервера — ошибочные команды на уровне СУБД способны добить то, что ещё читается.
PostgreSQL
Для PostgreSQL резервную копию обычно снимают через pg_dump в custom-формате, а восстанавливают через pg_restore:
pg_restore -U postgres -d mybase_1c -c -Fc D:\Backup\mybase.dump
Ключ -c пересоздаёт объекты базы. Восстанавливайте в заранее созданную пустую базу с теми же параметрами кодировки, что были у исходной (как правило, UTF-8).
После восстановления на уровне СУБД зайдите в Конфигуратор и прогоните Тестирование и исправление с реиндексацией — это снимет возможные расхождения индексов.
Когда выгрузки нет: восстановление из копии каталога
У файловой базы весь архив — это её каталог с файлом 1Cv8.1CD. Если .dt никто не делал, но каталог бэкапился целиком (резервное копирование
сервера, теневые копии Windows, облачная синхронизация), базу поднимают из копии папки.
- Найдите, где лежит рабочий каталог базы. Путь показан в окне запуска 1С под именем базы.
- Остановите работу с базой. Файл
1Cv8.1CDне должен быть открыт. - Переименуйте текущий каталог (не удаляйте — он ещё может пригодиться).
- Скопируйте на его место каталог из резервной копии.
- Запустите 1С:Предприятие и проверьте данные.
Теневые копии (Предыдущие версии в свойствах папки Windows) часто спасают, когда о бэкапах не задумывались. Правый клик по каталогу базы → Восстановить прежнюю версию → выбор даты до сбоя.
Облачные папки (Яндекс.Диск, OneDrive) для рабочей файловой базы опасны: синхронизация на лету бьёт файл 1Cv8.1CD. Но как источник старой копии при аварии они выручают — там хранится история версий.
Копия каталога восстанавливает базу целиком на момент копии. В отличие от .dt, её не нужно «загружать» — это сразу готовая к работе база.
Если под рукой оказался только поломанный каталог, но без свежей копии, попробуйте сначала скопировать из него 1Cv8.1CD в чистую пустую папку и подключить её как новую базу в окне запуска (Добавить → Добавление в список существующей). Иногда база, которая «не открывалась» из рабочего каталога из-за зависшего сеанса или проблем с правами на папку, спокойно открывается с чистого места. Это не ремонт файла, а способ отделить проблему базы от проблемы окружения.
Как настроить резервное копирование, чтобы не восстанавливать вручную
Самое надёжное восстановление — то, которое не понадобилось. Настройте копии заранее, и любая авария превратится из катастрофы в потерю пары часов работы.
Несколько замечаний по настройке:
- 🔁 Автоматическое резервное копирование в типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1) включается в разделе
Администрирование → Обслуживание → Резервное копирование и восстановление. Задаёте расписание и каталог хранения — платформа сама делает выгрузку. - 🗓️ Регламентные задания. Для серверной базы бэкап обычно вешают не на 1С, а на план обслуживания СУБД — он надёжнее и не нагружает сеансы пользователей.
- 📦 Глубина хранения. Держите не одну последнюю копию, а серию за несколько дней. Повреждение можно заметить не сразу, и единственная свежая копия окажется уже битой.
Проверка копий — отдельный пункт, который все пропускают. Резервная копия, которую ни разу не разворачивали, — это не копия, а надежда. Раз в месяц загрузите последний .dt в тестовую базу и убедитесь, что он открывается.
Частые вопросы
Чем отличается копия `.dt` от копии каталога базы?
.dt — это сжатый архив-выгрузка, его нужно загружать через Конфигуратор поверх существующей базы. Копия каталога — это готовая база целиком, её просто кладут на место рабочей папки и сразу запускают. Для переноса между платформами и в поддержку удобнее .dt, для быстрого отката — копия каталога.chdbfl не нашёл ошибок, а база всё равно не открывается. Что дальше?
Тестирование и исправление с реиндексацией и проверкой логической целостности.Можно ли восстановить базу без резервной копии вообще?
chdbfl и «Тестирование и исправление» — они чинят то, что ещё читается. Но если файл разрушен сильно, часть данных потеряется безвозвратно. Для серверной базы без бэкапа СУБД шансов почти нет. Именно поэтому копии настраивают заранее.Сколько времени занимает восстановление?
.dt и копия каталога — минуты для небольшой базы, до часа для крупной. Тестирование и исправление с реструктуризацией на большой базе идёт несколько часов, поэтому его запускают на ночь. RESTORE в SQL зависит от размера бэкапа и скорости диска.После восстановления отчёты показывают неверные остатки. Почему?
Тестирование и исправление и включите Пересчёт итогов. Для бухгалтерских остатков дополнительно выполните групповое перепроведение документов за период.