Файловая база 1С не открывается: чем лечить файл 1Cv8.1CD

· 9 мин

Содержание

Поврежденный файл базы 1С лечится в таком порядке: сначала копия файла 1Cv8.1CD, затем утилита chdbfl.exe из каталога платформы, затем «Тестирование и исправление» в Конфигураторе. Если не помогло, база поднимается из свежей копии или выгрузки .dt. Менять порядок не нужно: каждый следующий способ жестче предыдущего.

Всё это относится к файловому варианту. В клиент-серверной базе нет одного файла 1Cv8.1CD, данные лежат в СУБД, и чинить их приходится средствами сервера баз данных. Если у вас файл и пользователи видят «Ошибка при выполнении файловой операции » или «Файл базы данных поврежден», вы по адресу.

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

Сначала разберитесь, что именно сломалось

Повреждение бывает трех видов, и лечатся они по-разному.

Что случилосьКак проявляетсяС чего начать
Нарушена структура файлаБаза не открывается совсем, платформа сообщает об ошибке чтенияchdbfl.exe
Нарушена логика данныхБаза открывается, но отчеты падают, документы не проводятсяТестирование и исправление
Потерян или обрезан файлРазмер 1Cv8.1CD нулевой или подозрительно малТолько восстановление из копии

Типичные причины:

  • 🔌 отключение питания во время записи;
  • 💾 переполненный диск: файл дописался не до конца;
  • 🌐 работа с базой по общей сетевой папке через нестабильное соединение;
  • 🦠 антивирус, который «лечит» открытый файл базы;
  • 💥 принудительное завершение процесса 1cv8 через диспетчер задач.

Проверьте самое простое. Посмотрите свободное место на диске с базой. Убедитесь, что размер файла 1Cv8.1CD не равен нулю. Откройте каталог базы и найдите в нем файлы блокировок 1Cv8.cdn и 1Cv8.cdn.lock: если все пользователи вышли, а файлы остались, это след аварийного завершения. Файлы блокировок можно удалять только при закрытых сеансах, сам файл .1CD не трогайте.

Копия перед любыми попытками

Остановите работу пользователей. Проверьте, что в диспетчере задач нет процессов 1cv8.exe и 1cv8c.exe. Затем скопируйте каталог базы целиком: 1Cv8.1CD и всё, что рядом.

💡 Копируйте на другой физический диск или на сетевое хранилище. Копия на тот же диск, где заканчивается место, бесполезна.

Эту копию вы больше не открываете. Она нужна как точка возврата, если лечение сделает хуже. Работаете всегда с другой копией или с самой базой, но только после того, как оригинал сохранен.

Лечение утилитой chdbfl

chdbfl.exe лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.XX.XXXX\bin\. Она работает напрямую с файлом 1Cv8.1CD и не требует запуска 1С, поэтому помогает тогда, когда база не открывается вообще.

Порядок работы:

  1. Закройте все сеансы, в том числе Конфигуратор.
  2. Запустите chdbfl.exe.
  3. В поле выбора файла укажите путь к 1Cv8.1CD.
  4. Поставьте флажок «Исправлять обнаруженные ошибки». Без него утилита только проверит файл.
  5. Нажмите «Выполнить» и дождитесь окончания. На большой базе это десятки минут.
  6. Прочитайте итоговое сообщение: утилита сообщает, нашла ли ошибки и исправила ли их.

Если в первом проходе ошибки нашлись и исправлены, запустите проверку еще раз. Чистый второй проход означает, что файл теперь согласован на уровне структуры.

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

Если chdbfl сообщила, что исправить ошибки не удалось, повторять запуск десять раз бессмысленно. Переходите к следующему способу или к копии.

Тестирование и исправление через Конфигуратор

