Копия базы 1С из файла, .dt или бэкапа СУБД: запуск без риска для рабочей базы

· 10 мин

Содержание

Чтобы подключить копию базы 1С, её сначала разворачивают в отдельном месте, а потом добавляют в список баз окна запуска кнопкой Добавить…. Копию файловой базы (каталог с файлом 1Cv8.1CD) подключают сразу. Выгрузку .dt загружают в новую пустую базу через Конфигуратор. Бэкап MS SQL или PostgreSQL восстанавливают под новым именем в СУБД и регистрируют в кластере серверов 1С.

Главная опасность при восстановлении копии базы — не сама процедура, а её последствия. Копия случайно затирает рабочую базу, отправляет в ЭДО повторные документы или запускает обмен с филиалом. Защита от этого — отдельное имя, новый каталог и блокировка внешних ресурсов в копии. Всё описанное относится к платформе 1С:Предприятие 8.3 и одинаково работает для БП, ЗУП, УТ и других конфигураций.

Подготовка: что сделать до подключения копии

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

  1. 📁 Определите формат копии. Каталог с 1Cv8.1CD, архив .zip с этим файлом внутри, файл выгрузки .dt, бэкап .bak (MS SQL) или дамп .backup/.dump (PostgreSQL) — от этого зависит способ.
  2. 🔢 Узнайте версию платформы, на которой сделана копия. Для файла .dt на новом месте нужна платформа с номером не ниже исходной. Номер виден в рабочей базе: Справка → О программе.
  3. 📍 Выберите новое место. Отдельный каталог для файловой базы, новое имя базы данных для SQL. Никогда не используйте путь или имя рабочей базы.
  4. 💾 Проверьте свободное место. Развёрнутая база из .dt обычно в несколько раз больше файла выгрузки. Бэкап SQL при восстановлении занимает примерно столько же, сколько исходная база с журналом транзакций.
  5. 🔑 Подготовьте логин и пароль пользователя с полными правами из той базы, из которой сделана копия. В копии действуют её пользователи, а не пользователи текущей базы.
  6. 🪪 Учтите лицензию. На другом компьютере копия запустится, только если там доступна лицензия 1С.

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

Какой способ подключения копии базы 1С подходит вам

Что у вас на рукахКак подключитьСколько времениРиски
Каталог с 1Cv8.1CD или архив с нимРаспаковать в новый каталог и добавить в список базМинутыПочти нет, если каталог новый
Файл .dtСоздать пустую базу, загрузить .dt в КонфигуратореОт минут до часов — зависит от размераЗагрузка в не ту базу стирает её данные
Бэкап .bak MS SQLRESTORE под новым именем, затем регистрация в кластере 1СЗависит от размера, обычно быстрее .dtПерезапись рабочей БД при неверном имени или файлах
Дамп PostgreSQLpg_restore в новую БД, регистрация в кластере 1СЗависит от размераТо же, плюс несовместимость сборок PostgreSQL

.dt — универсальный формат: его можно загрузить и в файловую, и в серверную базу . Бэкапы СУБД восстанавливаются только в ту же СУБД.

Как подключить копию базы через окно запуска и Конфигуратор

Копия файловой базы (файл 1Cv8.1CD)

  1. Создайте пустой каталог, например D:\1C_Copies\Buh_copy_0710.
  2. Скопируйте туда 1Cv8.1CD или распакуйте архив. Каталог журнала регистрации 1Cv8Log переносить не обязательно.
  3. Откройте окно запуска 1С и нажмите Добавить….
  4. Выберите Добавление в список существующей информационной базы, нажмите Далее.
  5. Введите понятное имя: «Бухгалтерия — КОПИЯ от 07.10». Слово «копия» в названии спасёт от ввода документов не в ту базу.
  6. Тип расположения — На данном компьютере или на компьютере в локальной сети, в поле каталога укажите папку из шага 1.
  7. Нажмите Далее, оставьте параметры запуска по умолчанию и нажмите Готово.

Копия появится в списке. Её можно сразу открывать в режиме 1С:Предприятие.

Копия в виде файла выгрузки .dt

Файл .dt нельзя «открыть» — его загружают в существующую базу, и он полностью заменяет её содержимое. Поэтому сначала создают пустую базу.

  1. В окне запуска нажмите Добавить… → Создание новой информационной базы.
  2. Выберите вариант создания базы без конфигурации — для разработки новой конфигурации или загрузки выгруженной ранее информационной базы.
  3. Дайте имя с пометкой «копия», укажите новый пустой каталог (или сервер — см. раздел про MS SQL) и нажмите Готово.
  4. Выделите новую базу и нажмите Конфигуратор. Пароль не спросят: в пустой базе пользователей нет.
  5. Откройте Администрирование → Загрузить информационную базу…, выберите файл .dt.
  6. Подтвердите предупреждение о замене данных. Дождитесь сообщения об успешной загрузке.
  7. Конфигуратор предложит перезапуститься — соглашайтесь. После перезапуска понадобится логин и пароль из исходной базы.

Перед загрузкой .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. Откройте консоль администрирования серверов 1С: Кластер → Информационные базы → Создать → Новая информационная база.
  2. Имя базы в кластере — например, buh_copy.
  3. Сервер баз данных, тип СУБД MSSQLServer, имя базы данных — buh_copy, как в RESTORE.
  4. Укажите пользователя СУБД с правами на новую базу.
  5. Снимите флажок «Создать базу данных в случае её отсутствия» — база уже есть.
  6. Поставьте флажок «Установить блокировку регламентных заданий». Копия не начнёт выполнять обмены, загрузку курсов и отправку почты.
  7. В окне запуска на клиенте нажмите Добавить… → Добавление в список существующей информационной базы, тип расположения На сервере 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 — не для работы».

Что проверить в данных

Проверка копии после подключения
Выполнено: 0 / 6

Сверять удобнее всего оборотно-сальдовой ведомостью за один и тот же период: в копии и в рабочей базе (или в выгрузке, сделанной до сбоя). Расхождение — повод искать, в какой момент снята копия.

Если копию восстанавливали после сбоя и есть сомнения в целостности, запустите в Конфигураторе Администрирование → Тестирование и исправление. Для этого нужен монопольный доступ: в копии никто, кроме вас, работать не должен.

Автоматическое подключение копии базы: 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С

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

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

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

Можно ли держать копию и рабочую базу на одном компьютере?
Да. Важно только, чтобы у них были разные каталоги (или разные имена БД на сервере) и разные названия в списке баз.
Нужна ли отдельная лицензия для копии базы?
Отдельно копию не лицензируют. Лицензия расходуется при запуске сеанса так же, как в рабочей базе, поэтому на компьютере с копией должна быть доступна лицензия 1С.
Как перенести копию с сервера в файловый вариант?
Выгрузите копию в .dt в Конфигураторе серверной базы, создайте пустую файловую базу и загрузите в неё этот файл. Бэкап SQL в файловую базу напрямую не загружается.
Что делать, если копия сразу начала обмен или отправила письма?
Заблокируйте регламентные задания в консоли кластера или в настройках базы, отключите обмены и проверьте, что ушло. Повторные документы в ЭДО отзовите или аннулируйте по согласованию с контрагентом.
Как удалить ненужную копию?
Удалите её из списка баз кнопкой «Удалить» в окне запуска — данные при этом останутся на диске. Затем удалите каталог копии или базу данных в СУБД и запись в консоли кластера.