Администрирование · 13 мин
Как восстановить данные информационной базы 1С
Как восстановить данные информационной базы 1С из выгрузки, резервной копии и средствами СУБД. Разбор ошибок, тестирование и исправление, FAQ.
Потеря данных в информационной базе 1С — одна из самых стрессовых ситуаций для бухгалтера и администратора: база не открывается, выдаёт ошибку формата потока, конфликт блокировок или вовсе «исчезла» после сбоя диска. Хорошая новость в том, что в большинстве случаев данные восстанавливаются — либо из резервной копии, либо штатными средствами платформы, либо инструментами СУБД, если база клиент-серверная.
Порядок действий зависит от того, что именно случилось: поврежден файл базы, удалены документы пользователем, сломался жёсткий диск или база просто не запускается после обновления. Прежде чем что-либо восстанавливать, важно зафиксировать текущее состояние — скопировать повреждённую базу «как есть», чтобы не потерять последний шанс на восстановление.
Ниже разобраны основные сценарии: восстановление из файла выгрузки .dt, из резервной копии файловой базы, средствами MS SQL Server или PostgreSQL, а также ремонт повреждённой базы утилитой тестирования и исправления. Отдельно рассмотрены типичные ошибки и границы самостоятельной работы.
Шаг ноль: зафиксируйте текущее состояние и определите тип сбоя
Первое и главное правило: не запускайте «Тестирование и исправление», не переустанавливайте платформу и не удаляйте файлы, пока не сделана копия базы в текущем состоянии. Даже повреждённая база может содержать данные, которые удастся извлечь позже. Для файловой базы просто скопируйте весь каталог с файлом 1Cv8.1CD на другой диск или сетевой ресурс.
Далее нужно понять, с чем вы имеете дело. От этого зависит весь маршрут восстановления:
Попробовать очистить кэш, затем chdbfl.exe или тестирование и исправление
Восстановление только из резервной копии или журнала регистрации для поиска виновного
Программы восстановления файлов, затем проверка целостности базы
Проверить службу SQL Server, наличие бэкапов .bak
Также уточните, есть ли вообще резервные копии: файлы .dt, архивы каталога базы, бэкапы СУБД. Если копии настраивались штатно (например, через план обслуживания в SQL Server или сторонний бэкап-сервис), восстановление займёт минуты. Если копий нет — придётся ремонтировать повреждённую базу, и результат не гарантирован.
Восстановление из файла выгрузки .dt
Файл выгрузки (.dt) — штатный формат резервной копии 1С, который создаётся через конфигуратор: меню «Администрирование» → «Выгрузить информационную базу». Это самый универсальный способ переноса и восстановления, поскольку .dt не зависит от формата хранения и подходит как для файловых, так и для клиент-серверных баз.
Чтобы восстановить базу из .dt, выполните следующее:
- 1Создайте пустую информационную базу через стартер 1С (без конфигурации) или подготовьте существующую, предварительно скопировав её
- 2Откройте эту базу в режиме Конфигуратора с правами администратора
- 3Выберите «Администрирование» → «Загрузить информационную базу» и укажите файл .dt
- 4Дождитесь окончания загрузки — для больших баз это может занять часы
- 5После загрузки примите изменения конфигурации базы данных, если платформа их запросит
- 6Запустите базу в режиме Предприятия и проверьте ключевые данные: оборотно-сальдовую ведомость, справочники, последние документы
Важно понимать ограничение: .dt содержит состояние базы на момент выгрузки. Все данные, введённые после создания копии, будут потеряны, если их не удастся перенести отдельно. Поэтому перед загрузкой старой копии в рабочую базу оцените, что «свежее»: повреждённая база или копия. Иногда выгоднее восстановить копию в отдельную базу и перенести из неё только недостающие документы обработкой.
Ещё один нюанс: загрузка .dt полностью замещает содержимое базы, включая пользователей и настройки. Если восстанавливаете в существующую базу, список пользователей будет перезаписан тем, что сохранён в выгрузке.
Восстановление файловой базы из копии каталога
Файловая база 1С — это, по сути, один большой файл 1Cv8.1CD плюс служебные файлы и папки (регистрация изменений, полнотекстовый индекс и т.д.). Если резервное копирование делалось простым копированием каталога или архивацией, восстановление сводится к обратному копированию.
Порядок такой: завершите сеансы всех пользователей, переименуйте текущий (повреждённый) каталог базы — например, добавьте к имени «_old». Затем распакуйте или скопируйте каталог из резервной копии на прежнее место, чтобы путь к базе не изменился, и пользователям не пришлось перенастраивать список баз. Запустите базу и проверьте данные.
Если база лежала на сетевом ресурсе и есть теневые копии Windows (VSS) или версии файлов в системе хранения, попробуйте восстановить предыдущую версию файла 1Cv8.1CD через свойства файла → «Предыдущие версии». Это часто спасает, когда штатного бэкапа не было.
Восстановление клиент-серверной базы средствами СУБД
В клиент-серверном варианте данные хранятся в СУБД — чаще всего MS SQL Server или PostgreSQL, и резервные копии делаются их штатными средствами. Восстановление из .dt здесь тоже возможно, но на больших базах бэкап СУБД быстрее и надёжнее: он занимает меньше места и восстанавливается значительно быстрее загрузки выгрузки.
Для MS SQL Server восстановление выполняется через SQL Server Management Studio: правый клик по узлу «Базы данных» → «Восстановить базу данных» → выбор устройства с файлом .bak. Если восстанавливаете поверх существующей базы, в параметрах включите перезапись (WITH REPLACE) и убедитесь, что активных подключений к базе нет — иначе операция завершится ошибкой.
Для PostgreSQL восстановление выполняется командой pg_restore (для формата custom) или psql для текстовых дампов. Примерно так:
pg_restore -U postgres -d base_name --clean --if-exists backup_file.dumpПосле восстановления бэкапа СУБД проверьте, что база поднялась в кластере 1С: откройте консоль кластера, убедитесь, что информационная база ссылается на восстановленную базу данных, и запустите клиент. Если восстанавливали базу под другим именем, создайте новую запись в кластере, указав существующую базу данных, а не создавая новую.
Учтите: бэкап СУБД и выгрузка .dt не взаимозаменяемы полностью. Для переноса базы между разными СУБД или разрядностями платформы корректный путь — именно .dt, а не перенос файлов данных СУБД.
Ремонт повреждённой файловой базы: chdbfl и тестирование и исправление
Если резервной копии нет, а база не открывается с ошибками вида «Ошибка формата потока» или «Файл базы данных повреждён», остаются ремонтные инструменты. Работайте только с копией файла — никогда не с единственным экземпляром.
Сначала попробуйте простейшее: очистите кэш базы. Значительная часть «ошибок формата потока» вызвана не повреждением самой базы, а испорченным кэшем метаданных на клиенте. Удалите содержимое папок кэша (в профиле пользователя, каталоги вида %APPDATA%\1C\1cv8\ с длинными буквенно-цифровыми именами) или удалите базу из списка в стартере и добавьте заново. Если после этого база открылась — ремонт не нужен.
Если не помогло, используйте утилиту chdbfl.exe из каталога bin установленной платформы. Укажите путь к файлу 1Cv8.1CD, отметьте опцию «Исправлять обнаруженные ошибки» и запустите проверку. Утилита работает на физическом уровне и может «вырезать» повреждённые участки — данные в них будут потеряны, но база часто начинает открываться.
После chdbfl (или вместо него) запустите в конфигураторе «Администрирование» → «Тестирование и исправление». Отметьте проверки «Реентерабельность...» (логическую целостность) и «Ссылочную целостность», выберите режим «Тестирование и исправление». Для больших баз процесс занимает часы. По завершении изучите протокол: там перечислены найденные ошибки и действия с ними.
Частные сценарии: удалённые документы и сбой после обновления
Пользователь удалил документы или элементы справочников
Штатной «корзины» в 1С нет: помеченные на удаление объекты после операции «Удаление помеченных объектов» исчезают физически. Восстановить их можно только из резервной копии. Практичный приём: разверните копию в отдельной базе и перенесите нужные документы типовой обработкой «Выгрузка и загрузка данных XML» (она есть на диске ИТС и в составе многих конфигураций) — так вы не откатите всю базу назад.
Журнал регистрации поможет установить, кто и когда удалил данные, но сам по себе данные не вернёт — он фиксирует событие, а не содержимое объекта.
База не открывается после обновления конфигурации
Если сбой произошёл во время динамического обновления или реструктуризации, не пытайтесь повторно обновлять «поверх». Восстановите базу из копии, сделанной перед обновлением (ответственные администраторы всегда делают её автоматически при запуске обновления через поддержку), и повторите процедуру в монопольном режиме, предварительно выполнив тестирование и исправление.
Проверка результата и профилактика
Восстановление нельзя считать завершённым, пока вы не убедились, что база работоспособна и данные согласованы. Минимальная проверка включает несколько контрольных точек:
Как проверить результат
База открывается без ошибок, пользователи входят под своими учётными записями
Ошибки формата потока, падение клиента при открытии
Отчёты строятся, сальдо совпадает с ожидаемым на дату копии
Отчёты падают с ошибкой, суммы явно не сходятся
Документы открываются и проводятся, нумерация не сломана
Пустые табличные части, битые ссылки «<Объект не найден>»
Ошибок не обнаружено
Протокол содержит ошибки ссылочной целостности
После успешного восстановления обязательно наладьте регулярное резервное копирование, если его не было: для файловых баз — ежедневная выгрузка .dt по расписанию или копирование каталога при закрытых сеансах, для клиент-серверных — план обслуживания СУБД с полным и разностными бэкапами. Копии храните минимум на двух независимых носителях, один из которых — вне сервера с базой. Периодически проверяйте копии тестовым восстановлением: бэкап, который ни разу не восстанавливали, нельзя считать надёжным.
Что важно запомнить
Сначала — копия текущего состояния, потом — диагностика и только затем восстановление. Основные инструменты: загрузка .dt, восстановление каталога или бэкапа СУБД, chdbfl и тестирование и исправление для повреждённых файлов. Регулярные проверенные бэкапы делают любую аварию решаемой за минуты.
Частые вопросы
Можно ли восстановить базу 1С, если резервной копии нет вообще?
Да, если сам файл базы уцелел. Попробуйте очистку кэша, утилиту chdbfl.exe и «Тестирование и исправление» в конфигураторе — в такой последовательности, каждый раз работая с копией. Если файл удалён или диск неисправен, сначала восстановите файл программами восстановления данных или обратитесь в специализированную лабораторию, а затем уже ремонтируйте базу.
Чем восстановление из .dt отличается от бэкапа SQL Server?
Выгрузка .dt — логическая копия на уровне платформы 1С: она универсальна и подходит для переноса между разными СУБД, но создаётся и загружается медленно. Бэкап СУБД — физическая копия базы данных: он заметно быстрее на больших объёмах и может быть инкрементным, но привязан к конкретной СУБД. Для ежедневного резервирования серверных баз обычно выбирают бэкапы СУБД, а .dt используют для переноса и страховочных копий перед обновлением.
База выдаёт «Ошибка формата потока» — она безвозвратно испорчена?
Чаще всего нет. В большинстве случаев виноват повреждённый клиентский кэш: удалите базу из списка в окне запуска и добавьте заново либо очистите папки кэша в профиле пользователя. Только если это не помогло и ошибка повторяется у всех пользователей, стоит проверять сам файл базы утилитой chdbfl.
Как восстановить только несколько документов, а не всю базу?
Разверните резервную копию в отдельную пустую базу, найдите нужные документы и перенесите их в рабочую базу обработкой «Выгрузка и загрузка данных XML» — она переносит объекты вместе со связанными ссылками. Так вы сохраните все свежие данные рабочей базы и вернёте только утраченное.
Сколько времени занимает восстановление большой базы?
Зависит от способа и объёма. Загрузка .dt базы в десятки гигабайт может идти несколько часов, восстановление бэкапа SQL Server той же базы — значительно быстрее, часто за десятки минут. Тестирование и исправление на большой файловой базе тоже способно занять часы, поэтому планируйте его на нерабочее время и предупреждайте пользователей.
Нужно ли тестировать базу после восстановления из копии?
Да, желательно. Восстановление возвращает базу в состояние на момент копии, но не гарантирует, что сама копия была целостной. Запустите «Тестирование и исправление» в режиме «Только тестирование», постройте оборотно-сальдовую ведомость и откройте несколько последних документов — это займёт немного времени и убережёт от сюрпризов при закрытии периода.