Повреждение информационной базы 1С: диагностика, исправление и откат на копию
Содержание
Если база данных 1С повреждена, первым делом сделайте копию её текущего состояния: каталог с файлом 1Cv8.1CD для файловой базы или бэкап базы
средствами СУБД для серверной. Только потом запускайте проверки: в файловом варианте — утилиту chdbfl.exe, затем Администрирование → Тестирование и исправление в Конфигураторе. Не помогло — восстанавливайте базу из резервной копии и дозаводите потерянные данные по журналу регистрации.
Частая ошибка — считать базу «сломанной» по первому же сообщению. Ошибка формата потока или зависание на заставке часто вызывает испорченный локальный кэш, а не данные. Кэш чистится за минуту. А «лечить» исправную базу тестированием с удалением объектов — это как раз способ её испортить.
С чего начать: копия и разбор симптомов
Любое восстановление начинается с того, что вы фиксируете текущее состояние. Даже повреждённая база содержит данные, которых нет в последней резервной копии. Если исправление пойдёт не так, к этому состоянию нужно вернуться.
Не запускайте исправление, пока не сделали копию повреждённой базы.
Порядок первых действий:
- 🛑 Попросите всех пользователей выйти из базы. Для серверной базы проверьте сеансы в консоли кластера и предупредите людей заранее: принудительное завершение сеансов оборвёт их несохранённую работу.
- 📁 Файловая база: скопируйте весь каталог базы целиком, а не только
1Cv8.1CD. Рядом лежит каталог1Cv8Logс журналом регистрации, он ещё понадобится. - 🗄️ Серверная база: сделайте полный бэкап средствами СУБД (MS SQL Server, PostgreSQL). Выгрузка
.dtиз повреждённой базы может не пройти, поэтому на неё не рассчитывайте. - 📝 Запишите точный текст ошибки, время её появления и действие, после которого она возникла.
Как отличить повреждение данных от других сбоев
| Симптом | Вероятная причина | Что проверить сначала |
|---|---|---|
Ошибка формата потока при запуске | Повреждённый кэш или файл базы | Очистка кэша, затем chdbfl.exe |
Файл базы данных поврежден | Физическое повреждение 1Cv8.1CD | chdbfl.exe на копии |
Нарушена целостность структуры конфигурации | Сбой при обновлении или сохранении конфигурации | Тестирование и исправление, откат на копию |
Битые ссылки <Объект не найден> в документах | Логическое повреждение или удаление объектов | Проверка ссылочной целостности |
| Ошибка СУБД с кодом при записи и чтении | Повреждение страниц базы на сервере | Проверка базы средствами СУБД |
Кэш клиента лежит в профиле пользователя, в каталогах %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Подкаталоги с длинными именами-идентификаторами можно удалить при закрытой 1С. Другой вариант — запустить клиент с параметром /ClearCache. Если после этого база открылась, повреждения данных не было.
Логи: что произошло с базой и когда
Перед ремонтом выясните причину. Иначе после восстановления база сломается снова.
Журнал регистрации
Если база открывается хотя бы в Конфигураторе, журнал смотрят через Администрирование → Журнал регистрации. В типовых конфигурациях на БСП он доступен и в пользовательском режиме: Администрирование → Обслуживание → Журнал регистрации.
Что искать:
- 🔍 события с уровнем «Ошибка» за последние часы перед сбоем;
- 🔍 обновление конфигурации
, загрузку
.dt, реструктуризацию — частые точки отказа; - 🔍 массовое удаление объектов: кто, когда, какие элементы;
- 🔍 аварийные завершения сеансов подряд у нескольких пользователей.
Если база не открывается совсем, журнал всё равно доступен на диске, в каталоге 1Cv8Log. Скопируйте его в каталог пустой файловой базы и откройте журнал уже там.
Журналы Windows и СУБД
Физические повреждения обычно идут снаружи. Проверьте журнал событий Windows («Система») на сервере или компьютере с базой: ошибки диска, внезапные перезагрузки, отключения питания.
Для серверной базы смотрите журнал ошибок СУБД. Сообщения о повреждённых страницах или ошибках ввода-вывода означают, что проблема в хранилище. Тестирование в 1С её не решит.
💡 Технологический журнал платформы включают файлом logcfg.xml. Он нужен, когда сбой воспроизводится, но причина неясна. Для разового повреждения обычно хватает журнала регистрации и системных журналов.
Тестирование и исправление базы в Конфигураторе
Это встроенный инструмент платформы для логических ошибок: битых ссылок, неверных итогов, повреждённых индексов. Запускается из Конфигуратора: Администрирование → Тестирование и исправление. Нужен монопольный доступ, поэтому все пользователи должны выйти.
Какие проверки включать
| Флажок | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Почти всегда, безопасно |
| Проверка логической целостности | Ищет нарушения внутренней структуры | При ошибках структуры и чтения |
| Проверка ссылочной целостности | Находит ссылки на несуществующие объекты | При «Объект не найден» |
| Пересчёт итогов | Пересчитывает итоги регистров | Неверные остатки и обороты |
| Сжатие таблиц | Убирает пустое место | Файловая база после удалений |
| Реструктуризация таблиц | Пересоздаёт таблицы | Крайний случай, долго |
Безопасный порядок запуска
- Запустите на копии базы режим «Только тестирование». Он покажет масштаб проблемы и ничего не изменит.
- Изучите отчёт: сколько битых ссылок и в каких объектах.
- Выберите действие для ссылок на несуществующие объекты. «Создавать объекты» оставляет пустые элементы-заглушки. Их потом можно заполнить или аккуратно заменить. «Очищать ссылки» стирает реквизиты в документах навсегда.
- Выберите действие при частичной потере объектов. «Удалять объекты» — самый радикальный вариант, к нему переходят только после анализа.
- Запустите режим «Тестирование и исправление» на копии. Проверьте результат: откройте ключевые документы и отчёты, сверьте остатки.
- Если на копии всё в порядке, повторите на рабочей базе или просто замените её исправленной копией.
Режим «Очищать ссылки» в документах прошлых периодов меняет закрытые данные. После него может измениться отчётность, которую уже сдали. Предпочитайте «Создавать объекты» и разбор заглушек вручную.
Запуск из командной строки
Для большой базы удобно запускать проверку пакетно, на ночь, с записью результата в файл:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -RecalcTotals -TestOnly /Out "D:\Logs\check.txt"
Ключ -TestOnly включает режим «Только тестирование». Уберите его, чтобы утилита исправляла ошибки. Полный список ключей /IBCheckAndRepair смотрите в документации к платформе.
Восстановление из резервной копии
Если тестирование не помогло или испортило данные, откатывайтесь на копию. Это самый надёжный путь, и он часто быстрее, чем часы исправлений.
Какую копию брать
- 📦
.dt— выгрузка через Конфигуратор. Подходит для любого варианта базы. - 📦 Копия каталога с
1Cv8.1CD— для файловой базы, если файл копировали при закрытой базе. - 📦 Бэкап СУБД — для серверной базы, позволяет точечное восстановление.
Берите последнюю копию, сделанную до первых признаков сбоя. Время сбоя вы уже нашли по журналам.
Загрузка .dt
- Создайте новую пустую базу в списке информационных баз.
- Откройте её в Конфигураторе.
- Выполните
Администрирование → Загрузить информационную базуи выберите файл.dt. - Дождитесь окончания загрузки и проверьте данные.
- Когда убедитесь, что всё на месте, переключите пользователей на новую базу.
Загрузка .dt полностью заменяет данные базы, в которую её загружают. Поэтому сначала загружайте в новую базу, а не поверх повреждённой.
В типовых конфигурациях на БСП для файловой базы есть встроенный механизм: Администрирование → Обслуживание → Резервное копирование и восстановление. Через него же восстанавливают копии, сделанные по расписанию.
Как вернуть данные после копии
Между копией и сбоем пользователи что-то вводили. Эти данные можно восстановить так:
- Откройте журнал регистрации повреждённой базы (из сохранённого каталога
1Cv8Log). - Отфильтруйте события изменения данных за период от копии до сбоя.
- Составьте список документов и справочников, введённых или изменённых за это время.
- Если повреждённая база открывается, перенесите их выгрузкой. Если нет — введите заново по первичке.
Журналы транзакций и откат на нужную минуту
Точечное восстановление доступно только для клиент-серверной базы. Файловая база такого механизма не имеет: у неё есть только копии целиком.
MS SQL Server
Нужна модель восстановления «Полная» и регулярные бэкапы журнала транзакций. Тогда базу можно вернуть на любую минуту, например за пять минут до ошибочной обработки:
RESTORE DATABASE [buh_restore] FROM DISK = N'D:\Backup\buh_full.bak'
WITH NORECOVERY, MOVE N'buh' TO N'D:\Data\buh_restore.mdf',
MOVE N'buh_log' TO N'D:\Data\buh_restore_log.ldf';
RESTORE LOG [buh_restore] FROM DISK = N'D:\Backup\buh_log.trn'
WITH STOPAT = N'2026-10-06T14:55:00', RECOVERY;
Логические имена файлов (buh, buh_log) у вас будут свои. Посмотрите их командой RESTORE FILELISTONLY для файла бэкапа. Восстанавливайте в базу с новым именем, затем зарегистрируйте её в кластере 1С как отдельную информационную базу и проверьте.
PostgreSQL
Аналог — непрерывное архивирование WAL и восстановление на момент времени (PITR) с параметром recovery_target_time. Механизм работает, только если архивирование WAL настроили заранее. Если в журналах только ежедневные дампы pg_dump, откат возможен только на момент дампа.
💡 При модели восстановления «Простая» в MS SQL журнал транзакций не хранит историю. Для точечного отката его нужно переключить на «Полную» и настроить бэкапы журнала — заранее, до сбоя.
Файловая и клиент-серверная база: в чём разница при восстановлении
Файловая база
Все данные лежат в одном файле 1Cv8.1CD. Он чаще всего повреждается при обрыве записи: отключили питание, упала сеть до общей папки, антивирус заблокировал файл во время записи.
Главный инструмент — утилита chdbfl.exe. Она лежит в каталоге bin установленной платформы. Порядок:
- Убедитесь, что базу никто не открыл, включая фоновые задания и обмены.
- Запустите
chdbfl.exe, укажите путь к копии1Cv8.1CD. - Сначала выполните проверку без флажка «Исправлять обнаруженные ошибки».
- Если ошибки есть, запустите повторно с исправлением.
- После
chdbfl.exeоткройте базу в Конфигураторе и выполните тестирование и исправление.
chdbfl.exe чинит физическую структуру файла, а Конфигуратор — логическую. Поэтому они идут парой и именно в таком порядке.
Клиент-серверная база
Данные хранит СУБД, и физические повреждения проверяют её средствами:
- 🗄️ MS SQL Server:
DBCC CHECKDBдля базы. Запускайте в нерабочее время, проверка нагружает сервер. - 🗄️ PostgreSQL: проверка индексов расширением
amcheck, в новых версиях — утилитойpg_amcheck.
Тестирование и исправление в Конфигураторе для серверной базы тоже работает. Но на большой базе оно идёт часами, поэтому выделите для него ночь или выходной.
Отдельный случай — повреждение кэша сервера 1С, а не данных. Симптом: ошибки у всех пользователей сразу, при этом проверка СУБД чистая. Кэш сервера очищают при остановленной службе агента сервера 1С. Остановка службы обрывает все сеансы всех баз на этом сервере — делайте это вне рабочего времени и после предупреждения пользователей.
| Что | Файловая база | Клиент-серверная база |
|---|---|---|
| Физическая проверка | chdbfl.exe | DBCC CHECKDB, amcheck |
| Логическая проверка | Тестирование и исправление | Тестирование и исправление |
| Копия «как есть» | Копия каталога | Бэкап СУБД |
| Откат на минуту | Невозможен | Через журнал транзакций / WAL |
Как не допустить повторного повреждения
После восстановления устраните причину. Иначе всё повторится через неделю.
- 🔌 ИБП для компьютера или сервера с файловой базой. Обрыв питания при записи — классическая причина повреждения
1Cv8.1CD. - 🌐 Файловую базу не держите в общей папке через нестабильную сеть или Wi-Fi. Если в базе работают больше 3-5 человек, переходите на клиент-серверный вариант или веб-публикацию.
- 🛡️ Добавьте каталог базы в исключения антивируса: проверка файла во время записи вызывает блокировки и сбои.
- 💾 Проверьте место на диске. Заполненный диск обрывает запись и портит файл.
- 🔁 Обновляйте конфигурацию только после свежей выгрузки
.dt.
Резервное копирование, которое реально спасает
- Ежедневная копия:
.dt, копия каталога файловой базы при закрытой 1С или полный бэкап СУБД. - Для серверной базы — бэкап журнала транзакций каждые 15-60 минут, в зависимости от того, сколько работы вы готовы потерять.
- Храните копии минимум на двух носителях, один из них — вне сервера с базой.
- Срок хранения — не меньше 2-4 недель. Логическую порчу иногда замечают через несколько дней.
- Раз в месяц пробуйте восстановить копию в тестовую базу. Непроверенная копия может оказаться пустой или битой.
Копировать файл 1Cv8.1CD во время работы пользователей нельзя: получится несогласованная копия, которая может не открыться. Для файловой базы используйте .dt или копирование при закрытой базе.
Частые вопросы
Можно ли открыть повреждённую базу, чтобы забрать хотя бы часть данных?
chdbfl.exe с исправлением: часто после этого база открывается и позволяет выгрузить данные. Если нет — нужен откат на резервную копию.Сколько идёт тестирование и исправление?
Почему после исправления в документах появились пустые элементы?
Помогает ли выгрузка и загрузка .dt как способ лечения?
chdbfl.exe и тестирования, а не вместо них.