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

· 9 мин

Содержание

Чтобы загрузить бэкап в 1С, откройте Конфигуратор нужной базы и выберите Администрирование → Загрузить информационную базу, затем укажите файл выгрузки .dt. Если резервная копия — это просто копия файла базы 1Cv8.1CD, базу закрывают у всех пользователей и подменяют файл. Для клиент-серверной базы на MS SQL есть третий путь — восстановление .bak средствами SQL Server.

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

С чего начать: какой формат у вашей копии

Прежде чем что-то загружать, посмотрите, что именно вам дали на восстановление. От формата зависит инструмент.

  • 📁 Копия файла 1Cv8.1CD — это файловая база целиком в одном файле. Иногда лежит внутри .zip. Подходит только для файлового варианта работы.
  • 📦 Выгрузка .dt — универсальный дамп информационной базы из Конфигуратора. Грузится и в файловую, и в клиент-серверную базу . Самый частый формат ручных бэкапов.
  • 🗄️ Нативный бэкап SQL .bak — резервная копия базы данных MS SQL Server. Только для клиент-серверного варианта, восстанавливается средствами СУБД.

Автоматические бэкапы из облака или от администратора чаще всего приходят в .dt или .bak. Если файл называется 1Cv8.1CD — это сырая файловая база, её не «загружают», а подставляют на место текущей.

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

Какой у вас бэкап и чем его грузить?

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

Если бэкап — это копия самого файла 1Cv8.1CD, загрузка сводится к подмене файла. Делается так:

  1. Закройте базу во всех окнах: и в режиме 1С:Предприятие, и в Конфигураторе, на всех компьютерах. Пока файл открыт хотя бы одним сеансом, подменить его нельзя.
  2. Откройте папку базы. Путь виден в окне запуска 1С: выделите базу и посмотрите строку каталога внизу.
  3. Сохраните текущий 1Cv8.1CD в сторону — переименуйте, например, в 1Cv8.1CD.old. Это ваша страховка на случай, если копия окажется битой.
  4. Скопируйте файл из бэкапа в папку базы под именем 1Cv8.1CD.
  5. Запустите базу в режиме 1С:Предприятие и проверьте данные — последние документы, остатки, период.

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

Если вместо файла базы у вас выгрузка .dt, файловую базу восстанавливают через Конфигуратор — об этом следующий раздел.

Загрузка выгрузки .dt через Конфигуратор

Это основной способ, который и имеют в виду под словами «загрузить бэкап». Файл .dt содержит и конфигурацию, и все данные.

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

Загрузка .dt полностью перезаписывает базу: и данные, и конфигурацию заменяются содержимым выгрузки. Текущее состояние после этого не восстановить.

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

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

Частая задача — не заменить рабочую базу, а посмотреть данные из старого бэкапа, не трогая текущую. Для этого создайте отдельную пустую базу (в окне запуска кнопка Добавить → Создание новой информационной базы → без конфигурации) и загрузите .dt в неё. Так вы откроете копию рядом с рабочей базой и спокойно сверите документы или перенесёте нужное, ничего не потеряв в основной базе.

Перед загрузкой .dt
Выполнено: 0 / 4

Восстановление клиент-серверной базы через консоль администрирования

Для базы на сервере 1С сам файл .dt всё равно грузят через Конфигуратор. А вот подготовку — блокировку сеансов — удобно сделать в консоли администрирования серверов (оснастка MMC Администрирование серверов 1С Предприятия). Это снимает главную боль серверной загрузки: пока в кластере остаётся хоть один активный сеанс, Конфигуратор не получит монопольный доступ и загрузка не начнётся.

Порядок для серверной базы:

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

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

Консоль администрирования не умеет «загрузить .dt» сама по себе — она управляет кластером, базами и сеансами. Загрузка данных — это всегда либо Конфигуратор (.dt), либо средства СУБД (.bak).

Загрузка бэкапа из командной строки

Когда восстановление нужно автоматизировать (ночной скрипт, перенос на тестовый контур), выгрузку .dt грузят Конфигуратором в пакетном режиме.

Для клиент-серверной базы:

1cv8 DESIGNER /S "server\basename" /N "Администратор" /P "пароль" /RestoreIB "D:\Backup\base.dt"

Для файловой базы вместо /S указывают каталог:

1cv8 DESIGNER /F "D:\bases\mybase" /N "Администратор" /P "пароль" /RestoreIB "D:\Backup\base.dt"

Разбор параметров:

  • DESIGNER — режим Конфигуратора (загрузка идёт только из него).
  • /S server\basename — сервер 1С и имя базы в кластере; /F путь — каталог файловой базы.
  • /N и /P — логин и пароль администратора базы.
  • /RestoreIB — путь к файлу .dt. Обратная команда /DumpIB выгружает базу в .dt.

