База 1С повреждена или работает с ошибками: от диагностики до восстановления данных
Содержание
Чтобы исправить базу в 1С 8.3, сделайте копию, выгоните всех пользователей и запустите Конфигуратор → Администрирование → Тестирование и исправление с флажками реиндексации, проверки логической и ссылочной целостности и пересчёта итогов. Файловую базу
, которая не открывается даже в Конфигураторе, сначала проверьте утилитой chdbfl.exe из папки bin платформы. Не помогло — выгрузите базу в .dt и загрузите в новую пустую. Последний вариант восстановления данных — резервная копия.
Порядок важен: каждый следующий шаг радикальнее предыдущего. Тестирование может удалить «битые» объекты, загрузка .dt полностью перезаписывает базу. Поэтому сначала диагностика, потом исправление, и всё — на копии.
1. Перед исправлением: копия и диагностика
Первое правило: ничего не исправляйте без копии базы в её текущем, даже повреждённом, состоянии. Если лечение пойдёт не так, вы вернётесь к исходной точке, а не к ещё более сломанной базе.
Как сделать копию повреждённой базы
- 📁 Файловая база — закройте все сеансы и скопируйте папку базы целиком. Главный файл —
1Cv8.1CD, рядом лежит папка журнала1Cv8Log. Путь к папке виден в окне запуска внизу при выделении базы. - 🗄 Клиент-серверная база
— попросите администратора СУБД сделать полную резервную копию средствами SQL Server или PostgreSQL. Выгрузка
.dtиз повреждённой базы может не пройти, а копия СУБД пройдёт почти всегда.
Что сказать по тексту ошибки
Запишите сообщение дословно — от него зависит, с какого шага начинать.
| Текст ошибки | Что, скорее всего, сломано | С чего начать |
|---|---|---|
Файл базы данных поврежден | физическая структура 1Cv8.1CD | chdbfl.exe |
Ошибка формата потока | кэш клиента или данные конфигурации | очистка кэша, затем тестирование |
Нарушение целостности структуры конфигурации | метаданные конфигурации | тестирование с реструктуризацией, .dt |
| неверные или отрицательные остатки в отчётах | итоги регистров | пересчёт итогов |
Объект не найден (<Объект не найден> (123:a1b2...)) | битые ссылки | проверка ссылочной целостности |
Ошибка СУБД в клиент-серверной базе | таблицы на стороне SQL | проверка средствами СУБД, затем тестирование |
Сначала исключите кэш
Ошибка формата потока часто живёт не в базе, а в кэше на компьютере пользователя. Проверка простая: если у других пользователей база открывается, проблема локальная.
Очистить кэш можно так:
- В окне запуска выделите базу, нажмите
Изменитьи пройдите мастер до конца — платформа перечитает настройки. - Или запустите клиент с параметром
/ClearCache. - Или вручную удалите папки с длинными именами-идентификаторами в
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8.
Перед ручным удалением папок кэша закройте 1С на этом компьютере. Удаление при открытом сеансе даст новые ошибки.
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Base\Buh" /ClearCache
2. Как исправить базу 1С тестированием и исправлением
Это главный штатный инструмент. Он работает и для файловой, и для клиент-серверной базы, но требует монопольного доступа: в базе не должно быть ни одного сеанса.
Файловая база не открывается: chdbfl.exe
Утилита проверяет физическую целостность файла 1Cv8.1CD без запуска Конфигуратора. Она лежит в каталоге установленной платформы, например C:\Program Files\1cv8\8.3.24.1548\bin\chdbfl.exe.
- Закройте все сеансы базы, включая фоновые задания.
- Запустите
chdbfl.exe, укажите путь к1Cv8.1CD. - Сначала прогоните проверку без исправления, посмотрите отчёт.
- Затем включите флажок исправления найденных ошибок и запустите снова.
После chdbfl.exe базу всё равно нужно прогнать через тестирование в Конфигураторе: утилита чинит структуру файла, но не логику данных.
Тестирование в Конфигураторе: какие флажки ставить
Откройте базу в режиме Конфигуратора и выберите Администрирование → Тестирование и исправление.
| Флажок | Что делает | Когда нужен |
|---|---|---|
| Реиндексация таблиц информационной базы | перестраивает индексы | почти всегда, безопасно |
| Проверка логической целостности | ищет нарушения внутренней структуры | при любых сбоях |
| Проверка ссылочной целостности | ищет ссылки на удалённые объекты | Объект не найден |
| Пересчёт итогов | заново считает итоги регистров | неверные остатки и обороты |
| Сжатие таблиц | убирает пустое место из файла | файловая база сильно «раздулась» |
| Реструктуризация таблиц | пересоздаёт таблицы базы | тяжёлые сбои, долго |
Ниже флажков выбирается режим: Тестирование и исправление или Только тестирование. Начните с только тестирования — оно ничего не меняет и покажет масштаб.
Что делать с битыми ссылками
В блоке настроек для ссылок на несуществующие объекты три варианта:
- 🧩 Создавать объекты — платформа создаст пустые «заглушки». Документы останутся на месте, а вы потом найдёте заглушки и восстановите в них нужные реквизиты. Самый безопасный выбор для учётной базы.
- 🧹 Очищать ссылки — поле в документе станет пустым. Данные о том, что там было, потеряются.
- ⏸ Не изменять — только отчёт.
Для частичной потери данных объекта выбор похожий: создавать, удалять или не изменять. В рабочей бухгалтерии лучше «создавать»: удалённый документ уносит с собой движения по регистрам.
Запуск из командной строки
Тестирование большой базы идёт часами, его удобно запускать ночью по расписанию:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh" /N"Администратор" /P"пароль" ^
/IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -BadRefCreate -BadDataCreate ^
/Out"D:\Logs\test.log" /DisableStartupDialogs
Для клиент-серверной базы вместо /F указывается /S"сервер\имябазы". Перед запуском убедитесь, что пользователи вышли: тестирование при занятой базе не начнётся.
3. Выгрузка и загрузка базы как способ «пересобрать» данные
Если после тестирования ошибки остаются, базу пересобирают через выгрузку. Платформа читает данные объект за объектом и записывает их в новый файл — повреждённые страницы при этом не переносятся.
Про MXL и .dt
В инструкциях встречается совет «выгрузить базу в MXL». MXL — формат табличного документа (печатные формы, отчёты), базу целиком в нём не переносят. В 8.3 для этого служат два инструмента:
| Способ | Что переносит | Когда выбирать |
|---|---|---|
Выгрузка .dt в Конфигураторе | конфигурацию и все данные | основной способ пересборки |
| Обработка «Выгрузка и загрузка данных XML» | выбранные объекты в XML | .dt не выгружается, нужно спасти часть данных |
Пересборка через .dt
Конфигуратор → Администрирование → Выгрузить информационную базу, сохраните файл.dt.- Создайте в окне запуска новую пустую базу (без конфигурации).
- Откройте её в Конфигураторе:
Администрирование → Загрузить информационную базу, выберите.dt. - Прогоните новую базу через тестирование с пересчётом итогов.
- Проверьте ключевые отчёты и только потом переключайте пользователей.
Загрузка .dt полностью заменяет содержимое базы, в которую грузите. Никогда не загружайте файл в рабочую базу, не убедившись, что выгрузка прошла без ошибок.
Если выгрузка .dt падает на конкретном объекте, текст ошибки обычно называет таблицу. Тогда переносите данные обработкой XML по частям: справочники отдельно, документы по периодам. Эту обработку лучше брать в том варианте, который соответствует версии платформы и запускать через Файл → Открыть.
4. Восстановление базы 1С из резервной копии
Когда исправление не помогает или «лечение» потеряло слишком много данных, возвращаются к копии. Встроенной «точки отката» в 1С нет: восстановление системы Windows файлы базы не возвращает. Откатиться можно только к тому, что вы заранее сохранили.
Что можно восстановить
- 💾 Файл
.dt— загружается в Конфигураторе. Пользователи вводят пропущенные документы вручную. - 📁 Копия папки файловой базы — подменяете
1Cv8.1CDпри закрытых сеансах. Повреждённый файл не удаляйте, переименуйте. - 🗄 Копия СУБД — администратор восстанавливает базу в SQL Server или PostgreSQL. При полной модели восстановления и журналах транзакций можно вернуться на конкретное время, например на 14:30 до сбоя.
Как не потерять данные за последние дни
Копия от понедельника, сбой в четверг. Восстановление в рабочую базу сотрёт три дня работы. Делайте иначе:
- Разверните копию в отдельную базу.
- Сравните её с повреждённой: что из документов за вторник–четверг читается в повреждённой базе.
- Перенесите уцелевшие документы обработкой XML или вручную.
- Только после сверки переключите пользователей.
5. Журнал регистрации: кто и когда сломал данные
Не каждый «сломанный» учёт — повреждение базы. Часто данные удалил или перепровёл пользователь. Журнал регистрации покажет, кто это сделал.
Где открыть журнал
- В Конфигураторе:
Администрирование → Журнал регистрации. - В пользовательском режиме БП 3.0 и ЗУП 3.1: раздел
Администрирование → Обслуживание, группа «Отчёты администратора». - Универсально:
Все функции → Стандартные → Журнал регистрации. Команда «Все функции» включается в параметрах программы, флажок отображения этой команды.
Как искать виновника
- Нажмите «Установить отбор» и задайте интервал: день, когда заметили проблему, и день до него.
- В отборе по событиям выберите
Данные. УдалениеилиДанные. Изменение. - Ограничьте метаданные нужным объектом, например документом «Поступление (акты, накладные, УПД)».
- Откройте строку: в ней пользователь, компьютер, время и представление объекта.
Для поиска сбоя самой базы используйте отбор по важности «Ошибка». Повторяющиеся ошибки в одно и то же время часто указывают на регламентное задание, которое падает каждую ночь.
Если в БП 3.0 включено версионирование объектов (история изменений в общих настройках администрирования), прежние значения реквизитов документа можно посмотреть и вернуть прямо из его карточки. Журнал регистрации покажет только факт изменения.
Хранится журнал в папке 1Cv8Log рядом с файлом базы. Если он сам повреждён, ошибки появятся уже при открытии журнала. Его можно перенести из этой папки в архив при закрытой базе — платформа начнёт новый.
6. Профилактика: чтобы базу 1С не пришлось восстанавливать
Большинство повреждений файловых баз дают обрывы записи: выключение света, обрыв сети, зависший компьютер. Защищаться нужно от них.
Регламент обслуживания
| Что делать | Как часто | Чем |
|---|---|---|
Выгрузка .dt или копия папки | каждый день | планировщик Windows + /DumpIB |
| Копия СУБД | ежедневно полная, журналы транзакций чаще | средства SQL Server / PostgreSQL |
| Тестирование: реиндексация, логическая целостность | раз в месяц | Конфигуратор или пакетный запуск |
| Проверка, что копия разворачивается | раз в квартал | загрузка в тестовую базу |
| Очистка журнала регистрации | по мере роста | сокращение журнала в Конфигураторе |
Пример ночной выгрузки для планировщика (разбор %date% рассчитан на формат даты ДД.ММ.ГГГГ):
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Base\Buh" /N"Администратор" /P"пароль" ^
/DumpIB"E:\Backup\Buh_%date:~6,4%%date:~3,2%%date:~0,2%.dt" /Out"E:\Backup\dump.log"
Копии храните на другом диске или сервере. Копия на том же диске пропадёт вместе с ним.
Что ещё снижает риск
- 🔌 Источник бесперебойного питания для сервера или компьютера, где лежит файловая база.
- 🌐 Файловая база по сети — только по стабильной проводной сети. Wi-Fi и VPN с обрывами — частая причина
Файл базы данных поврежден. - 🛡 Исключение папки базы и
%APPDATA%\1Cиз проверки антивируса в реальном времени. - 💽 Свободное место на диске: при нехватке запись транзакции обрывается.
- 👥 При 10–15 одновременных пользователях и больших объёмах подумайте о клиент-серверном варианте: СУБД лучше переносит сбои записи.