Если база открывается хотя бы в Конфигураторе, этот способ даст более мягкий результат, чем chdbfl, и работает на уровне логики данных.

  1. Запустите 1С в режиме Конфигуратор и убедитесь, что больше никто не подключен.
  2. Откройте меню Администрирование → Тестирование и исправление.
  3. Выберите режим. «Тестирование и исправление» меняет базу, «Только тестирование» лишь показывает проблемы.
  4. Отметьте проверки (список ниже).
  5. Нажмите «Выполнить» и следите за окном сообщений.

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

Что обычно включают:

  • ✅ логическая целостность: проверка структуры хранения данных;
  • ✅ ссылочная целостность: поиск ссылок на несуществующие объекты, при исправлении они очищаются или удаляются;
  • ✅ реиндексация таблиц: полезна, если тормозит работа или есть странности в выборках;
  • ✅ пересчет итогов: исправляет расхождения между движениями и остатками;
  • ✅ сжатие таблиц: уменьшает файл, но на поврежденной базе его лучше отложить.

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

У ссылочной целостности есть отдельные варианты: что делать с ссылками на несуществующие объекты. Безопаснее выбирать «Создавать объекты», чем «Очищать ссылки»: так данные не пропадут, а в справочниках появятся записи-заглушки, которые потом можно разобрать вручную. Названия переключателей в вашей версии платформы могут слегка отличаться.

Если база огромная или лечить надо по расписанию

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

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

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

Три рабочих источника, по убыванию свежести:

ИсточникЧто вернетПодвох
Свежая резервная копия базыСостояние на дату копированияВсё введенное после нее придется перенести вручную
Выгрузка .dtСостояние на момент выгрузкиНужна именно информационная база, а не просто файл .1CD
Копия каталога базыСостояние на момент копированияКопия, снятая при работающих пользователях, могла получиться битой

Загрузка из .dt

Файл .dt создается командой выгрузки информационной базы и загружается в чистую базу.

  1. Создайте новую пустую файловую базу с той же конфигурацией, лучше в другой папке.
  2. Откройте её в Конфигураторе. Монопольный доступ нужен и тут.
  3. Выберите Администрирование → Загрузить информационную базу и укажите файл .dt.
  4. Дождитесь завершения. Операция заменяет данные и, при необходимости, конфигурацию в открытой базе.

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

Выгрузка из частично живой базы

Бывает, что после chdbfl база открывается, но падает при проведении документов. Тогда выгрузите её в .dt (меню Администрирование → Выгрузить информационную базу) и загрузите в чистую. Выгрузка читает данные таблиц по записям и не переносит физические дефекты файла. Часто это самый надежный способ «пересобрать» файл.

💡 Если выгрузка завершилась ошибкой на конкретной таблице, запомните её имя из сообщения. Эта таблица и есть повреждённая, и её содержимое придется восстанавливать отдельно: из копии или вводом заново.

Копия и догрузка

Когда восстановились из резервной копии недельной давности, рассчитывайте на ручную работу. Выясните, какой период потерян, и сверьте остатки по складу и взаиморасчетам. Заранее проверьте, что пользователи не вводили данные в старую (битую) базу параллельно: потом их придется переносить на новую.

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

Открылась и не ругается: ещё не значит, что всё в порядке. Минимальная проверка после любого лечения:

  1. Откройте основные справочники (контрагенты, номенклатура) и пролистайте список до конца. Битые таблицы часто падают именно на прокрутке.
  2. Сформируйте оборотно-сальдовую ведомость за последний закрытый период и сравните итоги с тем, что были до аварии.
  3. Проведите тестовый документ и сразу отмените проведение. Если проведение падает, повреждение осталось в регистрах.
  4. Откройте самый тяжёлый отчёт, который у вас есть. Он читает больше всего таблиц сразу.
  5. Через сутки после восстановления сделайте «Только тестирование» повторно. Если ошибки вернулись, дело не в файле, а в железе: диск, память или питание.