Перед пакетной загрузкой в кластере так же нужно убрать активные сеансы. Список сеансов и соединений смотрят утилитой rac (клиент сервера администрирования; работает в паре с запущенным ras):

rac session list --cluster=<идентификатор кластера>

Идентификатор кластера даёт команда rac cluster list. Если не уверены в точном наборе параметров для своей версии платформы — вызовите rac help или rac session --help: справка покажет доступные команды, выдумывать их не нужно.

Сам .dt через rac не загружается — это задача Конфигуратора (1cv8 DESIGNER /RestoreIB). ras/rac здесь только для управления сеансами перед восстановлением.

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

Если база работает на MS SQL Server и бэкап сделан средствами СУБД (.bak), восстанавливать его быстрее и правильнее через SQL Server, а не через выгрузку .dt.

Через SQL Server Management Studio:

  1. Подключитесь к экземпляру SQL Server, на котором зарегистрирована база.
  2. В консоли администрирования 1С включите блокировку начала сеансов и дождитесь выхода пользователей.
  3. В SSMS щёлкните правой кнопкой по нужной базе → Задачи (Tasks) → Восстановить (Restore) → База данных (Database).
  4. Укажите устройство (Device) и выберите файл .bak.
  5. На вкладке параметров включите перезапись существующей базы и запустите восстановление.

Тем же результатом будет команда T-SQL:

RESTORE DATABASE [MyBase]
FROM DISK = N'D:\Backup\mybase.bak'
WITH REPLACE, RECOVERY;

WITH REPLACE затирает текущую базу данных SQL целиком. Восстанавливайте поверх рабочей базы только убедившись, что это именно та база и именно тот бэкап. Сделайте свежий .bak текущего состояния до восстановления.

Если сервер 1С работает не на MS SQL, а на PostgreSQL, логика та же, но инструмент другой. Дамп, снятый утилитой pg_dump, восстанавливают в созданную заранее пустую базу данных:

pg_restore -U postgres -d basename -c "D:\Backup\base.dump"

Ключ -c сначала удаляет существующие объекты, поэтому восстанавливают либо в чистую базу, либо осознанно поверх. Если дамп сохранён не в архивном формате, а обычным SQL-скриптом, его подаёт psql:

psql -U postgres -d basename -f "D:\Backup\base.sql"

Имя базы данных (basename) берут из консоли администрирования 1С — это строка «База данных» в свойствах информационной базы. Пользователи на время восстановления должны быть отключены так же, как и в случае с MS SQL.

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

Проверка целостности после загрузки и частые ошибки

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

  • Файловая база — утилита chdbfl.exe из каталога bin установленной платформы. Запустите, укажите файл 1Cv8.1CD, при необходимости включите флажок исправления найденных ошибок. Проверяет физическую целостность файла.
  • Любая база — в Конфигураторе Администрирование → Тестирование и исправление информационной базы. Логическая проверка и реиндексация.
  • База на SQL — проверку физической целостности делает DBCC CHECKDB средствами SQL Server.

Что чаще всего мешает загрузить бэкап:

Диагностика: выберите симптом

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

Можно ли загрузить бэкап поверх работающей базы без потери свежих данных?
Нет. И загрузка .dt, и подмена 1Cv8.1CD, и RESTORE в SQL полностью заменяют текущее состояние. Данные, внесённые после создания бэкапа, не сохраняются. Если они нужны — сначала сделайте копию текущей базы, восстановите бэкап в отдельную базу и перенесите недостающее вручную.
Чем `.dt` отличается от копии файла `1Cv8.1CD`?
1Cv8.1CD — это сама файловая база «как есть». .dt — сжатая выгрузка содержимого базы, которая грузится и в файловый, и в серверный вариант. .dt переносимее и меньше по размеру, копия файла — быстрее в создании.
Загрузится ли бэкап файловой базы в клиент-серверную?
Если бэкап в формате .dt — да: создайте пустую базу на сервере и загрузите в неё .dt через Конфигуратор. Копию файла 1Cv8.1CD напрямую в серверную базу подставить нельзя, её сначала превращают в .dt.
Нужны ли права администратора, чтобы загрузить базу?
Да. Загрузка информационной базы доступна только пользователю с административными правами, а для серверной базы — ещё и с правами на управление кластером, чтобы завершить сеансы.
Сколько времени занимает загрузка?
Зависит от объёма базы и диска. Небольшая база грузится за минуты, база в десятки гигабайт — десятки минут и дольше. На время загрузки работа в базе невозможна, планируйте окно.