Восстановление базы 1С из резервной копии
Содержание
Чтобы загрузить бэкап в 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С: выделите базу и посмотрите строку каталога внизу.
- Сохраните текущий
1Cv8.1CDв сторону — переименуйте, например, в1Cv8.1CD.old. Это ваша страховка на случай, если копия окажется битой. - Скопируйте файл из бэкапа в папку базы под именем
1Cv8.1CD. - Запустите базу в режиме
1С:Предприятиеи проверьте данные — последние документы, остатки, период.
Подмена файла затирает текущее состояние базы. Прежде чем заменять 1Cv8.1CD, сделайте копию того файла, который лежит там сейчас — иначе откатиться будет некуда.
Если вместо файла базы у вас выгрузка .dt, файловую базу
восстанавливают через Конфигуратор — об этом следующий раздел.
Загрузка выгрузки .dt через Конфигуратор
Это основной способ, который и имеют в виду под словами «загрузить бэкап». Файл .dt содержит и конфигурацию, и все данные.
- В окне запуска выделите базу и нажмите
Конфигуратор. - Войдите под пользователем с правами администратора.
- Откройте
Администрирование → Загрузить информационную базу. - Укажите файл
.dtи подтвердите загрузку. - На вопрос о монопольном режиме и перезапуске ответьте утвердительно.
Загрузка .dt полностью перезаписывает базу: и данные, и конфигурацию заменяются содержимым выгрузки. Текущее состояние после этого не восстановить.
Для загрузки нужен монопольный доступ — в базе не должно быть активных сеансов. Конфигуратор сам предложит завершить работу других пользователей . Предупредите коллег заранее: при загрузке все их несохранённые действия пропадут, а сеансы оборвутся.
Способ один и тот же для файловой и клиент-серверной базы. Разница лишь в том, что для серверной базы Конфигуратор запускают с подключением к базе на сервере, а монопольный доступ означает отсутствие сеансов во всём кластере.
Частая задача — не заменить рабочую базу, а посмотреть данные из старого бэкапа, не трогая текущую. Для этого создайте отдельную пустую базу (в окне запуска кнопка Добавить → Создание новой информационной базы → без конфигурации) и загрузите .dt в неё. Так вы откроете копию рядом с рабочей базой и спокойно сверите документы или перенесёте нужное, ничего не потеряв в основной базе.
Восстановление клиент-серверной базы через консоль администрирования
Для базы на сервере 1С сам файл .dt всё равно грузят через Конфигуратор. А вот подготовку — блокировку сеансов — удобно сделать в консоли администрирования серверов (оснастка MMC Администрирование серверов 1С Предприятия). Это снимает главную боль серверной загрузки: пока в кластере остаётся хоть один активный сеанс, Конфигуратор не получит монопольный доступ и загрузка не начнётся.
Порядок для серверной базы:
- В консоли раскройте кластер →
Информационные базы→ свойства вашей базы. - Включите
Блокировка начала сеансов, при необходимости задайте код разрешения. Новые пользователи войти уже не смогут. - Откройте ветку
Сеансы, убедитесь, что активных подключений не осталось; при необходимости завершите их. - Запустите Конфигуратор этой базы и выполните
Администрирование → Загрузить информационную базус нужным.dt. - После проверки данных снимите блокировку начала сеансов.
Принудительное завершение сеансов обрывает работу пользователей без сохранения. Делайте это только в согласованное окно — например, после рабочего дня.
Консоль администрирования не умеет «загрузить .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:
- Подключитесь к экземпляру SQL Server, на котором зарегистрирована база.
- В консоли администрирования 1С включите блокировку начала сеансов и дождитесь выхода пользователей.
- В SSMS щёлкните правой кнопкой по нужной базе →
Задачи (Tasks) → Восстановить (Restore) → База данных (Database). - Укажите устройство (
Device) и выберите файл.bak. - На вкладке параметров включите перезапись существующей базы и запустите восстановление.
Тем же результатом будет команда 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.