Разворачиваем копию информационной базы 1С из .dt, папки или бэкапа SQL

· 10 мин

Содержание

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

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

Что приготовить перед развёртыванием копии

Сначала определите, из какого источника ставите копию. От этого зависит весь дальнейший порядок.

Что у вас естьКуда разворачиваетеСпособ
Файл .dtФайловая или серверная базаЗагрузка через Конфигуратор
Папка с 1Cv8.1CDФайловая базаКопирование папки + добавление в список
Бэкап .bak из SQL ServerСерверная база на SQL ServerВосстановление в SSMS + регистрация в кластере
Рабочая серверная базаСерверная базаВыгрузка в .dt или бэкап СУБД

Перед стартом проверьте пять вещей:

  • 💾 Место на диске. Под загрузку .dt закладывайте в 3–4 раза больше размера самого файла: выгрузка сжата, а база вместе с индексами занимает заметно больше.
  • 🔢 Версия платформы. Номер платформы, на которой загружаете, должен быть не ниже номера той, на которой делали выгрузку. Версию в Конфигураторе рабочей базы смотрят в Справка → О программе.
  • 🖥️ Разрядность клиента. Базы крупнее нескольких гигабайт загружайте 64-битным Конфигуратором. 32-битный может упасть на нехватке памяти посреди загрузки.
  • 🔑 Пароль администратора. Пользователи переезжают вместе с базой. Если вы не знаете логин и пароль пользователя с полными правами в исходной базе, в копию вы потом не войдёте.
  • 📂 Целостность файла. Сравните размер .dt на источнике и после копирования по сети. Обрезанный при передаче файл загрузится до середины и выдаст ошибку.

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

Установка копии файловой базы 1С

Способ 1. Копирование папки

Это самый быстрый вариант, если исходная база тоже файловая.

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

Способ 2. Загрузка файла .dt

Подходит, когда у вас только выгрузка или исходная база серверная, а копия нужна файловая.

  1. В окне запуска нажмите Добавить → Создание новой информационной базы.
  2. Выберите Создание информационной базы без конфигурации….
  3. Укажите имя и пустую папку на компьютере, тип расположения — на данном компьютере или в локальной сети.
  4. Откройте новую базу кнопкой Конфигуратор.
  5. Выполните Администрирование → Загрузить информационную базу… и выберите файл .dt.
  6. Подтвердите предупреждение о том, что текущие данные будут заменены.
  7. Дождитесь окончания загрузки. Для базы на 10–20 ГБ это может занять от получаса до нескольких часов, в зависимости от диска.
  8. Конфигуратор предложит перезапуститься — соглашайтесь.

Загрузку можно запустить и без интерфейса, из командной строки. Это удобно для регулярного обновления тестовой копии по расписанию:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\1C_Bases\Buh_Copy" /N"Администратор" /P"пароль" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log" /DisableStartupMessages

Номер платформы в пути замените на свой. Результат загрузки будет в файле лога, указанном в /Out.

Загрузка .dt полностью затирает данные базы, в которую грузите. Перед запуском дважды проверьте, что открыта именно новая пустая копия, а не рабочая база с похожим названием.

Развёртывание клиент-серверной копии на SQL Server

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

Вариант А. Новая база в кластере + загрузка .dt

  1. Откройте консоль администрирования серверов 1С:Предприятия.
  2. Раскройте Центральные серверы 1С:Предприятия → ваш сервер → Кластеры → кластер → Информационные базы.
  3. В контекстном меню выберите Создать → Информационная база.
  4. Заполните поля:
    • Имя — имя базы в кластере, например buh_copy;
    • Защищённое соединение — оставьте выключенным, если не настраивали;
    • Сервер баз данных — имя SQL Server, при именованном экземпляре SRV\INSTANCE;
    • Тип СУБД — MS SQL Server;
    • База данных — имя новой базы в SQL, удобно совпадает с именем в кластере;
    • Пользователь сервера БД и пароль — логин SQL с правом создавать базы;
    • Смещение дат — для MS SQL ставьте 2000;
    • флажок Создать базу данных в случае ее отсутствия — включите;
    • флажок Установить блокировку регламентных заданий — включите обязательно.
  5. Нажмите ОК. Кластер создаст пустую базу в SQL Server.
  6. На клиенте добавьте базу в список: Добавить → Добавление в список существующей информационной базы → тип На сервере 1С:Предприятия, кластер и имя buh_copy.
  7. Откройте её в Конфигураторе и загрузите .dt, как в файловом варианте.

То же самое из командной строки — ключ /S вместо /F:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S"srv1c\buh_copy" /N"Администратор" /P"пароль" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log"

Вариант Б. Восстановление бэкапа SQL и регистрация в кластере

  1. В SQL Server Management Studio восстановите бэкап рабочей базы под новым именем. Важно переименовать файлы данных и журнала, иначе SQL попытается перезаписать файлы рабочей базы:
RESTORE DATABASE [buh_copy]
FROM DISK = N'D:\Backup\buh_full.bak'
WITH
  MOVE N'buh'     TO N'E:\SQLData\buh_copy.mdf',
  MOVE N'buh_log' TO N'F:\SQLLog\buh_copy_log.ldf',
  RECOVERY, STATS = 10;

Логические имена файлов (buh, buh_log) у вас будут свои. Узнать их можно командой RESTORE FILELISTONLY FROM DISK = N'D:\Backup\buh_full.bak'.

  1. В консоли кластера создайте информационную базу, как в варианте А, но в поле База данных укажите buh_copy, а флажок Создать базу данных в случае ее отсутствия снимите. Блокировку регламентных заданий — включите.
  2. Добавьте базу в список на клиенте и откройте её.

