Копирование информационной базы 1С 8.3: от папки до серверной СУБД
Содержание
Самый частый промах при копировании — скопировать папку базы, пока в ней ещё кто-то работает. Файл 1Cv8.1CD в этот момент открыт и меняется, и копия приедет битой: откроется с ошибкой или потеряет часть данных. Поэтому первое правило — все выходят из базы, и только потом копируем.
Способ копирования зависит от того, какая у вас база. Файловую можно просто скопировать как папку. Серверную (клиент-серверную) так скопировать нельзя — она лежит не в папке, а в СУБД, и для копии нужен либо механизм 1С (выгрузка *.dt), либо средства самой СУБД (бэкап). Ниже — все четыре рабочих варианта: копирование папки, выгрузка и загрузка через конфигуратор, копия серверной базы и перенос готовой копии на другой компьютер.
Как понять, файловая у вас база или серверная
От типа базы зависит выбор способа, поэтому определите его до начала.
Откройте окно запуска 1С (ярлык «1С:Предприятие»). Выделите нужную базу в списке — внизу окна появится строка с её расположением:
- строка вида
File="C:\Bases\Buh"— файловая база, данные в папкеC:\Bases\Buh; - строка вида
Srvr="server-1c";Ref="buh"— серверная база, данные в СУБД на сервереserver-1c, имя базы в кластере —buh.
Эта же строка видна по кнопке Изменить в окне запуска — поле «Строка соединения».
*.dt через конфигуратор и загрузите на новом месте (способ 2). Универсально, но медленно на больших базах.Что сделать перед копированием
Подготовка одинакова для любого способа и занимает пару минут.
Пока хоть один сеанс открыт, файл базы заблокирован. Копирование папки «на живую» даёт повреждённую копию. Как выгнать всех из базы — в разделе про типичные ошибки ниже.
Короткое сравнение способов, чтобы выбрать свой:
| Способ | Для каких баз | Скорость | Что нужно |
|---|---|---|---|
| Копирование папки | только файловая | очень быстро | закрыть базу у всех |
Выгрузка/загрузка *.dt | файловая и серверная | медленно на больших | монопольный доступ |
| Бэкап средствами СУБД | только серверная | быстро даже на больших | доступ к SQL-серверу |
| Перенос + переименование | любая | зависит от способа копии | путь/имя на новом месте |
Способ 1. Скопировать папку файловой базы
Файловая база — это обычная папка, внутри которой лежит файл данных 1Cv8.1CD и служебные файлы (1Cv8.lgf — журнал регистрации, папка 1Cv8Log и т. п.). Скопировать базу
= скопировать эту папку.
- Убедитесь, что база закрыта у всех пользователей.
- Откройте расположение базы (путь вы посмотрели выше, строка
File=...). - Скопируйте всю папку целиком в новое место — например,
C:\Bases\Buh→C:\Bases\Buh_copy. Проводником, Total Commander, командойxcopy— чем удобнее. - Откройте окно запуска 1С, нажмите
Добавить→ «Добавление в список существующей информационной базы». - Задайте понятное имя копии (например, «Бухгалтерия — копия от 07.10») и укажите путь к новой папке
C:\Bases\Buh_copy.
Копия готова и полностью независима от оригинала: меняя данные в копии, вы не трогаете рабочую базу.
Для быстрой «точки отката» перед обновлением или рискованной операцией этот способ — самый удобный: минута на копирование папки, и есть куда вернуться.
Не копируйте только файл 1Cv8.1CD без остальной папки — без журнала регистрации и служебных файлов часть функций копии может работать некорректно. Копируйте папку целиком.
Способ 2. Выгрузить и загрузить базу через конфигуратор (.dt)
Выгрузка в файл *.dt — это «слепок» всей базы в одном файле. Способ работает и для файловых, и для серверных баз, поэтому он универсальный: им переносят базу на другой компьютер, из файлового варианта в серверный и обратно.
Выгрузка (создание .dt):
- Откройте базу в режиме
Конфигуратор. - Меню
Администрирование→Выгрузить информационную базу…. - Укажите имя и папку для файла, например
Buh_2026-10-07.dt. НажмитеСохранить.
Дождитесь окончания — на больших базах это десятки минут.
Загрузка (восстановление из .dt):
- Создайте, куда загружать. В окне запуска
Добавить→ «Создание новой информационной базы» → «Создание информационной базы без конфигурации…». Назовите её и укажите папку. - Откройте новую базу в
Конфигураторе. - Меню
Администрирование→Загрузить информационную базу…, выберите ваш*.dt. - Платформа предупредит, что все данные в базе-приёмнике будут заменены. Подтвердите.
И выгрузка, и загрузка *.dt требуют монопольного доступа: в базе не должно быть активных сеансов. Если кто-то работает, платформа покажет список сеансов и не даст продолжить.
Минус способа — скорость. Файл *.dt пакует данные, и на базе в несколько десятков гигабайт выгрузка и особенно загрузка идут долго. Для крупных серверных баз способ 3 обычно быстрее.
Способ 3. Скопировать серверную базу через СУБД
Серверную базу нельзя скопировать как папку — её данные лежат в базе данных MS SQL Server или PostgreSQL. Вариантов два.
Вариант А — через *.dt (способ 2 выше). Работает всегда, не требует прав на SQL-сервере, но медленный на больших объёмах.
Вариант Б — бэкап средствами СУБД. Быстрее для больших баз, но нужен доступ к SQL-серверу. Общая логика одинакова для MS SQL и PostgreSQL:
- Средствами СУБД сделайте резервную копию базы
данных (в MS SQL —
BACKUP DATABASE, в PostgreSQL —pg_dump). Бэкап можно снимать без остановки работы пользователей. - Восстановите эту копию в новую базу данных с другим именем на том же или другом SQL-сервере (в MS SQL —
RESTORE DATABASEс новым именем, в PostgreSQL —pg_restoreв созданную заранее БД). - Зарегистрируйте восстановленную базу как новую информационную базу кластера 1С. В консоли администрирования серверов: правой кнопкой на «Информационные базы» →
Создать→Информационная база. Укажите имя новой базы, SQL-сервер и имя восстановленной базы данных.
Для MS SQL Server шаги 1–2 на языке запросов выглядят так (buh — рабочая база данных, buh_copy — копия):
-- 1. снять бэкап рабочей базы
BACKUP DATABASE buh TO DISK = N'D:\Backup\buh.bak' WITH INIT;
-- 2. восстановить его в новую базу buh_copy с переназначением файлов
RESTORE DATABASE buh_copy FROM DISK = N'D:\Backup\buh.bak'
WITH MOVE 'buh' TO N'D:\MSSQL\DATA\buh_copy.mdf',
MOVE 'buh_log' TO N'D:\MSSQL\DATA\buh_copy_log.ldf';
Логические имена файлов (buh, buh_log) и пути подставьте свои — посмотреть их можно командой RESTORE FILELISTONLY FROM DISK = N'D:\Backup\buh.bak'.
Для PostgreSQL та же логика через pg_dump и pg_restore:
# 1. выгрузить рабочую базу в архив
pg_dump -U postgres -F c -f buh.dump buh
# 2. создать пустую базу-копию и восстановить в неё
createdb -U postgres buh_copy
pg_restore -U postgres -d buh_copy buh.dump
На шаге 3 снимите флажок «Создать базу данных в случае её отсутствия». Иначе кластер создаст поверх восстановленных данных пустую базу и копия окажется чистой. Флажок нужен только при создании базы с нуля.
Если точных пунктов консоли администрирования под рукой нет, их названия стабильны между релизами платформы: регистрация базы всегда идёт через контекстное меню узла «Информационные базы» в кластере.
Размер базы данных в СУБД и имя 1С-базы в кластере — разные вещи. В кластере можно дать копии любое имя, оно не обязано совпадать с именем базы данных на SQL-сервере.
Способ 4. Перенести копию на другой компьютер и переименовать
Копию часто делают, чтобы развернуть базу на другом рабочем месте или дать ей осмысленное имя в списке.
Перенос файловой базы на другой компьютер:
- Либо скопируйте папку базы (способ 1) на флешку/в сеть и разверните на новом ПК, либо выгрузите
*.dt(способ 2) и загрузите на новом ПК. - На новом компьютере добавьте базу в окно запуска:
Добавить→ «Добавление в список существующей…» и укажите путь к перенесённой папке.
Путь к базе на новом компьютере может отличаться — это нормально, 1С хранит путь в списке баз, а не внутри самого файла данных.
Переименование базы в списке:
Имя базы в окне запуска — это просто подпись в списке, а не имя файла. Чтобы его поменять: выделите базу → Изменить → поле «Наименование информационной базы» → новое имя → Готово. На данные это никак не влияет.
Переименование серверной базы: имя базы в кластере меняется в консоли администрирования в свойствах информационной базы. Переименование не затрагивает имя базы данных в самой СУБД.
Сам файл данных у файловой базы всегда называется 1Cv8.1CD — его переименовывать не нужно и не нужно бояться, что у копии «то же имя файла». Базы различаются папками, а не именем файла внутри.
Типичные ошибки при копировании и как их обойти
*.dt несёт в себе и конфигурацию, и данные. На приёмнике нужна платформа с номером не ниже, чем на источнике. Установите подходящую версию платформы и откройте базу — при расхождении релиза конфигурации 1С сама предложит нужные действия.Добавить.Частые вопросы
Чем копирование базы отличается от резервной копии?
*.dt или бэкап СУБД на случай сбоя. Для бэкапа удобнее *.dt или средства СУБД, для быстрого дубля файловой базы — копирование папки.Можно ли скопировать базу, не выгоняя пользователей?
*.dt — нет, нужен монопольный доступ или хотя бы закрытая база. Исключение — бэкап серверной базы средствами СУБД (способ 3): он снимается без остановки работы, потому что этим занимается сам SQL-сервер, а не платформа 1С.Копия будет связана с оригиналом? Изменения перенесутся?
Как перенести файловую базу в серверную (и наоборот)?
*.dt (способ 2): выгрузите из файловой базы и загрузите в заранее созданную серверную базу кластера — или в обратную сторону. Это штатный способ смены варианта хранения.Копия занимает столько же места, сколько оригинал?
*.dt заметно меньше, так как данные в нём сжаты, но при загрузке база снова развернётся до исходного размера.