Восстановление базы 1С: от резервной копии до ремонта файла .1CD

· 9 мин

Содержание

Если база 1С не открывается, выдаёт ошибку при запуске или из неё пропали документы, порядок всегда один: сначала скопируйте текущее состояние, потом восстанавливайте. Самый надёжный способ — поднять данные из резервной копии. Копии нет — повреждённую файловую базу чинят утилитой chdbfl.exe, а логические ошибки учёта правят через Тестирование и исправление в Конфигураторе.

Способ зависит от того, что именно произошло: физически повреждён файл базы, нарушилась логика учёта после аварийного завершения или пользователь удалил данные. Для каждого случая подходит свой инструмент — от разворачивания бэкапа до ремонта файла 1Cv8.1CD. Всё, что описано ниже, относится к 1С:Предприятие 8.3 в файловом и клиент-серверном варианте.

Что именно случилось с базой?

Первым делом — копия текущего состояния

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

  • 📁 Файловая база. Закройте все сеансы и скопируйте целиком папку с файлом 1Cv8.1CD в отдельное место. Копировать файл при запущенной 1С бесполезно — копия выйдет «рваной».
  • 🗄️ Клиент-серверная база . Сделайте резервную копию средствами SQL (.bak) или выгрузите данные в файл .dt через Конфигуратор: Администрирование → Выгрузить информационную базу.

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

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

Восстановление из резервной копии — самый надёжный путь

Если есть актуальный бэкап, это лучший вариант: данные гарантированно целостны, а не «подлатаны».

Для файловой базы восстановление идёт через загрузку файла .dt:

  1. Запустите Конфигуратор для нужной информационной базы.
  2. Откройте Администрирование → Загрузить информационную базу.
  3. Выберите файл выгрузки (.dt) с датой до сбоя.
  4. Подтвердите замену. Текущие данные базы будут полностью перезаписаны.

Загрузка .dt затирает всё, что есть в базе сейчас. Если после последнего бэкапа вводились документы, они пропадут. Поэтому копию текущего состояния (шаг выше) делают всегда, даже если собираетесь разворачивать старый бэкап.

Откуда взять .dt: это может быть ручная выгрузка, регулярное резервное копирование из раздела Администрирование в режиме 1С:Предприятие или архив, который делает ваш системный администратор. Для серверной базы бэкап обычно хранится не в виде .dt, а как .bak на стороне SQL — его восстанавливают средствами сервера (отдельный раздел ниже).

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

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

Ремонт повреждённого файла базы через chdbfl.exe

chdbfl.exe — штатная утилита платформы для проверки и восстановления физической целостности файловой базы. Работает только с файлом 1Cv8.1CD; для клиент-серверных баз на SQL она не применяется.

Лежит утилита в каталоге платформы, например C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe.

Порядок действий:

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

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

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

На какие симптомы указывает физическое повреждение файла: база не открывается ни в режиме 1С:Предприятие, ни в Конфигураторе; при запуске появляется ошибка вроде «Формат потока не соответствует ожидаемому» или сообщение о повреждении таблицы. Это как раз случай для chdbfl.exe. Если же база открывается, а ошибка возникает только на конкретном документе или отчёте, запускать утилиту смысла нет — проблема в логике, а не в структуре файла.

Тестирование и исправление: когда база открывается, но данные «поплыли»

Бывает, что база запускается, но после сбоя неверно считаются остатки, не совпадают итоги или 1С выдаёт ошибки при проведении. Это логические проблемы, и правят их в Конфигураторе.

Откройте Администрирование → Тестирование и исправление. В окне доступны проверки:

  • 🔧 Реиндексация таблиц — перестроение индексов.
  • 🔗 Проверка логической и ссылочной целостности — поиск «битых» ссылок на несуществующие объекты.
  • 🧮 Пересчёт итогов — приведение итогов регистров в соответствие с движениями.
  • 🏗️ Реструктуризация таблиц — приведение структуры к текущей конфигурации.

Вверху выберите режим: Тестирование (только проверка, без изменений) или Тестирование и исправление. Для реального ремонта нужен второй. Операция требует монопольного доступа и может идти долго на большой базе.

После исправления структуры часто нужно восстановить сам учёт:

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

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

Если в ходе исправления 1С предлагает варианты действий с проблемными объектами (например, удалить объект или создать недостающий), не соглашайтесь на удаление данных автоматически, пока не поняли, что именно будет удалено. На этом шаге легко потерять нужное.

Восстановление серверной базы из бэкапа SQL

Клиент-серверную базу на Microsoft SQL Server восстанавливают не через Конфигуратор, а средствами самого сервера — из файла .bak.