Не регистрируйте восстановленную SQL-базу в том же кластере под именем рабочей и не указывайте в новой базе кластера имя рабочей базы SQL. Две записи кластера, смотрящие в одну базу данных, — прямой путь к испорченным данным.

Первый запуск: блокировки, пользователи и права

Регламентные задания и внешние ресурсы

При первом запуске копии в режиме 1С:Предприятие типовые конфигурации (БП 3.0, ЗУП 3.1, УТ 11 и другие на БСП) замечают, что база запущена по другому адресу. Появляется окно с вопросом: база перемещена или это её копия.

Выбирайте вариант, означающий копию. Тогда программа заблокирует работу с внешними ресурсами: обмены, отправку почты, синхронизацию с сайтами и сервисами ЭДО. Если выбрать «перемещена», копия продолжит ходить во внешний мир наравне с рабочей базой.

Дополнительно проверьте вручную:

  • 📧 Учётные записи почты — удалите или смените пароли, чтобы рассылки не уходили клиентам.
  • 🔄 Узлы обмена — отключите автоматическую синхронизацию с другими базами.
  • 📤 1С-Отчётность и ЭДО — в копии их не используйте: отправка из тестовой базы уйдёт в ФНС и контрагентам по-настоящему.
  • 🏷️ Заголовок программы — в БП 3.0 его меняют в Администрирование → Общие настройки. Напишите «КОПИЯ — НЕ РАБОЧАЯ», чтобы никто не перепутал окна.

Пользователи и доступ к данным

Список пользователей 1С переезжает вместе с базой без изменений: те же логины, пароли и роли. Если копия нужна разработчику или аудитору, заведите ему отдельного пользователя в Администрирование → Настройки пользователей и прав → Пользователи, а лишних отключите флажком «Вход в программу разрешён».

Для файловой базы есть ещё права Windows. У каждого, кто будет работать с копией, должны быть права на изменение папки базы: 1С пишет в неё служебные файлы при каждом входе. Без этого вход завершится ошибкой доступа к файлу.

Для серверной базы на стороне SQL нужен логин с ролью db_owner на базе копии. Если базу создаёт кластер, логину также нужна серверная роль dbcreator. Давать копии логин sa — плохая привычка: при ошибке в настройках он позволяет кластеру дотянуться до любой базы на этом SQL Server.

Перед тем как отдать копию пользователям
Выполнено: 0 / 6

Когда копия не встаёт: ошибки и что с ними делать

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

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

Как ускорить базу после восстановления

Свежая копия часто работает заметно медленнее рабочей, хотя данные те же. Причины понятны: остыли кэши, статистика SQL устарела, индексы фрагментированы.

Серверная копия на SQL Server

  1. Обновите статистику по всей базе:
USE [buh_copy];
EXEC sp_updatestats;
  1. Для тестовой копии переведите модель восстановления в простую. Журнал транзакций перестанет расти на десятки гигабайт:
ALTER DATABASE [buh_copy] SET RECOVERY SIMPLE;
  1. Если копия будет жить долго, перестройте индексы — в SSMS это делается планом обслуживания с задачей перестроения индексов.

После RESTORE из бэкапа рабочей базы журнал транзакций может оказаться огромным. При простой модели восстановления его можно сжать через Задачи → Сжать → Файлы в SSMS для файла журнала.

Файловая копия

Запустите в Конфигураторе Администрирование → Тестирование и исправление… с флажками «Реиндексация таблиц информационной базы» и «Сжатие таблиц информационной базы». Режим требует монопольного доступа, так что выполняйте его до того, как пускать пользователей.

Для любой копии

  • 🔍 Полнотекстовый поиск. Если индекс не переехал, обновите его: в БП 3.0 это Администрирование → Общие настройки → Полнотекстовый поиск.
  • 🧮 Итоги регистров. На больших базах в копии стоит пересчитать итоги через Администрирование → Обслуживание, если отчёты строятся медленно.
  • 🚀 Первый запуск. Первый вход после загрузки всегда долгий: платформа строит кэш конфигурации на клиенте. Второй вход проходит обычно.
Что тормозитГде лечитьРежим базы
Медленные запросы, отчётыsp_updatestats, перестроение индексовСерверная
Растёт журнал SQLПростая модель восстановленияСерверная
Медленно всё и сразуТестирование и исправление: реиндексацияФайловая
Поиск не находит документыОбновление полнотекстового индексаЛюбая

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

Можно ли из серверной базы сделать файловую копию?
Да. Выгрузите серверную базу в .dt и загрузите файл в новую файловую базу. Обратный путь работает так же.
Нужна ли отдельная лицензия на копию базы?
Лицензии 1С выдаются на сеансы, а не на базы. Копия на том же сервере использует те же клиентские лицензии, но каждый открытый в ней сеанс занимает одну.
Как часто обновлять тестовую копию?
Под задачу. Для проверки обновлений конфигурации — непосредственно перед обновлением рабочей базы. Для разработки обычно хватает обновления раз в неделю или месяц через пакетный /RestoreIB по расписанию.
Можно ли развернуть бэкап SQL Server на PostgreSQL?
Нет, бэкапы СУБД между собой несовместимы. Переносить базу между MS SQL и PostgreSQL нужно через выгрузку .dt.
Почему копия весит больше рабочей базы или меньше?
После загрузки .dt таблицы и индексы строятся заново, без фрагментации и пустот, поэтому файловая копия часто меньше оригинала. Серверная копия из бэкапа SQL совпадает по размеру с исходной.