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

Администрирование · 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. Закройте 1С и убедитесь, что никто не работает с базой.
  2. Запустите chdbfl.exe и укажите путь к файлу 1Cv8.1CD (лучше — к его копии).
  3. Установите флажок «Исправлять обнаруженные ошибки».
  4. Нажмите «Выполнить» и дождитесь завершения проверки — на больших базах это может занять десятки минут.
  5. Изучите итоговый отчёт: какие таблицы проверены, какие ошибки исправлены, какие данные удалены как невосстановимые.
Порядок действий с chdbfl.exe
  1. 1
    Снимите копию файла 1Cv8.1CD
  2. 2
    Запустите chdbfl.exe из каталога bin платформы
  3. 3
    Укажите файл базы и включите режим исправления
  4. 4
    Дождитесь окончания проверки и сохраните отчёт
  5. 5
    Откройте базу в конфигураторе и проверьте доступность данных

Важно понимать ограничение: chdbfl.exe не «чинит» данные, а отсекает нечитаемые куски. Если повреждённая страница содержала записи документов, эти записи будут потеряны. Поэтому после работы утилиты обязательно сверьте критичные данные: остатки по счетам, последние документы, справочники.

Способ 2: тестирование и исправление в конфигураторе

Если база после chdbfl.exe открывается (или не была повреждена так сильно), следующий шаг — штатное тестирование и исправление. Откройте базу в конфигураторе в монопольном режиме и перейдите в меню «Администрирование → Тестирование и исправление».

Доступные проверки и их назначение:

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

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

Способ 3: выгрузка и загрузка через dt-файл

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

Последовательность: «Администрирование → Выгрузить информационную базу» в исходной базе, затем создание новой пустой базы без конфигурации и «Администрирование → Загрузить информационную базу» в ней. После загрузки новая база становится рабочей, а старая сохраняется как архив.

Ограничения метода: если повреждённая область содержит данные, которые платформа не может прочитать, выгрузка прервётся с ошибкой именно на этом объекте. В этом случае сначала прогоните chdbfl.exe (чтобы отсечь битые страницы), затем повторите выгрузку. Также .dt-файл плохо подходит для очень больших баз — выгрузка и загрузка могут занять много часов.

Способ 4: восстановление из резервной копии и клиент-серверный вариант

Если повреждение обширное, а данные после лечения расходятся с реальностью, честнее развернуть последнюю резервную копию и повторно внести документы за потерянный период. Это особенно актуально для учётных баз: «вылеченная» база с незаметно потерянными проводками опаснее, чем день ручного ввода.

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

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

chdbfl.exe

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

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

Подходит при логических ошибках и битых ссылках; требует, чтобы база открывалась в конфигураторе

Выгрузка/загрузка .dt

Полная реорганизация базы; надёжно, но долго и прерывается на нечитаемых объектах

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

Самый предсказуемый результат; требует актуального бэкапа и повторного ввода свежих документов

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

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

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

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

Запуск базы в режиме предприятия
Норма

Открывается без ошибок у всех пользователей

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

Ошибка СУБД повторяется на тех же операциях

Остатки по счетам и складам
Норма

Совпадают с последними достоверными данными

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

Есть расхождения или пропавшие документы

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

Ошибок не обнаружено

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

Ошибки находятся снова — вероятна проблема с диском или сетью

Состояние диска и свободное место
Норма

SMART без критических показателей, место в запасе

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

Сбойные сектора, переполнение — база повредится снова

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

Типичные ошибки
01
Лечить единственный экземпляр базы без копии — при неудаче восстанавливать нечего
02
Многократно запускать повреждённую базу «вдруг откроется» — каждая попытка может дописывать данные в битые страницы
03
Хранить базу в папке облачной синхронизации — частичная запись файла гарантированно ведёт к повреждениям
04
Игнорировать состояние диска — после успешного лечения база снова портится на сбойном носителе
05
Считать, что chdbfl.exe восстанавливает данные — утилита удаляет нечитаемое, а не ремонтирует его

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

Где находится файл базы 1С и как его найти?

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

Можно ли запускать chdbfl.exe, пока пользователи работают?

Нет. Утилита требует монопольного доступа к файлу. Запуск при открытых сеансах либо не сработает, либо приведёт к некорректному результату. Сначала завершите все сеансы, затем работайте с файлом.

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

Это следствие удаления нечитаемых страниц утилитой chdbfl.exe. Вернитесь к резервной копии, снятой до лечения, и попробуйте альтернативный путь: выгрузку .dt или восстановление из более раннего бэкапа с последующим ручным вводом недостающих документов.

Поможет ли переустановка платформы 1С при ошибке СУБД?

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

Чем файловый вариант отличается от клиент-серверного по устойчивости к сбоям?

Файловая база целиком записывается одним файлом, и любой обрыв записи бьёт по ней напрямую. Клиент-серверная СУБД ведёт журнал транзакций и умеет откатывать незавершённые операции, поэтому при сбоях повреждения случаются заметно реже и локализуются проще.

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

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

Итог

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

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