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

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

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

Как исправить базу данных 1С: диагностика ошибок, тестирование и исправление, утилита chdbfl.exe, восстановление из копии. Порядок действий и меры безопасности.

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

Хорошая новость в том, что большинство повреждений файловой базы устраняется штатными средствами: утилитой chdbfl.exe и механизмом «Тестирование и исправление» в конфигураторе. Для клиент-серверных баз на SQL Server или PostgreSQL инструментарий другой, но логика та же — сначала диагностика, потом исправление, и только в крайнем случае откат на резервную копию.

Главное правило перед любыми действиями — сделать копию повреждённой базы. Даже если база не открывается, файл 1Cv8.1CD (или каталог базы целиком) нужно скопировать в отдельное место. Любое исправление изменяет структуру данных, и при неудаче именно эта копия станет единственным путём назад.

Как понять, что база повреждена, и оценить масштаб проблемы

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

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

Ошибка формата потокаЧасто проблема кэша, а не базы

Очистите кэш: удалите базу из списка и добавьте заново, либо очистите папки кэша в профиле пользователя

Файл базы данных повреждёнФизическое повреждение 1Cv8.1CD

Копируйте файл и запускайте chdbfl.exe

База не открывается нигдеСерьёзное повреждение или проблема диска

Проверьте диск на ошибки и доступность файла

Ошибки только в отдельных документахЛокальное повреждение таблиц

Поможет тестирование и исправление в конфигураторе

Подготовка: резервная копия и проверка диска

Первый шаг — остановить все сеансы пользователей и завершить процессы 1С. Для файловой базы убедитесь, что никто не работает по сети: открытый сеанс удерживает файл и делает исправление бессмысленным или опасным. Затем скопируйте файл 1Cv8.1CD (для файловой базы) весь каталог базы в надёжное место — на другой диск или сетевое хранилище.

Второй шаг — проверить носитель. Если база лежит на диске с бэд-блоками, исправленная база снова испортится. На Windows выполните проверку диска командой chkdsk с ключом /f (для системного диска потребуется перезагрузка). Если диск издаёт посторонние звуки или SMART показывает переназначенные секторы — сначала перенесите базу на исправный носитель и работайте уже там.

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

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

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

После завершения chdbfl откройте базу в конфигураторе. Если открылась — переходите к тестированию и исправлению: chdbfl восстанавливает физическую целостность, но логические ошибки (битые ссылки, расхождения итогов) она не устраняет.

Порядок действий при повреждении файловой базы
  1. 1
    Завершите все сеансы и скопируйте файл 1Cv8.1CD в безопасное место
  2. 2
    Проверьте диск командой chkdsk и убедитесь, что носитель исправен
  3. 3
    Запустите chdbfl.exe из каталога bin платформы, укажите файл базы
  4. 4
    Включите флажок «Исправлять обнаруженные ошибки» и дождитесь завершения
  5. 5
    Откройте базу в конфигураторе и запустите тестирование и исправление
  6. 6
    Проверьте ключевые данные: остатки, последние документы, отчёты

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

Откройте базу в конфигураторе монопольно и перейдите в меню «Администрирование» → «Тестирование и исправление». Для повреждённой базы обычно выбирают проверки: референтная целостность (поиск битых ссылок), логическая целостность данных и пересчёт итогов. Полный набор проверок на большой базе идёт долго, поэтому имеет смысл начать с этих трёх.

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

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

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

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

Ручной способ — удалить содержимое папок кэша в профиле пользователя: %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\. Там находятся каталоги с длинными именами-идентификаторами баз. Удалять их безопасно: при следующем запуске кэш пересоздастся, а настройки окна запуска хранятся отдельно.

Для клиент-серверных баз кэш существует и на стороне сервера 1С. Его очищают перезапуском службы агента сервера 1С с предварительной остановкой сеансов, либо удалением содержимого каталога srvinfo с подпапками reg_1541 и т.п. — только при остановленной службе.