Повторяющиеся повреждения через несколько недель после лечения почти всегда означают проблему носителя. Проверьте состояние диска средствами S.M.A.R.T., перенесите базу на другой диск и посмотрите, уйдут ли сбои.

Журнал регистрации: где искать причину

Журнал регистрации не лечит базу, но показывает, когда и на каких операциях начались сбои. Он хранится отдельно от файла 1Cv8.1CD, в служебном каталоге 1Cv8Log внутри каталога базы, поэтому часто остается читаемым, даже когда сама база не открывается.

Открыть журнал можно из Конфигуратора командой Администрирование → Журнал регистрации. В 1С:Предприятии он также доступен из раздела администрирования.

Что искать:

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

Фильтруйте журнал по периоду и по уровню важности, иначе утонете в записях. Если подозреваете конкретный сеанс, добавьте отбор по пользователю.

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

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

Профилактика обходится дешевле любого лечения:

  1. Резервная копия по расписанию. Лучше выгрузка в .dt в нерабочее время плюс копия каталога при закрытой базе. Хранить минимум три последних копии, хотя бы одну вне сервера.
  2. Антивирус. Добавьте каталог базы и процессы 1cv8, 1cv8c в исключения. Иначе антивирус при сканировании может заблокировать или изменить файл.
  3. Бесперебойник. Для компьютера или сервера, где лежит файл базы, ИБП нужен в первую очередь.
  4. Свободное место. Держите на диске запас, равный нескольким размерам базы.
  5. Не работайте по общей папке через Wi-Fi или VPN. Файловая база не любит нестабильных каналов. Если пользователей больше пяти-десяти, пора переходить на клиент-серверный вариант.
  6. Плановое обслуживание. Раз в месяц делайте «Тестирование и исправление» в режиме «Только тестирование»: если проблемы есть, вы увидите их до аварии.
Перед запуском любого лечения
Выполнено: 0 / 5

Типичные ошибки при восстановлении

  • ❌ Лечат оригинал без копии. Если лечение сработает плохо, откатиться будет не к чему.
  • ❌ Запускают chdbfl при работающих пользователях. Файл открыт, утилита не может с ним работать.
  • ❌ Удаляют файл .1CD «чтобы создалась заново». База не пересоздается, данные пропадают.
  • ❌ Включают сразу все проверки. Особенно «Сжатие таблиц» на поврежденной базе: чем меньше вмешательств за один раз, тем легче понять, что сработало.
  • ❌ Копируют базу при работающих пользователях и считают это бэкапом. Файл в таком состоянии может оказаться несогласованным.
  • ❌ Не проверяют результат. База открылась, но данные за последние дни не сверены с бумагой и банком.

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

Можно ли восстановить базу без резервной копии?
Иногда да: chdbfl и тестирование исправляют часть повреждений. Но гарантии нет, и часть записей может быть потеряна. Поэтому копия делается в любом случае.
Сколько времени занимает chdbfl?
Зависит от размера файла и диска. На базе в несколько гигабайт это от нескольких минут до часа и более. Не прерывайте процесс, пока он не завершится.
Чем отличается Тестирование и исправление от chdbfl?
chdbfl чинит физическую структуру файла и работает без запуска 1С. Тестирование в Конфигураторе проверяет логику данных: ссылки, итоги, индексы. Начинают обычно с chdbfl, если база не открывается, и с тестирования, если открывается.
Почему после восстановления база стала меньше?
Исправление и реиндексация удаляют мусорные записи и перестраивают таблицы. Небольшое уменьшение нормально. Если размер упал в разы, проверьте остатки и документы за период.
Поможет ли переустановка платформы?
Нет. Платформа не хранит данные, повреждён сам файл базы. Переустановка полезна только если ошибка связана с запуском 1С, а не с данными.
Можно ли чинить базу на сервере в клиент-серверном режиме?
Нет. Для неё используйте средства СУБД и выгрузку .dt. Описанные здесь способы относятся к файловым базам.