Восстановление базы 1С после сбоя: из копии, из .dt и через chdbfl
Содержание
Файл базы данных 1С восстанавливают одним из трёх способов: подменяют повреждённый 1Cv8.1CD его копией, загружают выгрузку .dt через Конфигуратор → Администрирование → Загрузить информационную базу или лечат сам файл утилитой chdbfl.exe и режимом «Тестирование и исправление». Если копия свежая, первый способ самый быстрый: 5–10 минут, и база снова открывается.
Порядок одинаков для файловой и клиент-серверной базы 1С 8.3: сначала копия, потом лечение. Причина простая: любое исправление повреждённого файла может удалить часть данных без возможности отката.
Шаг 0. Понять, что сломалось, и сохранить исходный файл
Прежде чем что-то чинить, определите тип базы и характер поломки. От этого зависит маршрут.
Где лежит база. В окне запуска 1С выделите базу и посмотрите строку внизу списка:
- 📁
File="D:\Base\Buh"— файловая база. Данные в одном файле1Cv8.1CDв этой папке. - 🖥
Srvr="server1";Ref="buh"— клиент-серверная. Данные лежат в СУБД (MS SQL Server или PostgreSQL), файла1Cv8.1CDнет.
Что именно не так. Частые симптомы и куда с ними идти:
| Симптом | Вероятная причина | С чего начать |
|---|---|---|
Файл базы данных поврежден при запуске | Сбой записи: выключили питание, упал сервер, сетевой диск отвалился | Копия файла → chdbfl.exe |
Ошибка формата потока | Повреждены служебные данные или кэш | Очистка кэша, затем тестирование и исправление |
| База открывается, но пропали или испорчены документы | Ошибка пользователя, неудачная обработка | Журнал регистрации + копия в отдельную базу |
Файл 1Cv8.1CD удалён или нулевого размера | Удаление, шифровальщик, сбой диска | Резервная копия, теневые копии Windows |
Сделайте копию «как есть». Пока ничего не трогали:
- Закройте все сеансы. Пользователей предупредите: дальше база будет недоступна.
- Скопируйте всю папку базы целиком, не только
1Cv8.1CD, в другое место, напримерD:\Rescue\Buh_2026-10-07. - Проверьте, что в копии размер
1Cv8.1CDсовпадает с оригиналом.
Эта копия — страховка. Если лечение испортит файл сильнее, вы вернётесь к исходной точке.
Если база на сетевом диске, сначала перенесите копию на локальный диск сервера или ПК и работайте с ней там. Восстановление по сети медленнее и само может повредить файл при обрыве связи.
Способ 1. Восстановление файловой базы из копии или .dt-выгрузки
Это самый надёжный путь. Данные вернутся ровно на момент копии, без потерь внутри неё.
Если есть копия файла 1Cv8.1CD
- Убедитесь, что к базе никто не подключён.
- Переименуйте повреждённый файл в
1Cv8_broken.1CD. Не удаляйте его. - Положите на его место файл из резервной копии. Если копия в zip-архиве — сначала распакуйте.
- Запустите базу в режиме «Предприятие» и проверьте последние документы.
Такие архивы, например, создаёт встроенная обработка резервного копирования в типовых конфигурациях для файлового режима (Администрирование → Обслуживание → Резервное копирование и восстановление). Внутри архива лежит тот же 1Cv8.1CD.
Если есть выгрузка .dt
Файл .dt — это выгрузка всей информационной базы: и конфигурации, и данных. Загружают её только в Конфигураторе.
- Создайте новую пустую базу в окне запуска:
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации. - Откройте её в режиме «Конфигуратор».
- Выберите
Администрирование → Загрузить информационную базуи укажите файл.dt. - Подтвердите замену данных. Дождитесь сообщения о завершении и перезапуска.
- Откройте базу в режиме «Предприятие», проверьте остатки и последние документы.
Загрузка .dt полностью заменяет всё содержимое базы, в которую грузите. Поэтому загружайте в новую базу, а не поверх рабочей, пока не убедитесь, что выгрузка цела и свежая.
Для крупных баз загрузку удобно запускать из командной строки, без открытия окна Конфигуратора:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh_new" /N"Администратор" /P"пароль" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log"
Номер версии в пути замените на установленный у вас. Платформа для загрузки должна быть с номером не ниже той, на которой делали выгрузку. Результат и текст ошибок смотрите в файле restore.log.
Способ 2. Лечение повреждённого файла утилитой chdbfl
Копии нет или она слишком старая — тогда лечат сам файл. Для файловых баз у платформы есть отдельная утилита chdbfl.exe. Она лежит в папке bin установленной платформы, например C:\Program Files\1cv8\8.3.24.1586\bin\chdbfl.exe.
Утилита работает только с файлом, который никто не открыл: ни Предприятие, ни Конфигуратор.
- Закройте все сеансы базы. Запустите
chdbfl.exeот имени администратора. - В поле имени файла укажите путь к копии
1Cv8.1CD, а не к оригиналу. - Сначала запустите проверку без галочки «Исправлять обнаруженные ошибки». Посмотрите, что найдено.
- Если ошибки есть — включите галочку и запустите ещё раз.
- После исправления откройте базу и выполните тестирование и исправление (способ 3).
На файле в 10–20 ГБ проверка идёт от нескольких минут до часа, всё зависит от диска.
chdbfl при исправлении может удалить записи, которые не удалось прочитать. После неё обязательно сверьте остатки и обороты с последней сданной отчётностью.
Если утилита завершается с ошибкой или после неё база всё равно не открывается, остаются специализированные сервисы восстановления .1CD. Это платная работа с непредсказуемым результатом, поэтому к ней идут, когда других копий нет вовсе.
Способ 3. Тестирование и исправление в Конфигураторе
Этот режим проверяет не физическую структуру файла, а логику данных: индексы, ссылки, итоги регистров. Подходит и для файловых, и для серверных баз. Нужен монопольный доступ.
Конфигуратор → Администрирование → Тестирование и исправление
Что выбрать в окне:
| Флажок | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц информационной базы | Пересобирает индексы | Почти всегда, безопасно |
| Проверка логической целостности | Ищет нарушения внутренней структуры данных | При любых сбоях |
| Проверка ссылочной целостности | Находит ссылки на несуществующие объекты («битые ссылки») | Если в документах видите <Объект не найден> |
| Пересчёт итогов | Заново считает итоги регистров | Если отчёты расходятся с документами |
| Сжатие таблиц | Убирает пустое место в файле | После массового удаления данных |
| Реструктуризация таблиц | Полностью пересоздаёт таблицы | Только при серьёзных повреждениях, занимает долго |
Начните с режима «Только тестирование». Посмотрите результат, затем запустите «Тестирование и исправление».
Для битых ссылок программа предложит действие. Безопаснее выбрать создание объектов вместо удаления: появятся пустые элементы-заглушки, и вы увидите, где именно были потери. Удаление ссылок молча стирает строки документов.
Перед этим режимом очистите кэш клиента: в окне запуска нажмите Настройка и включите очистку, либо запустите 1cv8.exe с ключом /ClearCache. Часть ошибок вроде Ошибка формата потока уходит уже на этом шаге.
Как найти потерянные данные через журнал регистрации
Бывает, что база цела, но кто-то удалил документы или запустил неудачную обработку. Восстанавливать всю базу из копии ради пяти документов — значит потерять работу всех остальных за день. Здесь помогает связка «журнал + копия».
Что умеет журнал, а что нет
Журнал регистрации фиксирует кто, когда и что сделал: создал, изменил, провёл, удалил объект. Но содержимое документа до изменения он не хранит. Восстановить из журнала сам документ нельзя — только найти, что именно восстанавливать.
Открыть журнал можно:
- в Предприятии:
Администрирование → Обслуживание → Журнал регистрации(БП 3.0, ЗУП 3.1, УТ 11); - в Конфигураторе:
Администрирование → Журнал регистрации.
В файловой базе журнал лежит в папке 1Cv8Log рядом с 1Cv8.1CD. Сохраняйте её вместе с базой: без неё не узнать, что произошло.
Порядок точечного восстановления
- В журнале поставьте отбор по периоду и событию «Данные. Удаление» или «Данные. Изменение».
- Запишите, какие объекты пострадали, кто и когда это сделал.
- Разверните резервную копию на момент до этого времени в отдельную базу (способ 1, новая база).
- Найдите в копии нужные документы и перенесите их в рабочую базу: выгрузкой в XML универсальной обработкой с диска ИТС или вручную, если документов немного.
- Проверьте перенесённые документы и проведите их.
Если в базе включено версионирование объектов (история изменений), предыдущее состояние документа можно посмотреть прямо в его карточке, без развёртывания копии. Включают эту настройку заранее, в общих настройках администрирования, — задним числом историю она не создаст.
Восстановление клиент-серверной базы в MS SQL и PostgreSQL
В серверном варианте chdbfl не применяется: данных в файле нет. Восстанавливают средствами СУБД или через .dt.
Через .dt
Работает так же, как для файловой базы. Создайте новую базу в кластере 1С, откройте её в Конфигураторе и загрузите .dt. Для баз крупнее 50–100 ГБ этот путь медленный: загрузка может идти несколько часов.
Из бэкапа MS SQL Server
- В консоли администрирования серверов 1С включите для базы блокировку начала сеансов. Активные пользователи будут отключены — делайте это вне рабочего времени или после предупреждения.
- В SQL Server Management Studio восстановите базу из
.bak:
RESTORE DATABASE [buh]
FROM DISK = N'E:\SQLBackup\buh_full.bak'
WITH REPLACE, RECOVERY;
- Если база в полной модели восстановления и есть бэкапы журнала транзакций, можно вернуться на конкретную минуту до сбоя. Тогда полный бэкап восстанавливают с
NORECOVERY, а последний журнал — с параметромSTOPAT. - Снимите блокировку сеансов и проверьте базу в 1С.
Для проверки физической целостности самой базы в SQL используйте DBCC CHECKDB. Его аналог в мире файловых баз — как раз chdbfl.
Из дампа PostgreSQL
Дамп, снятый pg_dump в формате custom, восстанавливают так:
createdb -U postgres -T template0 buh_restore
pg_restore -U postgres -d buh_restore "E:\PGBackup\buh.backup"
Затем в консоли кластера 1С зарегистрируйте новую базу и в её свойствах укажите имя базы в СУБД buh_restore. При регистрации копии включите в свойствах базы блокировку регламентных заданий, чтобы копия не начала загружать банк, обмены и почту вместо рабочей базы.
Сравнение способов
| Способ | Для каких баз | Точность | Скорость | Риск |
|---|---|---|---|---|
Копия 1Cv8.1CD | Файловые | На момент копии | Минуты | Низкий |
Загрузка .dt | Любые | На момент выгрузки | Минуты — часы | Низкий, если в новую базу |
chdbfl.exe | Файловые | Почти до сбоя | Минуты — час | Удаление нечитаемых записей |
| Тестирование и исправление | Любые | Текущее состояние | Минуты — часы | Удаление битых ссылок |
| Бэкап СУБД + журнал транзакций | Серверные | До минуты | Зависит от размера | Низкий |
Как не доводить до восстановления
Восстановление проходит легко, когда есть свежая и проверенная копия. Минимальный набор мер:
- 🔁 Ежедневная выгрузка
.dtпо расписанию. Пакетная команда и Планировщик заданий Windows, ночью, когда пользователей нет:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh" /N"Администратор" /P"пароль" /DumpIB "E:\Backup\buh_%date:~-4%%date:~3,2%%date:~0,2%.dt" /Out "E:\Backup\dump.log"
Выгрузке нужен монопольный доступ: если в базе кто-то остался, задание завершится с ошибкой, и это будет видно в логе.
- 💾 Копии на другом носителе. Копия на том же диске, что и база, погибнет вместе с ним. Минимум — отдельный диск, лучше ещё и облако или NAS.
- 🗂 Хранить несколько поколений. Например, 7 ежедневных и 4 еженедельных копии. Ошибку часто замечают через несколько дней.
- ⚡ ИБП для сервера или ПК с базой. Отключение питания во время записи — классическая причина
Файл базы данных поврежден. - 🌐 Не открывать файловую базу по Wi-Fi и VPN. Обрыв связи в момент записи портит файл. Для удалённой работы — терминальный сервер или веб-публикация.
- 🧪 Проверять копии. Раз в месяц разворачивайте случайную копию в тестовую базу и открывайте. Нечитаемый архив обнаруживается именно в день аварии.
- 🖥 Для серверных баз — регламентные планы обслуживания в СУБД: полный бэкап ежедневно, журнал транзакций каждые 15–60 минут.
Если ничего не помогло
Копий нет, chdbfl не справился, база не открывается. Что ещё можно попробовать:
- Теневые копии Windows. Откройте свойства папки с базой → вкладка «Предыдущие версии». Если на диске включена защита системы или резервное копирование Windows, там может быть версия файла на прошлую дату.
- Корзина и программы восстановления удалённых файлов — если
1Cv8.1CDименно удалили, а не повредили. Восстанавливайте на другой диск, а не на тот же. - Временные файлы. Иногда в папке базы остаётся
1Cv8tmp.1CDпосле прерванной операции. Скопируйте его отдельно и попробуйте открыть копию, переименовав в1Cv8.1CD. - Копии у бухгалтерской фирмы, аудитора, облачного сервиса. У них может оказаться выгрузка годовой давности. Это лучше, чем ничего: остальные документы можно перенести из банка, ЭДО и сданной отчётности.
Частые вопросы о восстановлении базы
Можно ли восстановить базу 1С из одной папки 1Cv8Log?
Можно ли загрузить .dt в базу на другой версии платформы?
Чем отличается копия 1Cv8.1CD от выгрузки .dt?
.dt не зависит от типа базы: её можно загрузить и в файловую, и в серверную.Сколько времени занимает восстановление базы на 30 ГБ?
.dt такого размера — обычно от получаса до пары часов, chdbfl — от 15 минут до часа, в зависимости от скорости диска.Можно ли запускать chdbfl для серверной базы?
1Cv8.1CD. Для серверных баз используйте «Тестирование и исправление» в Конфигураторе и средства проверки самой СУБД.