Администрирование · 11 мин
Как исправить ошибки в базе 1С: практическое руководство
Как исправить ошибки в базе 1С: тестирование и исправление, chdbfl, конфигуратор, выгрузка и загрузка данных, типичные причины сбоев и профилактика.
Ошибки в базе 1С проявляются по-разному: программа вылетает при открытии документа, отчёт показывает неверные итоги, при записи появляется сообщение о нарушении целостности, а иногда база просто не открывается. Причины чаще всего типовые: аварийное завершение работы (отключение электричества, разрыв сети), сбои жёсткого диска, нехватка места, антивирус, блокирующий файлы базы, или ошибки в доработанных конфигурациях.
Хорошая новость в том, что большинство повреждений исправляется штатными средствами: утилитой chdbfl для файловых баз, механизмом «Тестирование и исправление» в конфигураторе, выгрузкой и загрузкой через dt-файл. Главное — действовать в правильном порядке и не усугубить ситуацию. Любое исправление начинается с резервной копии: без неё неудачная попытка восстановления может превратить частично рабочую базу в полностью нечитаемую.
Ниже разобраны практические сценарии: как определить тип повреждения, какой инструмент выбрать под файловый или клиент-серверный вариант, как проверить результат и когда самостоятельное восстановление лучше прекратить.
Как понять, что база повреждена, и определить тип ошибки
Перед исправлением важно отличить физическое повреждение файла от логической ошибки в данных. Физическое повреждение проявляется сообщениями вида «Ошибка формата потока», «Файл базы данных повреждён», «Could not continue scan with NOLOCK» (для SQL) или внезапными вылетами платформы при обращении к конкретным таблицам. Логические ошибки выглядят иначе: база открывается, но отчёты расходятся, документы не проводятся, в журналах появляются «битые» ссылки — записи вида «Объект не найден».
Ещё один класс проблем — ошибки не в базе, а в окружении: устаревшая платформа, конфликт расширений, нехватка прав у пользователя, переполненный диск. Поэтому первым шагом всегда проверьте простые версии: свободное место на диске, доступность сервера, работу базы под другим пользователем и на другом компьютере. Если под другим пользователем всё работает — проблема в кэше или правах, а не в данных.
Проверять chdbfl, до этого сделать копию файла
Тестирование и исправление в конфигураторе
Очистить кэш, проверить с другого ПК
Проверка диска, chdbfl, тестирование
Резервная копия — обязательный первый шаг
Любое исправление базы выполняется только после создания резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельную папку при закрытых сеансах всех пользователей. Для клиент-серверной базы сделайте выгрузку через конфигуратор (Администрирование → Выгрузить информационную базу) или штатный бэкап средствами СУБД.
Копия нужна по двум причинам. Во-первых, инструменты исправления (особенно «Тестирование и исправление» в режиме удаления объектов с битыми ссылками) необратимо меняют данные. Во-вторых, если процесс прервётся на середине — например, снова отключится электричество — база может оказаться в худшем состоянии, чем была. Храните копию на другом диске или сетевом ресурсе, а не рядом с рабочей базой.
Исправление файловой базы утилитой chdbfl
Утилита chdbfl.exe входит в состав платформы 1С и лежит в папке bin установленной версии (например, C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe). Она проверяет физическую целостность файла 1Cv8.1CD и умеет исправлять повреждения структуры таблиц. Это первый инструмент, когда файловая база не открывается совсем или платформа сообщает, что файл повреждён.
Порядок работы: завершите все сеансы, убедитесь, что файл базы никем не занят, запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD, поставьте флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить». Проверка большой базы занимает заметное время — не прерывайте процесс. После завершения откройте базу в конфигураторе и дополнительно запустите тестирование и исправление, потому что chdbfl чинит физику файла, но не логику данных.
Ограничение утилиты: она работает только с файловым вариантом и не заменяет проверку ссылочной целостности. Если chdbfl сообщает об ошибках, которые не исправляются, или база после её работы по-прежнему не открывается, следующий шаг — восстановление из резервной копии либо выгрузка того, что читается, в новую пустую базу.
- 1Завершите все сеансы пользователей и закройте конфигуратор
- 2Скопируйте файл 1Cv8.1CD в резервную папку
- 3Запустите chdbfl.exe из папки bin платформы
- 4Укажите путь к файлу базы и включите режим исправления
- 5Дождитесь окончания проверки, не прерывая процесс
- 6Откройте базу в конфигураторе и выполните тестирование и исправление
- 7Проверьте ключевые документы и отчёты за последние дни
Тестирование и исправление в конфигураторе
Основной штатный инструмент находится в конфигураторе: меню Администрирование → Тестирование и исправление. Он работает и с файловыми, и с клиент-серверными базами и проверяет несколько уровней: реиндексацию таблиц, целостность данных, ссылочную целостность, пересчёт итогов по регистрам. Запускать его нужно в монопольном режиме — все пользователи должны выйти.
Для первого прохода выберите проверки «Реиндексация таблиц», «Проверка логической целостности» и «Проверка ссылочной целостности». Режим — «Тестирование и исправление». В настройках обработки битых ссылок есть три варианта: создавать объекты-заглушки, очищать ссылки или удалять объекты. Самый безопасный — создание объектов: вместо потерянных записей появятся элементы-заглушки, которые потом можно найти и разобрать вручную. Удаление объектов — крайняя мера, она необратима.
Пересчёт итогов запускайте отдельно, если жалобы касаются неверных остатков и оборотов в отчётах при корректных документах. Слом итогов — типичное последствие аварийных завершений, и пересчёт решает проблему без вмешательства в сами данные.
Выгрузка и загрузка через dt-файл
Выгрузка информационной базы в dt-файл (Администрирование → Выгрузить информационную базу) и последующая загрузка в новую пустую базу — эффективный способ избавиться от целого класса ошибок. При выгрузке платформа последовательно читает все данные и записывает их заново в новую структуру: «мусор» в служебных областях, повреждённые индексы и часть внутренних несоответствий при этом исчезают.
Метод особенно полезен, когда база открывается, но работает нестабильно, а chdbfl и тестирование не дают результата. Порядок такой: выгрузите базу в dt, создайте новую пустую базу той же конфигурации, загрузите в неё dt-файл, затем проверьте работу. Если выгрузка обрывается с ошибкой на конкретном объекте — это тоже диагностика: сообщение указывает, где именно сидит повреждение.
Учтите ограничение: dt-файл не переносит некоторые внешние компоненты и настройки, привязанные к каталогу базы. После загрузки проверьте подключение оборудования, обмены и внешние печатные формы.
Очистка кэша и исправление ошибок сеанса
Значительная часть «ошибок базы» на деле — ошибки кэша метаданных на клиентском компьютере. Признаки: у одного пользователя программа вылетает или ругается, у остальных всё работает; после обновления конфигурации появляются странные сообщения; формы открываются некорректно. В таких случаях базу чинить не нужно — нужно очистить кэш.
Самый надёжный способ — удалить базу из списка в окне запуска 1С и добавить её заново: при этом создаётся новый каталог кэша. Альтернатива — вручную удалить содержимое папок кэша в профиле пользователя (каталоги вида %APPDATA%\1C\1cv8\<идентификатор базы>). Перед удалением закройте все сеансы 1С. Для серверного кэша при клиент-серверном варианте помогает перезапуск службы агента сервера 1С.
Как выбрать действие
Проверка результата и профилактика
После любого исправления обязательно проверьте результат, прежде чем разрешать работу пользователей. Откройте несколько документов за последние дни, сформируйте оборотно-сальтовую ведомость и ключевые отчёты, сравните итоги с данными из резервной копии или распечаток. Проверьте проведение нового документа и работу обменов, если они настроены. Только после этого базу можно считать восстановленной.
Профилактика сводится к нескольким правилам. Настройте регулярное автоматическое резервное копирование и периодически проверяйте, что копии реально восстанавливаются. Исключите каталоги баз и сервера 1С из активной проверки антивируса. Используйте источник бесперебойного питания для сервера и компьютеров с файловыми базами. Не размещайте файловую базу на сетевом диске при большом числе пользователей — при росте нагрузки переходите на клиент-серверный вариант. Своевременно обновляйте платформу: в новых версиях исправляют ошибки, которые сами могут приводить к повреждениям.
Что важно запомнить
Последовательность всегда одна: резервная копия → диагностика типа ошибки → chdbfl для файловых баз или тестирование и исправление в конфигураторе → при необходимости выгрузка/загрузка через dt → проверка данных перед запуском пользователей. Ошибки одного пользователя чинятся очисткой кэша, а не базы.
Частые вопросы
Можно ли исправить базу 1С без конфигуратора?
Частично. Утилита chdbfl запускается отдельно и не требует входа в конфигуратор, а очистка кэша вообще выполняется средствами Windows. Но полноценное тестирование ссылочной целостности и пересчёт итогов доступны только в конфигураторе, поэтому без него восстановление обычно неполное.
Что делать, если тестирование и исправление зависает?
На больших базах проверка идёт часами, и видимость зависания может быть обманчивой — смотрите на активность диска и процессора. Если процесс действительно не двигается несколько часов, прервите его, восстановите базу из копии и попробуйте запускать проверки по одной, начиная с реиндексации.
Чем отличается chdbfl от тестирования и исправления?
chdbfl работает с физической структурой файла 1Cv8.1CD и исправляет повреждения самого файла. Тестирование и исправление работает на уровне данных: ссылки, итоги, логическая целостность. При серьёзном повреждении файловой базы их применяют последовательно: сначала chdbfl, потом тестирование в конфигураторе.
База после сбоя открывается, но отчёты показывают неверные суммы. Что делать?
Это типичный признак сломанных итогов по регистрам. Запустите в конфигураторе тестирование и исправление только с пунктом «Пересчёт итогов» — документы при этом не изменяются, а остатки и обороты пересчитываются заново.
Как восстановить базу, если резервной копии нет и файл повреждён?
Сначала скопируйте повреждённый файл любым способом — даже частично читаемый файл ценен. Затем пробуйте chdbfl и открытие в конфигураторе. Если база не открывается, иногда удаётся выгрузить данные через внешние обработки чтения таблиц, но это работа для специалиста по восстановлению, и гарантий она не даёт.
Может ли антивирус быть причиной повреждений базы?
Да. Антивирус, проверяющий файл базы в момент записи, может блокировать операции и провоцировать ошибки. Добавьте каталоги баз, сервера 1С и временные папки платформы в исключения антивируса — это стандартная рекомендация для рабочих баз.