База 1С повреждена или работает с ошибками: от диагностики до восстановления данных

· 9 мин

Содержание

Чтобы исправить базу в 1С 8.3, сделайте копию, выгоните всех пользователей и запустите Конфигуратор → Администрирование → Тестирование и исправление с флажками реиндексации, проверки логической и ссылочной целостности и пересчёта итогов. Файловую базу , которая не открывается даже в Конфигураторе, сначала проверьте утилитой chdbfl.exe из папки bin платформы. Не помогло — выгрузите базу в .dt и загрузите в новую пустую. Последний вариант восстановления данных — резервная копия.

Порядок важен: каждый следующий шаг радикальнее предыдущего. Тестирование может удалить «битые» объекты, загрузка .dt полностью перезаписывает базу. Поэтому сначала диагностика, потом исправление, и всё — на копии.

1. Перед исправлением: копия и диагностика

Первое правило: ничего не исправляйте без копии базы в её текущем, даже повреждённом, состоянии. Если лечение пойдёт не так, вы вернётесь к исходной точке, а не к ещё более сломанной базе.

Как сделать копию повреждённой базы

  • 📁 Файловая база — закройте все сеансы и скопируйте папку базы целиком. Главный файл — 1Cv8.1CD, рядом лежит папка журнала 1Cv8Log. Путь к папке виден в окне запуска внизу при выделении базы.
  • 🗄 Клиент-серверная база — попросите администратора СУБД сделать полную резервную копию средствами SQL Server или PostgreSQL. Выгрузка .dt из повреждённой базы может не пройти, а копия СУБД пройдёт почти всегда.

Что сказать по тексту ошибки

Запишите сообщение дословно — от него зависит, с какого шага начинать.

Текст ошибкиЧто, скорее всего, сломаноС чего начать
Файл базы данных поврежденфизическая структура 1Cv8.1CDchdbfl.exe
Ошибка формата потокакэш клиента или данные конфигурацииочистка кэша, затем тестирование
Нарушение целостности структуры конфигурацииметаданные конфигурациитестирование с реструктуризацией, .dt
неверные или отрицательные остатки в отчётахитоги регистровпересчёт итогов
Объект не найден (<Объект не найден> (123:a1b2...))битые ссылкипроверка ссылочной целостности
Ошибка СУБД в клиент-серверной базетаблицы на стороне SQLпроверка средствами СУБД, затем тестирование

Сначала исключите кэш

Ошибка формата потока часто живёт не в базе, а в кэше на компьютере пользователя. Проверка простая: если у других пользователей база открывается, проблема локальная.

Очистить кэш можно так:

  1. В окне запуска выделите базу, нажмите Изменить и пройдите мастер до конца — платформа перечитает настройки.
  2. Или запустите клиент с параметром /ClearCache.
  3. Или вручную удалите папки с длинными именами-идентификаторами в %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.

  1. Закройте все сеансы базы, включая фоновые задания.
  2. Запустите chdbfl.exe, укажите путь к 1Cv8.1CD.
  3. Сначала прогоните проверку без исправления, посмотрите отчёт.
  4. Затем включите флажок исправления найденных ошибок и запустите снова.

После 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

  1. Конфигуратор → Администрирование → Выгрузить информационную базу, сохраните файл .dt.
  2. Создайте в окне запуска новую пустую базу (без конфигурации).
  3. Откройте её в Конфигураторе: Администрирование → Загрузить информационную базу, выберите .dt.
  4. Прогоните новую базу через тестирование с пересчётом итогов.
  5. Проверьте ключевые отчёты и только потом переключайте пользователей.

Загрузка .dt полностью заменяет содержимое базы, в которую грузите. Никогда не загружайте файл в рабочую базу, не убедившись, что выгрузка прошла без ошибок.