Типичные ошибки
01
Запуск исправления без копии — при неудаче восстанавливать нечего
02
Прерывание chdbfl или тестирования — файл остаётся в промежуточном состоянии
03
Исправление базы на сетевом диске по нестабильной сети — повторное повреждение во время записи
04
Игнорирование проверки диска — база чинится и снова портится на том же носителе
05
Удаление «лишних» объектов вручную до тестирования — усложняет восстановление ссылочной целостности

Восстановление из резервной копии и перенос данных

Если chdbfl и тестирование не помогли, либо база после исправления ведёт себя непредсказуемо, правильный путь — развернуть последнюю резервную копию. Для файловой базы это файл выгрузки .dt, который разворачивается через конфигуратор: «Администрирование» → «Загрузить информационную базу», либо просто копия каталога базы.

Данные, введённые между моментом копии и сбоем, придётся восстанавливать вручную. Практический приём: открыть исправленную (частично рабочую) копию рядом с восстановленной и перенести недостающие документы через обработку «Выгрузка и загрузка данных XML» или универсальный обмен. Это трудоёмко, но сохраняет первичку без ручного ввода.

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

Сравнение способов восстановления

Очистка кэша

Подходит при ошибках формата потока без повреждения файла. Быстро и безопасно, но не лечит саму базу

chdbfl.exe

Подходит при физическом повреждении 1Cv8.1CD, когда конфигуратор не открывается. Не исправляет логические ошибки

Тестирование и исправление

Подходит при логических ошибках и битых ссылках. Требует монопольного доступа и может удалять данные

Восстановление из копии

Самый надёжный вариант при тяжёлых повреждениях. Минус — потеря данных, введённых после создания копии

Особенности клиент-серверных баз

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

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

Маршрут решения

Как выбрать действие

База открывается, но сыпет ошибками формата потокаОчистите кэш клиента и повторите попытку
Конфигуратор не открывает файловую базуСкопируйте 1Cv8.1CD и запустите chdbfl.exe
База открывается, но есть битые ссылки и расхождения итоговЗапустите тестирование и исправление в конфигураторе
Ничего не помогло или база ведёт себя нестабильноРазверните резервную копию и перенесите недостающие данные
База на SQL Server и есть подозрение на повреждениеВыполните DBCC CHECKDB и восстановление из бэкапа СУБД

Проверка результата и профилактика повторных сбоев

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

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

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

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

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

Список ошибок пуст

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

Остаются ошибки ссылочной целостности

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

Итоги совпадают с контрольными значениями

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

Расхождения по счетам, отрицательные остатки

Открытие документов за последние месяцы
Норма

Документы открываются и проводятся

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

Ошибки чтения, пустые реквизиты

Запуск в режиме предприятия у пользователей
Норма

Работа без ошибок потока

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

Ошибки возвращаются — проверяйте кэш и сеть

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

Можно ли исправить базу 1С без конфигуратора?

Да, частично. Утилита chdbfl.exe работает автономно и не требует запуска конфигуратора — она исправляет физическую структуру файла 1Cv8.1CD. Но для устранения логических ошибок (битых ссылок, расхождения итогов) конфигуратор всё равно понадобится.

Удалит ли тестирование и исправление мои документы?

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

Чем отличается выгрузка .dt от копии каталога базы?

Файл .dt — это логическая выгрузка через конфигуратор, удобная для переноса между платформами. Копия каталога — побайтовый снимок файловой базы, который делается быстрее и восстанавливается простым копированием. Для аварийного восстановления надёжнее иметь оба варианта.

Почему база снова портится после успешного исправления?

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

Поможет ли chdbfl для базы на SQL Server?

Нет. Утилита работает только с файловым форматом 1Cv8.1CD. Для клиент-серверных баз используются средства СУБД: DBCC CHECKDB для Microsoft SQL Server, штатные механизмы проверки и восстановления для PostgreSQL, плюс тестирование и исправление в конфигураторе.

Итог

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

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