К статье
Практический материал

Администрирование · 11 мин

Как исправить ошибки базы 1С: практическое руководство

Как исправить ошибки базы 1С: тестирование и исправление, chdbfl, chkdsk, восстановление из копии. Пошаговые инструкции, риски и проверка результата.

Ошибки базы 1С проявляются по-разному: программа не запускается, вылетает при открытии документа, выдаёт сообщения «Ошибка формата потока», «Файл базы данных повреждён» или «Нарушена целостность данных». Причины чаще всего одни и те же — аварийное завершение работы, сбой питания, проблемы диска или сети при файловом режиме, нехватка места на диске.

Большинство повреждений файловой базы устраняется штатными средствами: утилитой chdbfl.exe, режимом «Тестирование и исправление» в конфигураторе или восстановлением из резервной копии. Для клиент-серверных баз набор инструментов другой — средства СУБД и выгрузка/загрузка через dt. Порядок действий зависит от типа базы и характера повреждения.

Главное правило при любых работах: сначала сделайте копию базы в текущем состоянии, даже если она «битая». Исправление — операция деструктивная, и без копии откатиться будет не к чему.

Как понять, что база повреждена, а не проблема в другом

Не каждая ошибка 1С означает повреждение данных. Сначала отделите аппаратные и сетевые проблемы от порчи самой базы. Типичные признаки именно повреждения: база не открывается ни у одного пользователя, конфигуратор падает при попытке тестирования, сообщения об ошибке ссылаются на конкретную таблицу или файл 1Cv8.1CD.

Если ошибка возникает только у одного пользователя на одном компьютере, чаще виноват кэш метаданных, а не база. Очистка кэша (удаление папки с идентификатором базы в %APPDATA%\1C\1cv8) решает проблему без всякого «лечения» данных. Также проверьте свободное место на диске и доступность сетевого пути — при файловом режиме по сети обрыв связи имитирует повреждение.

Ошибка у всех пользователейВероятно повреждение базы

Запустите chdbfl или тестирование в конфигураторе

Ошибка у одного пользователяСкорее проблема кэша или клиента

Очистите кэш, проверьте версию платформы

Ошибка после сбоя питанияВысок риск физического повреждения файла

Проверьте диск (chkdsk), затем chdbfl

База на SQL ServerПовреждение на уровне СУБД

Используйте DBCC CHECKDB и бэкапы СУБД

Обязательная подготовка: копия и монопольный доступ

Перед любыми исправлениями скопируйте базу целиком. Для файловой базы достаточно скопировать файл 1Cv8.1CD (а лучше — всю папку) в отдельное место. Делайте это при выключенной 1С, чтобы файл не был заблокирован. Для клиент-серверной базы сделайте бэкап средствами СУБД или выгрузку в dt через конфигуратор, если база ещё открывается.

Все операции исправления выполняются в монопольном режиме: пользователи должны выйти, фоновые задания и службы агента сервера, обращающиеся к базе, — остановлены. Попытка лечить базу, с которой кто-то работает, может усугубить повреждение.

Исправление файловой базы утилитой chdbfl.exe

Утилита chdbfl.exe входит в состав платформы и лежит в папке bin каталога установки (например, C:\Program Files\1cv8\<версия>\bin). Она работает на низком уровне — проверяет физическую целостность файла 1Cv8.1CD и умеет исправлять повреждения структуры страниц, которые конфигуратор обработать не может.

Порядок работы: запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD, установите флаг «Исправлять обнаруженные ошибки» и нажмите «Выполнить». Утилита покажет ход проверки и список найденных проблем. По времени проверка большой базы может занять от нескольких минут до часа и более — не прерывайте процесс.

После завершения chdbfl откройте базу в конфигураторе и выполните «Тестирование и исправление» — утилита чинит физику файла, а конфигуратор устраняет логические ошибки (битые ссылки, нарушения индексов). Эти инструменты дополняют друг друга, а не заменяют.

Порядок лечения файловой базы
  1. 1
    Завершите работу всех пользователей и закройте 1С
  2. 2
    Скопируйте файл 1Cv8.1CD в резервную папку
  3. 3
    Запустите chdbfl.exe, укажите файл, включите исправление, выполните проверку
  4. 4
    Откройте базу в конфигураторе и запустите «Тестирование и исправление» (сначала без исправления — оцените лог)
  5. 5
    При необходимости повторите тестирование с включённым исправлением
  6. 6
    Откройте базу в режиме предприятия и проверьте ключевые документы и отчёты

Тестирование и исправление в конфигураторе: что выбирать

В конфигураторе режим находится в меню «Администрирование → Тестирование и исправление». Проверки делятся на три группы: реиндексация таблиц, проверка логической целостности и проверка ссылочной целостности. Реиндексация безопасна и часто устраняет ошибки чтения индексов. Логическая проверка выявляет повреждения данных внутри таблиц. Ссылочная проверка ищет объекты, ссылающиеся на несуществующие записи.

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

Выгрузка и загрузка через dt как способ «пересборки» базы

Если база открывается в конфигураторе, но работает нестабильно, эффективный метод — полная выгрузка в файл dt («Администрирование → Выгрузить информационную базу») и загрузка в новую пустую базу. При выгрузке платформа последовательно читает все данные, и если чтение прошло до конца без ошибок, полученный файл содержит целостный снимок.

Загрузка dt в новую базу фактически пересоздаёт файл данных с нуля: повреждённые страницы и битые индексы исчезают. Метод не поможет, если выгрузка обрывается с ошибкой — тогда сначала лечите базу через chdbfl, затем повторяйте выгрузку. Учтите ограничение: выгрузка/загрузка dt официально предназначена для переноса между однотипными конфигурациями и не заменяет бэкап клиент-серверных баз в регулярной эксплуатации.