Если выгрузка .dt падает на конкретном объекте, текст ошибки обычно называет таблицу. Тогда переносите данные обработкой XML по частям: справочники отдельно, документы по периодам. Эту обработку лучше брать в том варианте, который соответствует версии платформы и запускать через Файл → Открыть.

4. Восстановление базы 1С из резервной копии

Когда исправление не помогает или «лечение» потеряло слишком много данных, возвращаются к копии. Встроенной «точки отката» в 1С нет: восстановление системы Windows файлы базы не возвращает. Откатиться можно только к тому, что вы заранее сохранили.

Что можно восстановить

  • 💾 Файл .dt — загружается в Конфигураторе. Пользователи вводят пропущенные документы вручную.
  • 📁 Копия папки файловой базы — подменяете 1Cv8.1CD при закрытых сеансах. Повреждённый файл не удаляйте, переименуйте.
  • 🗄 Копия СУБД — администратор восстанавливает базу в SQL Server или PostgreSQL. При полной модели восстановления и журналах транзакций можно вернуться на конкретное время, например на 14:30 до сбоя.

Как не потерять данные за последние дни

Копия от понедельника, сбой в четверг. Восстановление в рабочую базу сотрёт три дня работы. Делайте иначе:

  1. Разверните копию в отдельную базу.
  2. Сравните её с повреждённой: что из документов за вторник–четверг читается в повреждённой базе.
  3. Перенесите уцелевшие документы обработкой XML или вручную.
  4. Только после сверки переключите пользователей.

5. Журнал регистрации: кто и когда сломал данные

Не каждый «сломанный» учёт — повреждение базы. Часто данные удалил или перепровёл пользователь. Журнал регистрации покажет, кто это сделал.

Где открыть журнал

  • В Конфигураторе: Администрирование → Журнал регистрации.
  • В пользовательском режиме БП 3.0 и ЗУП 3.1: раздел Администрирование → Обслуживание, группа «Отчёты администратора».
  • Универсально: Все функции → Стандартные → Журнал регистрации. Команда «Все функции» включается в параметрах программы, флажок отображения этой команды.

Как искать виновника

  1. Нажмите «Установить отбор» и задайте интервал: день, когда заметили проблему, и день до него.
  2. В отборе по событиям выберите Данные. Удаление или Данные. Изменение.
  3. Ограничьте метаданные нужным объектом, например документом «Поступление (акты, накладные, УПД)».
  4. Откройте строку: в ней пользователь, компьютер, время и представление объекта.

Для поиска сбоя самой базы используйте отбор по важности «Ошибка». Повторяющиеся ошибки в одно и то же время часто указывают на регламентное задание, которое падает каждую ночь.

Если в БП 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 одновременных пользователях и больших объёмах подумайте о клиент-серверном варианте: СУБД лучше переносит сбои записи.

Частые вопросы об исправлении базы

Сколько длится тестирование и исправление?
Зависит от размера базы и выбранных флажков. Файловая база на несколько гигабайт с реиндексацией и пересчётом итогов обычно проходит за десятки минут, реструктуризация может занять часы. Запускайте вне рабочего времени.
Можно ли работать в базе во время тестирования?
Нет. Тестирование и исправление требует монопольного доступа, пока оно идёт, пользователи в базу войти не смогут.
Что делать, если тестирование зависло?
Не прерывайте его в первые часы: на больших таблицах прогресс может долго стоять на месте. Если процесс действительно завис, восстановите базу из копии, сделанной перед тестированием, и запустите проверку с меньшим набором флажков.
Удаляет ли тестирование данные?
Может, если выбрать «Очищать ссылки» или «Удалять объекты». С вариантами «Создавать объекты» и «Не изменять» данные не удаляются.
Нужно ли обновлять платформу, чтобы исправить базу?
Не обязательно, но на старых сборках платформы встречаются ошибки, которые исправлены в новых. Если ошибка повторяется после исправления, обновите платформу до номера не ниже рекомендованного для вашего релиза конфигурации.