Восстановление перезаписывает базу данных целиком и требует, чтобы к ней никто не был подключён. Завершите сеансы пользователей и предупредите их заранее: на время операции работа в базе невозможна.

Через SQL Server Management Studio (SSMS): правой кнопкой на базе → Tasks → Restore → Database, укажите файл .bak и запустите.

Тем же результатом отрабатывает запрос:

RESTORE DATABASE [ИмяВашейБазы]
FROM DISK = 'D:\Backup\baza.bak'
WITH REPLACE, RECOVERY;

Параметр WITH REPLACE разрешает перезапись существующей базы. После восстановления проверьте, что сервер 1С видит базу и она открывается без ошибок.

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

Как найти и вернуть удалённые документы

Здесь всё зависит от того, как данные исчезли.

Объекты помечены на удаление. Пока не запущена обработка Удаление помеченных объектов, помеченные документы и элементы справочников остаются в базе. Их легко вернуть: откройте объект и снимите пометку на удаление (команда доступна в самом документе и в списке по правой кнопке). Проводки и движения восстановятся после перепроведения.

Объекты удалены физически. Если по базе уже прошла обработка удаления помеченных, объекты стёрты окончательно. Штатными средствами 1С вернуть их нельзя — поможет только резервная копия на дату до удаления.

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

  • в режиме 1С:Предприятие — через Главное меню → Все функции → Журнал регистрации (пункт Все функции включается в настройках);
  • в Конфигураторе — Администрирование → Журнал регистрации.

Журнал регистрации сам по себе ничего не восстанавливает — он только показывает историю. Но по нему видно, какие документы были удалены и когда, а значит, можно либо выбрать подходящую дату бэкапа, либо воссоздать записи вручную.

Сторонние утилиты — только на крайний случай

Если база не открывается, chdbfl.exe не справился, а резервной копии нет, остаётся попытаться прочитать данные напрямую из файла 1Cv8.1CD сторонними инструментами для работы со структурой файловой базы.

Относитесь к этому варианту как к последней надежде:

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

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

Как настроить резервное копирование, чтобы не восстанавливать вслепую

Большинство разобранных выше проблем решаются за минуту, если под рукой есть свежий бэкап. Настроить его стоит один раз.

Файловая база. В режиме 1С:Предприятие в разделе Администрирование (пункт может называться Обслуживание или Резервное копирование) задаётся расписание автоматической выгрузки .dt. Платформа сама формирует архив при выходе последнего пользователя или по графику.

Клиент-серверная база. Настройте план обслуживания в SQL Server с регулярным созданием .bak и, по возможности, резервное копирование журнала транзакций — это позволит восстановиться почти на любой момент времени, а не только на дату последнего полного бэкапа.

Несколько правил, которые экономят данные:

  1. 🗓️ Храните не одну копию, а историю за несколько дней. Ошибку в данных часто замечают не сразу, и единственный свежий бэкап может уже содержать проблему.
  2. 💾 Держите копии на отдельном диске или в сетевом хранилище. Бэкап рядом с базой на том же диске не спасёт при отказе этого диска.
  3. ✅ Периодически пробуйте развернуть копию в тестовую базу. Бэкап, который ни разу не восстанавливали, — это ещё не бэкап.
Можно ли восстановить базу 1С без резервной копии?
Иногда да. Физические повреждения файловой базы лечит chdbfl.exe, логические ошибки учёта — Тестирование и исправление. Но если данные удалены физически или файл повреждён необратимо, без бэкапа вернуть их штатными средствами нельзя.
Чем chdbfl.exe отличается от «Тестирования и исправления»?
chdbfl.exe чинит физическую структуру файла 1Cv8.1CD — работает, даже когда база не открывается, и только для файлового варианта. Тестирование и исправление запускается из Конфигуратора при открывающейся базе и правит логику: индексы, ссылки, итоги.
Пропадёт ли база после переустановки платформы 1С?
Нет. Платформа и данные хранятся отдельно. Переустановка 1С:Предприятие не трогает файл базы и настройки информационных баз — после установки нужная версия платформы просто снова подключится к существующей базе.
Сколько времени занимает восстановление?
Загрузка .dt или восстановление .bak — от нескольких минут до часа в зависимости от размера. Тестирование и исправление большой базы с перепроведением документов может идти несколько часов, поэтому планируйте его на нерабочее время.
Можно ли восстановить базу на другом компьютере?
Да. Файл .dt или копию папки с 1Cv8.1CD переносят на другую машину с установленной 1С:Предприятие и подключают как новую информационную базу. Для серверной базы аналогично переносят .bak и восстанавливают на другом SQL Server.