Если выгрузка в dt падает на одном и том же месте, журнал покажет проблемную таблицу. Иногда достаточно удалить или исправить несколько конкретных записей (например, повреждённый документ), после чего выгрузка проходит полностью.
ПЗ
Практическое замечание

Ошибки клиент-серверной базы: что делать иначе

В клиент-серверном варианте файл 1Cv8.1CD отсутствует, данные хранятся в СУБД (MS SQL Server, PostgreSQL и др.), и chdbfl неприменим. Диагностику физической целостности выполняют средствами самой СУБД: для MS SQL Server — команда DBCC CHECKDB, для PostgreSQL — проверка через pg_amcheck или анализ журналов сервера.

Повреждения на уровне СУБД исправляются восстановлением из бэкапа средствами СУБД — это основной и самый надёжный путь. Режим REPAIR_ALLOW_DATA_LOSS в MS SQL применяйте только как крайнюю меру: он удаляет повреждённые страницы вместе с данными. Логические ошибки (битые ссылки) в клиент-серверной базе по-прежнему лечатся «Тестированием и исправлением» из конфигуратора.

sql
DBCC CHECKDB (N'MyBase1C') WITH NO_INFOMSGS;

Типичные ошибки при самостоятельном исправлении

Самая частая ошибка — запуск исправления без копии. Вторая по частоте — лечение «не той» проблемы: администратор часами тестирует базу, хотя сбой был в кэше клиента или в правах доступа к сетевой папке. Третья — прерывание процесса тестирования по кнопке «отмена» или закрытием окна: обрыв посередине исправления оставляет базу в несогласованном состоянии.

Отдельная группа ошибок — работа с сетевыми файловыми базами. Размещение 1Cv8.1CD на медленном или нестабильном сетевом ресурсе, использование Wi-Fi для доступа к базе, «засыпание» дисков NAS — всё это регулярно приводит к повторным повреждениям. Если база ломается не впервые, лечить её бессмысленно без устранения первопричины: проверьте диск (chkdsk, SMART), стабильность сети и работу ИБП.

Типичные ошибки
01
Исправление без резервной копии — при неудаче данные теряются окончательно
02
Прерывание тестирования на середине — база остаётся в несогласованном состоянии
03
Очистка ссылок без последующего анализа — в учёте появляются «дыры», которые никто не восстановил
04
Повторное лечение без устранения причины — сбойный диск или сеть снова портят базу
05
Использование chdbfl для клиент-серверной базы — утилита работает только с файловым форматом

Как проверить результат и что делать, если ничего не помогло

После исправления проверьте базу комплексно: она открывается в режиме предприятия без ошибок, повторное «Тестирование» (только проверка) не находит ошибок, ключевые отчёты (ОСВ, анализ счетов) сходятся с данными до сбоя, проблемные ранее документы открываются и проводятся.

Если chdbfl и тестирование не устранили ошибку, а выгрузка в dt обрывается, остаются два пути: восстановление из актуальной резервной копии с последующим ручным вводом данных за потерянный период, либо обращение к специалистам по восстановлению данных 1С, если копии нет и данные критичны. Самостоятельные эксперименты с hex-редакторами файла базы почти всегда ухудшают ситуацию.

Контрольные точки

Как проверить результат

Запуск базы в режиме предприятия
Норма

Открывается без сообщений об ошибках

Тревожный признак

Ошибка формата потока или падение при старте

Повторное тестирование (без исправления)
Норма

Ошибок не обнаружено

Тревожный признак

Остались записи о повреждённых таблицах

Оборотно-сальдовая ведомость
Норма

Итоги совпадают с данными до сбоя

Тревожный признак

Расхождения, пустые субконто, неизвестные объекты

Выгрузка в dt
Норма

Выгрузка завершается полностью

Тревожный признак

Обрыв с ошибкой на конкретной таблице

Итог

Что важно запомнить

Копия базы — до любых исправлений. Файловую базу лечат chdbfl и «Тестирование и исправление», клиент-серверную — средствами СУБД и восстановление из бэкапа. Если база повреждается повторно, ищите первопричину: диск, сеть, питание.

Частые вопросы

Где находится утилита chdbfl.exe?

В папке bin каталога установленной платформы, обычно C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe. Если установлено несколько версий платформы, используйте утилиту из версии, под которой работает база.

Можно ли запускать тестирование и исправление при работающих пользователях?

Нет. Режим требует монопольного доступа: все сеансы должны быть завершены. Работа пользователей во время исправления приводит к блокировкам и риску дополнительных повреждений.

Что выбрать при битых ссылках: создавать объекты или очищать ссылки?

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

База повреждается уже не первый раз — в чём причина?

Повторные повреждения почти всегда указывают на внешнюю причину: сбойный диск (проверьте SMART и выполните chkdsk), нестабильную сеть при файловом режиме, отключения питания без ИБП или нехватку места на диске. Пока причина не устранена, исправления будут временными.

Поможет ли переустановка платформы 1С при ошибках базы?

Нет, если повреждены данные. Переустановка платформы помогает только при ошибках самой программы (битые компоненты, конфликты версий). Повреждённый файл базы или таблицы в СУБД переустановка не исправит.

Как защититься от потери данных в будущем?

Настройте регулярное резервное копирование: для файловых баз — копирование файла или выгрузка dt по расписанию, для клиент-серверных — бэкапы средствами СУБД. Дополнительно: источник бесперебойного питания, мониторинг состояния дисков и отказ от размещения файловой базы на нестабильных сетевых ресурсах.