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

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

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

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

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

Хорошая новость в том, что большинство повреждений исправляется штатными средствами: утилитой chdbfl для файловых баз, механизмом «Тестирование и исправление» в конфигураторе, выгрузкой и загрузкой через dt-файл. Главное — действовать в правильном порядке и не усугубить ситуацию. Любое исправление начинается с резервной копии: без неё неудачная попытка восстановления может превратить частично рабочую базу в полностью нечитаемую.

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

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

Перед исправлением важно отличить физическое повреждение файла от логической ошибки в данных. Физическое повреждение проявляется сообщениями вида «Ошибка формата потока», «Файл базы данных повреждён», «Could not continue scan with NOLOCK» (для SQL) или внезапными вылетами платформы при обращении к конкретным таблицам. Логические ошибки выглядят иначе: база открывается, но отчёты расходятся, документы не проводятся, в журналах появляются «битые» ссылки — записи вида «Объект не найден».

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

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

Проверять chdbfl, до этого сделать копию файла

«Объект не найден» в документахБитые ссылки — логическая ошибка

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

Вылеты только у одного пользователяПроблема в кэше или профиле, а не в базе

Очистить кэш, проверить с другого ПК

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

Проверка диска, chdbfl, тестирование

Резервная копия — обязательный первый шаг

Любое исправление базы выполняется только после создания резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельную папку при закрытых сеансах всех пользователей. Для клиент-серверной базы сделайте выгрузку через конфигуратор (Администрирование → Выгрузить информационную базу) или штатный бэкап средствами СУБД.

Копия нужна по двум причинам. Во-первых, инструменты исправления (особенно «Тестирование и исправление» в режиме удаления объектов с битыми ссылками) необратимо меняют данные. Во-вторых, если процесс прервётся на середине — например, снова отключится электричество — база может оказаться в худшем состоянии, чем была. Храните копию на другом диске или сетевом ресурсе, а не рядом с рабочей базой.

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

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

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

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

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

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

Основной штатный инструмент находится в конфигураторе: меню Администрирование → Тестирование и исправление. Он работает и с файловыми, и с клиент-серверными базами и проверяет несколько уровней: реиндексацию таблиц, целостность данных, ссылочную целостность, пересчёт итогов по регистрам. Запускать его нужно в монопольном режиме — все пользователи должны выйти.

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

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

Выгрузка и загрузка через dt-файл

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

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

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

Очистка кэша и исправление ошибок сеанса

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

Самый надёжный способ — удалить базу из списка в окне запуска 1С и добавить её заново: при этом создаётся новый каталог кэша. Альтернатива — вручную удалить содержимое папок кэша в профиле пользователя (каталоги вида %APPDATA%\1C\1cv8\<идентификатор базы>). Перед удалением закройте все сеансы 1С. Для серверного кэша при клиент-серверном варианте помогает перезапуск службы агента сервера 1С.

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

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

База не открывается, сообщение о повреждении файлаКопия файла, затем chdbfl, затем тестирование и исправление
База открывается, но есть битые ссылки и неверные итогиТестирование и исправление с созданием объектов-заглушек и пересчётом итогов
Ошибки только у одного пользователя или после обновленияОчистка кэша, проверка версии платформы
Ничего не помогло, но база открываетсяВыгрузка в dt и загрузка в новую чистую базу
Файл базы даже не копируетсяДиагностика и восстановление диска, работа с копией

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

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

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

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

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

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

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

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

Частично. Утилита chdbfl запускается отдельно и не требует входа в конфигуратор, а очистка кэша вообще выполняется средствами Windows. Но полноценное тестирование ссылочной целостности и пересчёт итогов доступны только в конфигураторе, поэтому без него восстановление обычно неполное.

Что делать, если тестирование и исправление зависает?

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

Чем отличается chdbfl от тестирования и исправления?

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

База после сбоя открывается, но отчёты показывают неверные суммы. Что делать?

Это типичный признак сломанных итогов по регистрам. Запустите в конфигураторе тестирование и исправление только с пунктом «Пересчёт итогов» — документы при этом не изменяются, а остатки и обороты пересчитываются заново.

Как восстановить базу, если резервной копии нет и файл повреждён?

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

Может ли антивирус быть причиной повреждений базы?

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