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