Копия базы 1С из файла, .dt или бэкапа СУБД: запуск без риска для рабочей базы
Содержание
Чтобы подключить копию базы
1С, её сначала разворачивают в отдельном месте, а потом добавляют в список баз окна запуска кнопкой Добавить…. Копию файловой базы (каталог с файлом 1Cv8.1CD) подключают сразу. Выгрузку .dt загружают в новую пустую базу через Конфигуратор. Бэкап MS SQL или PostgreSQL восстанавливают под новым именем в СУБД и регистрируют в кластере серверов 1С.
Главная опасность при восстановлении копии базы — не сама процедура, а её последствия. Копия случайно затирает рабочую базу, отправляет в ЭДО повторные документы или запускает обмен с филиалом. Защита от этого — отдельное имя, новый каталог и блокировка внешних ресурсов в копии. Всё описанное относится к платформе 1С:Предприятие 8.3 и одинаково работает для БП, ЗУП, УТ и других конфигураций.
Подготовка: что сделать до подключения копии
Пять минут подготовки избавят от самой тяжёлой ошибки — загрузки копии поверх рабочей базы.
- 📁 Определите формат копии. Каталог с
1Cv8.1CD, архив.zipс этим файлом внутри, файл выгрузки.dt, бэкап.bak(MS SQL) или дамп.backup/.dump(PostgreSQL) — от этого зависит способ. - 🔢 Узнайте версию платформы, на которой сделана копия. Для файла
.dtна новом месте нужна платформа с номером не ниже исходной. Номер виден в рабочей базе:Справка → О программе. - 📍 Выберите новое место. Отдельный каталог для файловой базы, новое имя базы данных для SQL. Никогда не используйте путь или имя рабочей базы.
- 💾 Проверьте свободное место. Развёрнутая база из
.dtобычно в несколько раз больше файла выгрузки. Бэкап SQL при восстановлении занимает примерно столько же, сколько исходная база с журналом транзакций. - 🔑 Подготовьте логин и пароль пользователя с полными правами из той базы, из которой сделана копия. В копии действуют её пользователи, а не пользователи текущей базы.
- 🪪 Учтите лицензию. На другом компьютере копия запустится, только если там доступна лицензия 1С.
Если копию готовят из рабочей базы прямо сейчас, файл 1Cv8.1CD копируйте, когда в базе никто не работает. Копия файла, снятая во время записи, может оказаться повреждённой.
Какой способ подключения копии базы 1С подходит вам
| Что у вас на руках | Как подключить | Сколько времени | Риски |
|---|---|---|---|
Каталог с 1Cv8.1CD или архив с ним | Распаковать в новый каталог и добавить в список баз | Минуты | Почти нет, если каталог новый |
Файл .dt | Создать пустую базу, загрузить .dt в Конфигураторе | От минут до часов — зависит от размера | Загрузка в не ту базу стирает её данные |
Бэкап .bak MS SQL | RESTORE под новым именем, затем регистрация в кластере 1С | Зависит от размера, обычно быстрее .dt | Перезапись рабочей БД при неверном имени или файлах |
| Дамп PostgreSQL | pg_restore в новую БД, регистрация в кластере 1С | Зависит от размера | То же, плюс несовместимость сборок PostgreSQL |
.dt — универсальный формат: его можно загрузить и в файловую, и в серверную базу
. Бэкапы СУБД восстанавливаются только в ту же СУБД.
Как подключить копию базы через окно запуска и Конфигуратор
Копия файловой базы (файл 1Cv8.1CD)
- Создайте пустой каталог, например
D:\1C_Copies\Buh_copy_0710. - Скопируйте туда
1Cv8.1CDили распакуйте архив. Каталог журнала регистрации1Cv8Logпереносить не обязательно. - Откройте окно запуска 1С и нажмите
Добавить…. - Выберите
Добавление в список существующей информационной базы, нажмитеДалее. - Введите понятное имя: «Бухгалтерия — КОПИЯ от 07.10». Слово «копия» в названии спасёт от ввода документов не в ту базу.
- Тип расположения —
На данном компьютере или на компьютере в локальной сети, в поле каталога укажите папку из шага 1. - Нажмите
Далее, оставьте параметры запуска по умолчанию и нажмитеГотово.
Копия появится в списке. Её можно сразу открывать в режиме 1С:Предприятие.
Копия в виде файла выгрузки .dt
Файл .dt нельзя «открыть» — его загружают в существующую базу, и он полностью заменяет её содержимое. Поэтому сначала создают пустую базу.
- В окне запуска нажмите
Добавить…→Создание новой информационной базы. - Выберите вариант создания базы без конфигурации — для разработки новой конфигурации или загрузки выгруженной ранее информационной базы.
- Дайте имя с пометкой «копия», укажите новый пустой каталог (или сервер — см. раздел про MS SQL) и нажмите
Готово. - Выделите новую базу и нажмите
Конфигуратор. Пароль не спросят: в пустой базе пользователей нет. - Откройте
Администрирование → Загрузить информационную базу…, выберите файл.dt. - Подтвердите предупреждение о замене данных. Дождитесь сообщения об успешной загрузке.
- Конфигуратор предложит перезапуститься — соглашайтесь. После перезапуска понадобится логин и пароль из исходной базы.
Перед загрузкой .dt дважды проверьте заголовок окна Конфигуратора: там видно имя и путь базы. Загрузка в рабочую базу молча сотрёт всё, что в ней было.
Восстановление копии базы 1С на MS SQL Server
Серверная база — это две сущности: база данных в MS SQL и запись об информационной базе в кластере 1С. Копию нужно сделать для обеих.
Шаг 1. Восстановите бэкап под новым именем
Сначала узнайте логические имена файлов внутри бэкапа:
RESTORE FILELISTONLY FROM DISK = N'E:\Backup\buh_full.bak';
Затем восстановите базу под новым именем. Через MOVE направьте файлы данных и журнала в новые физические файлы — иначе SQL попытается писать в файлы рабочей базы:
RESTORE DATABASE [buh_copy]
FROM DISK = N'E:\Backup\buh_full.bak'
WITH MOVE N'buh' TO N'D:\SQLData\buh_copy.mdf',
MOVE N'buh_log' TO N'D:\SQLData\buh_copy_log.ldf',
STATS = 10;
Имена buh и buh_log замените на значения из колонки LogicalName предыдущего запроса.
💡 Если копию снимаете с рабочей базы, где настроена цепочка бэкапов, делайте её с параметром WITH COPY_ONLY. Так внеплановый бэкап не нарушит последовательность разностных копий.
Параметр REPLACE нужен, только когда вы осознанно перезаписываете существующую базу копии. С ним RESTORE не остановится и перед базой с таким же именем, поэтому проверьте имя после RESTORE DATABASE.
Шаг 2. Зарегистрируйте базу в кластере 1С
- Откройте консоль администрирования серверов 1С:
Кластер → Информационные базы → Создать → Новая информационная база. - Имя базы в кластере — например,
buh_copy. - Сервер баз данных, тип СУБД
MSSQLServer, имя базы данных —buh_copy, как вRESTORE. - Укажите пользователя СУБД с правами на новую базу.
- Снимите флажок «Создать базу данных в случае её отсутствия» — база уже есть.
- Поставьте флажок «Установить блокировку регламентных заданий». Копия не начнёт выполнять обмены, загрузку курсов и отправку почты.
- В окне запуска на клиенте нажмите
Добавить…→Добавление в список существующей информационной базы, тип расположенияНа сервере 1С:Предприятия, укажите кластер и имяbuh_copy.
Если бэкапа SQL нет, а есть .dt, создайте в кластере новую базу с флажком «Создать базу данных в случае её отсутствия» и загрузите в неё .dt через Конфигуратор, как в разделе выше.
Копия базы 1С на PostgreSQL: восстановление дампа
Для 1С используют сборки PostgreSQL с патчами для 1С. Восстанавливайте дамп на той же сборке и той же основной версии, что и исходный сервер, — так меньше сюрпризов.
Дамп в собственном формате PostgreSQL делают так:
pg_dump -U postgres -Fc -f /backup/buh.dump buh
Восстановление в новую базу:
createdb -U postgres -T template0 buh_copy
pg_restore -U postgres -j 4 -d buh_copy /backup/buh.dump
- 🧩
-T template0создаёт чистую базу без лишних объектов из шаблонаtemplate1. - ⚡
-j 4запускает восстановление в 4 потока. Ставьте число не выше количества ядер сервера. - 🔤 Кодировка и локаль новой базы должны совпадать с исходной. Если при создании кластера PostgreSQL использовалась русская локаль, то и база создастся с ней.
Дальше всё как для MS SQL: в консоли кластера создайте информационную базу с типом СУБД PostgreSQL, именем БД buh_copy, без создания базы данных и с блокировкой регламентных заданий. Затем добавьте её в список баз на клиенте.
Если pg_restore выдаёт ошибки про отсутствующие функции или расширения, почти всегда виновата другая сборка или основная версия PostgreSQL на целевом сервере.
Первый запуск и проверка подключённой копии
Блокировка внешних ресурсов
Типовые конфигурации на БСП отслеживают перемещение базы. При первом входе в копию появится окно о том, что база перемещена или восстановлена из резервной копии. В нём два варианта:
- «Это копия информационной базы» — выбирайте его. Работа с внешними ресурсами останется заблокированной: обмены, синхронизация, отправка писем, загрузка из интернета.
- «Информационная база перемещена» — только если копия станет новой рабочей базой, а старую вы выводите из работы.
Если окно не появилось, проверьте вручную, что в копии не включены: обмен с банком и ЭДО, синхронизация с другими базами, отправка отчётности, автоматическая почта.
💡 Смените заголовок программы, чтобы копию нельзя было спутать с рабочей. В БП 3.0 это поле Заголовок программы в Администрирование → Общие настройки. Впишите, например, «КОПИЯ от 07.10 — не для работы».
Что проверить в данных
Сверять удобнее всего оборотно-сальдовой ведомостью за один и тот же период: в копии и в рабочей базе (или в выгрузке, сделанной до сбоя). Расхождение — повод искать, в какой момент снята копия.
Если копию восстанавливали после сбоя и есть сомнения в целостности, запустите в Конфигураторе Администрирование → Тестирование и исправление. Для этого нужен монопольный доступ: в копии никто, кроме вас, работать не должен.
Автоматическое подключение копии базы: bat-скрипт и планировщик
Тестовую копию часто обновляют регулярно — например, каждую ночь выгружают рабочую базу и загружают в копию для разработчика. Это делается пакетным запуском Конфигуратора.
@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
set DT=E:\Backup\buh_last.dt
set LOG=E:\Backup\restore_copy.log
%V8% DESIGNER /F"D:\1C_Copies\Buh_test" /N"Администратор" /P"пароль" /RestoreIB "%DT%" /Out "%LOG%" /DisableStartupMessages
- 🔧 Путь к
1cv8.exeзамените на свой: номер версии в нём — пример. - 🖥 Для серверной базы вместо
/F"…"пишите/S"имя_сервера\buh_copy". - 📄 Ключ
/Outпишет результат в лог — проверяйте его, а не только факт запуска.
Скрипт запускают через планировщик заданий Windows: taskschd.msc → Создать задачу, триггер «Ежедневно» на ночь, действие — запуск bat-файла. Укажите учётную запись, у которой есть доступ к каталогу с .dt и к базе, и включите выполнение без входа пользователя.
Для MS SQL проще восстанавливать бэкап напрямую заданием SQL Server Agent: шаг с тем же RESTORE … WITH MOVE …, REPLACE. Перед восстановлением в серверную базу заблокируйте в ней начало сеансов в консоли кластера — иначе RESTORE не получит монопольный доступ к базе.
Пароль администратора в bat-файле хранится открытым текстом. Заведите в копии отдельного пользователя только для загрузки и ограничьте доступ к каталогу со скриптом.
Ошибки при подключении копии базы 1С
Отдельный случай — копия открывается, но спрашивает пароль, которого никто не помнит. В копии действуют пользователи исходной базы на момент её создания. Если пароль сменили позже, войти нужно со старым.