Администрирование · 12 мин
Чем исправить базу 1С: инструменты и порядок восстановления
Разбираем, чем исправить базу 1С: тестирование и исправление, chdbfl, конфигуратор, выгрузка в dt. Признаки повреждений, порядок действий и риски.
Повреждение информационной базы 1С проявляется по-разному: программа не открывается, выдаёт ошибку «Ошибка формата потока», «Файл базы данных повреждён», зависает при проведении документов или показывает неверные итоги. Причины обычно стандартные — внезапное отключение электричества, разрыв сетевого соединения при работе с файловой базой по сети, нехватка места на диске, сбои жёсткого диска или некорректное завершение процесса 1С.
Исправить базу можно несколькими способами: штатной процедурой «Тестирование и исправление» в конфигураторе, утилитой chdbfl.exe для файловых баз, восстановлением из резервной копии, выгрузкой и загрузкой через файл dt. Для клиент-серверных баз на SQL Server или PostgreSQL применяются средства СУБД. Выбор инструмента зависит от типа базы, характера повреждения и наличия свежей резервной копии.
Главное правило до начала любых работ: сделайте копию повреждённой базы в текущем состоянии. Даже «битая» копия ценна — если исправление пойдёт неудачно, можно вернуться к исходной точке и попробовать другой метод. Все пользователи на время работ должны выйти из базы.
Как понять, что база повреждена, а не сломана настройка
Прежде чем запускать исправление, убедитесь, что проблема именно в данных, а не в платформе, правах доступа или сети. Типичные признаки физического повреждения файловой базы: сообщение «Файл базы данных поврежден» с указанием пути к 1Cv8.1CD, ошибка «Ошибка формата потока» при открытии, аварийное завершение при обращении к конкретным документам или регистрам.
Логические ошибки выглядят иначе: база открывается, но отчёты показывают минуса по складу при наличии товара, итоги по регистрам не сходятся с документами, есть «битые ссылки» — записи вида «Объект не найден». Такие проблемы тоже решаются тестированием и исправлением, но это не аппаратное повреждение файла.
Если ошибка возникает только у одного пользователя или только на одном компьютере, сначала проверьте кэш: очистите каталог кэша 1С (папки с длинными именами в %APPDATA%\1C\1cv8) или удалите базу из списка и добавьте заново. Часто «повреждённая база» оказывается повреждённым локальным кэшем, и никакое исправление не требуется.
Запустить chdbfl.exe, затем тестирование и исправление
Сначала очистить кэш, проверить на другом ПК
Тестирование и исправление с проверкой ссылочной целостности
Очистить кэш, пересоздать подключение базы
Подготовка: копия базы и монопольный доступ
Любое исправление выполняется только при монопольном доступе. Завершите сеансы всех пользователей: в клиент-серверном режиме — через консоль кластера, в файловом — убедитесь, что никто не держит базу открытой, включая фоновые задания и подключения по COM. Отключите регламентные задания на время работ.
Для файловой базы скопируйте каталог целиком или хотя бы файл 1Cv8.1CD — именно в нём хранятся все данные. Для клиент-серверной базы сделайте резервную копию средствами СУБД (например, pg_dump для PostgreSQL или backup в SQL Server) либо выгрузку dt из конфигуратора, если база ещё открывается.
Проверьте свободное место на диске: тестирование и исправление файловой базы создаёт временные файлы, и при большом объёме базы может потребоваться пространство, сопоставимое с размером самой базы. Нехватка места в процессе — частая причина того, что исправление само повреждает файл окончательно.
Способ 1. Тестирование и исправление в конфигураторе
Штатный инструмент запускается из конфигуратора: меню «Администрирование» → «Тестирование и исправление». Если конфигуратор не открывается из-за повреждения, этот способ недоступен — переходите к chdbfl.
В окне настроек выберите проверки. Для большинства случаев достаточно трёх: «Реиндексация таблиц», «Проверка ссылочной целостности» и «Проверка логической целостности». Пункт «Проверка физической целостности» применяется к файловым базам, но chdbfl с этой задачей справляется надёжнее. «Пересчёт итогов» добавляйте, если наблюдаются расхождения в остатках и оборотах регистров.
Внизу окна выберите режим «Тестирование и исправление» — в этом режиме программа не только находит, но и устраняет ошибки. Режим «Только тестирование» полезен для первичной диагностики: он покажет список проблем без изменения данных. При обнаружении битых ссылок выберите вариант обработки: «Создавать объекты» (восстановление заглушек), «Очищать ссылки» или «Не изменять» — для первого прохода разумно создавать объекты-заглушки, чтобы потом разобрать их вручную.
- 1Сделайте копию базы и завершите все сеансы пользователей
- 2Откройте конфигуратор в монопольном режиме
- 3Запустите Администрирование → Тестирование и исправление, сначала в режиме «Только тестирование»
- 4Изучите список ошибок, затем запустите «Тестирование и исправление» с нужными проверками
- 5Дождитесь завершения, проверьте открытие базы и целостность ключевых данных
Способ 2. Утилита chdbfl.exe для файловых баз
Chdbfl.exe — низкоуровневая утилита проверки физической целостности файловых баз. Она находится в каталоге установки платформы, в папке bin конкретной версии (рядом с 1cv8.exe). Утилита работает напрямую с файлом 1Cv8.1CD и часто исправляет базы, которые конфигуратор даже не может открыть.
Порядок работы простой: запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD, установите флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить». Утилита последовательно проверяет структуру таблиц и исправляет повреждённые страницы данных. На больших базах процесс занимает заметное время — не прерывайте его.
После chdbfl обязательно запустите тестирование и исправление в конфигураторе: утилита восстанавливает физическую структуру, но логические ошибки (битые ссылки, сбитые итоги) остаются и устраняются штатным инструментом. Эта связка — стандартный маршрут восстановления файловой базы.
Способ 3. Выгрузка и загрузка через dt
Выгрузка в файл dt и загрузка в новую пустую базу — эффективный способ при логических повреждениях, когда база открывается, но работает нестабильно. При выгрузке данные перечитываются и записываются заново, что устраняет часть дефектов структуры и фрагментацию.
Порядок: конфигуратор → «Администрирование» → «Выгрузить информационную базу». Затем создайте пустую базу без конфигурации, откройте её конфигуратором и выполните «Загрузить информационную базу», указав полученный dt. После загрузки запустите тестирование и исправление с пересчётом итогов.
Ограничение способа: если повреждение затронуло таблицы так, что чтение прерывается ошибкой, выгрузка может не завершиться. В этом случае сначала chdbfl, затем повторная попытка выгрузки. Также помните, что dt штатно загружается в базу с той же версией конфигурации — это не инструмент переноса между разными конфигурациями.
Способ 4. Восстановление из резервной копии и журналы СУБД
Если повреждение обширное, а свежая резервная копия есть, восстановление из копии почти всегда быстрее и надёжнее попыток «починить» разрушенный файл. Для файловых баз — возврат архивной копии каталога, для клиент-серверных — восстановление бэкапа средствами СУБД с последующим накатом журналов транзакций, если они настроены.
Оцените потери: данные, введённые между моментом копии и сбоем, придётся вводить заново. Помогут первичные документы, выписки, печатные формы. Практический приём — восстановить копию рядом, поднять исправленную текущую базу отдельно и перенести недостающие документы обработкой или вручную, сравнив периоды.
Для клиент-серверных баз дополнительно проверьте целостность на уровне СУБД: DBCC CHECKDB для SQL Server, анализ логов PostgreSQL. Если СУБД сообщает о повреждении страниц, восстановление из бэкапа обычно единственный корректный путь — править страницы данных вручную крайне рискованно.
Сравнение вариантов восстановления
Подходит при логических ошибках и когда конфигуратор открывается; не поможет при сильном физическом повреждении файла
Первый инструмент при «Файл базы данных поврежден» в файловом режиме; не исправляет логику, только структуру
Хороша при нестабильной работе открывающейся базы; требует, чтобы данные читались без фатальных ошибок
Самый надёжный при серьёзном повреждении; цена — потеря данных за период после копии
Если ничего не помогло и как не допустить повторения
Когда chdbfl, тестирование и выгрузка не дали результата, а резервной копии нет, остаются специализированные средства восстановления и сервисы, работающие с внутренним форматом 1Cv8.1CD на уровне страниц. Это платная и небыстрая процедура с негарантированным результатом — но часто единственный шанс вытащить хотя бы часть данных. Перед отправкой базы куда-либо снимите побайтовый образ диска, чтобы сохранить исходное состояние.
Профилактика дешевле лечения. Настройте регулярное резервное копирование с проверкой восстановления — копия, из которой ни разу не пробовали восстановиться, не считается надёжной. Используйте источники бесперебойного питания на серверах и компьютерах с файловыми базами. Не размещайте файловую базу на сетевом диске с нестабильным каналом: обрыв сети во время записи — классическая причина повреждения 1Cv8.1CD.
Дополнительные меры: следите за свободным местом на дисках, не работайте с базой через Wi-Fi и медленные VPN-каналы в файловом режиме, при росте числа пользователей и объёма данных переходите на клиент-серверный вариант — СУБД с журналированием транзакций переносит сбои значительно устойчивее, чем файловый формат.
Что важно запомнить
Сначала копия базы и монопольный доступ, затем диагностика: очистка кэша, chdbfl для файловых баз, тестирование и исправление, выгрузка dt. При серьёзном повреждении надёжнее восстановиться из проверенной резервной копии. Регулярные бэкапы и ИБП предотвращают большинство таких ситуаций.
Ответы на частые вопросы
База не открывается даже в конфигураторе — что делать?
Используйте chdbfl.exe из каталога платформы: укажите файл 1Cv8.1CD, включите исправление ошибок и выполните проверку. После успешной обработки конфигуратор обычно открывается, и можно запустить тестирование и исправление для устранения логических ошибок.
Тестирование и исправление удалит мои документы?
Штатные проверки не удаляют документы. Исключение — обработка битых ссылок в режиме «Очищать ссылки»: ссылки на несуществующие объекты будут очищены, а сами объекты не восстановятся. Чтобы сохранить следы, выбирайте «Создавать объекты» — появятся заглушки, которые можно разобрать вручную.
Сколько времени занимает исправление большой базы?
Зависит от объёма, скорости диска и набора проверок. На базах в десятки гигабайт полный цикл может занять несколько часов. Планируйте работы на нерабочее время и обеспечьте бесперебойное питание компьютера, где выполняется процедура.
Можно ли исправить базу на SQL Server средствами 1С?
Тестирование и исправление в конфигураторе работает и для клиент-серверных баз — оно устраняет логические ошибки. Но физическую целостность проверяют средствами СУБД (DBCC CHECKDB для SQL Server), а при повреждении страниц данных корректный путь — восстановление из резервной копии СУБД.
Ошибка «Ошибка формата потока» — база испорчена?
Не обязательно. Чаще всего это повреждённый локальный кэш: очистите папки кэша в профиле пользователя или удалите базу из списка подключений и добавьте заново. Если ошибка повторяется у всех пользователей и после очистки кэша — тогда проводите полную диагностику базы.
Как проверить, что восстановление прошло успешно?
Откройте базу в режиме предприятия, сформируйте ключевые отчёты (оборотно-сальдовая ведомость, остатки склада) и сравните с данными до сбоя или с восстановленной копией. Проведите несколько документов за разные периоды, проверьте журналы на предмет «Объект не найден». Завершите контрольным тестированием без ошибок.