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

· 10 мин

Содержание

Скопировать базу 1С с сервера проще всего через конфигуратор: Администрирование → Выгрузить информационную базу сохраняет всю базу в один файл .dt. Способ одинаково работает для файловой и клиент-серверной базы и не требует доступа к СУБД. Если база большая (десятки гигабайт) и стоит на SQL Server или PostgreSQL, быстрее снять копию средствами самой СУБД. Файловую базу можно скопировать и вручную — это один файл 1Cv8.1CD.

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

Какой способ копирования базы 1С выбрать

СпособДля какой базыКогда выбиратьОграничения
Выгрузка .dt в конфигуратореФайловая и сервернаяТестовая копия, перенос на другой сервер или СУБДНа больших базах выгрузка идёт часами
Бэкап SQL Server / PostgreSQLТолько сервернаяЕжедневные копии баз от 10–20 ГБНужен доступ к СУБД; копия разворачивается только на той же СУБД
Копирование 1Cv8.1CDТолько файловаяБыстрая копия небольшой базыВсе пользователи должны выйти из базы
Утилиты и ibcmdОбеАвтоматизация без ручных скриптовСторонние программы нужно настраивать и проверять
Скачивание из облакаБаза в арендеХотите локальную копию облачной базыФормат файла зависит от провайдера

Файл .dt не зависит от СУБД. Базу с SQL Server можно выгрузить в .dt и загрузить в PostgreSQL или в файловый вариант. Бэкап СУБД так не переносится.

Перед любым способом узнайте, где лежит база. Откройте окно запуска 1С и выделите базу: внизу будет строка подключения. File="D:\Bases\Buh" — файловая база в этой папке. Srvr="srv1c";Ref="buh" — серверная база buh на сервере srv1c.

Как скопировать базу 1С через конфигуратор в файл .dt

Выгрузка доступна пользователю с полными правами (роль администратора). Разделять на «файловую» и «серверную» инструкцию не нужно: шаги одинаковые.

  1. Запустите 1С, выделите базу и нажмите Конфигуратор.
  2. Войдите под пользователем с административными правами.
  3. Откройте меню Администрирование → Выгрузить информационную базу.
  4. Укажите папку и имя файла, например D:\Backup1C\buh_2026-10-07.dt.
  5. Дождитесь сообщения о завершении выгрузки.

Выгрузку лучше запускать, когда в базе не идёт активная работа: вечером или в обед. Пока она идёт, конфигуратор занят и закрывать его нельзя.

Объём .dt обычно в несколько раз меньше самой базы: данные внутри сжаты. База в 30 ГБ часто даёт файл на 3–6 ГБ. Точное соотношение зависит от того, сколько в базе прикреплённых файлов и картинок.

Как развернуть копию из .dt

Копию разворачивают в новую пустую базу, а не поверх рабочей.

  1. В окне запуска нажмите Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации.
  2. Для серверной копии укажите тот же сервер и новое имя, например buh_test.
  3. Откройте новую базу в конфигураторе: Администрирование → Загрузить информационную базу, выберите файл .dt.

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

Загрузить .dt можно в платформу с номером версии не ниже той, на которой файл выгружали.

Копия серверной базы 1С средствами SQL Server и PostgreSQL

Клиент-серверная база 1С — это обычная база данных в СУБД. Сервер 1С хранит только её регистрацию. Значит, копию можно снять штатным бэкапом СУБД, не открывая 1С вообще.

SQL Server

Для разовой копии используйте параметр COPY_ONLY. Без него внеплановый полный бэкап разорвёт цепочку разностных копий, которые делает администратор по плану обслуживания.

BACKUP DATABASE [buh]
TO DISK = N'D:\Backup1C\buh_copy.bak'
WITH COPY_ONLY, CHECKSUM, STATS = 10;

В редакциях Standard и Enterprise добавьте COMPRESSION — файл выйдет в 3–5 раз меньше. В Express сжатие бэкапа недоступно.

Развернуть копию под новым именем:

RESTORE FILELISTONLY FROM DISK = N'D:\Backup1C\buh_copy.bak';

RESTORE DATABASE [buh_test]
FROM DISK = N'D:\Backup1C\buh_copy.bak'
WITH MOVE N'buh' TO N'E:\SQLData\buh_test.mdf',
     MOVE N'buh_log' TO N'E:\SQLData\buh_test_log.ldf',
     STATS = 10;

Логические имена файлов (buh, buh_log в примере) у каждой базы свои. Их показывает первая команда — RESTORE FILELISTONLY.

PostgreSQL

Для PostgreSQL копию снимают утилитой pg_dump в сжатом формате, а восстанавливают pg_restore:

pg_dump -U postgres -h localhost -Fc -f D:\Backup1C\buh.backup buh
createdb -U postgres -h localhost -T template0 buh_test
pg_restore -U postgres -h localhost -d buh_test D:\Backup1C\buh.backup

Используйте утилиты из той сборки PostgreSQL, на которой работает 1С, а не из другой установленной версии.

Регистрация копии в кластере 1С

Восстановленная база СУБД пока не видна в 1С. Её нужно зарегистрировать:

  1. Откройте консоль администрирования серверов 1С, раскройте кластер и узел Информационные базы.
  2. Через контекстное меню выберите Создать → Информационная база.
  3. Укажите имя (buh_test), тип СУБД, сервер и имя восстановленной базы данных.
  4. Флажок Создать базу данных в случае ее отсутствия не включайте — база уже есть.
  5. Включите Блокировка регламентных заданий включена.

Пятый шаг здесь главный. Без него копия начнёт выполнять регламентные задания рабочей базы: обмены с другими базами, загрузку банковских выписок, отправку почты и ЭДО.

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

Ручное копирование файловой базы через проводник

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

  1. Попросите всех пользователей выйти из базы.
  2. Убедитесь, что сеансов нет: при открытой базе рядом с 1Cv8.1CD лежит файл 1Cv8tmp.1CD или файлы блокировки.
  3. Скопируйте 1Cv8.1CD в другую папку.
  4. Чтобы открыть копию, добавьте в список баз новую запись Добавить → Добавление в список существующей информационной базы и укажите папку с копией.

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

Папку 1Cv8FTxt (индекс полнотекстового поиска) и файлы .cfl копировать не обязательно. Платформа построит их заново.

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

Утилиты и облачные сервисы для копирования базы 1С

ibcmd

В платформу 8.3 входит утилита ibcmd (появилась в 8.3.14). Она работает с базой без запуска конфигуратора и без графического интерфейса. Это удобно для серверов, где нет рабочего стола.

Выгрузка файловой базы в .dt выглядит так:

ibcmd infobase dump --db-path=D:\Bases\Buh D:\Backup1C\buh.dt

Для серверной базы ibcmd подключается напрямую к СУБД, поэтому ей нужны параметры СУБД, имя и пароль пользователя базы данных. Точный набор ключей для вашей версии смотрите в справке ibcmd help infobase.

Сторонние программы

Есть платные и бесплатные программы резервного копирования, которые умеют запускать выгрузку 1С, копировать файловые базы, хранить архивы на внешнем диске или в облаке. По сути они делают то же, что скрипт из следующего раздела, но с интерфейсом и уведомлениями.

Если ставите такую программу, проверьте три вещи:

  • 🔐 где хранится пароль администратора 1С и кто его видит;
  • 📩 приходит ли уведомление, когда копия не создалась;
  • 🗑️ удаляются ли старые копии, иначе диск закончится.

База в облаке

Если база работает в аренде (1С:Фреш или у партнёра), копию скачивают через личный кабинет сервиса или через команду выгрузки данных в самой программе. Формат зависит от сервиса. Одни провайдеры отдают обычный .dt. Фреш выгружает архив с данными, который загружают в локальную базу той же конфигурации и того же релиза.

Перед скачиванием уточните у провайдера, какой релиз конфигурации у облачной базы. Без совпадения релиза загрузка данных не пройдёт.

Автоматическое копирование базы 1С по расписанию

Ручная выгрузка забывается. Надёжнее один раз написать скрипт и поставить его в планировщик Windows.

Скрипт ниже запускает конфигуратор в пакетном режиме, выгружает базу в файл с датой в имени и пишет журнал.

# D:\Scripts\backup1c.ps1
$exe   = "C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
$dir   = "D:\Backup1C"
$stamp = Get-Date -Format "yyyy-MM-dd_HHmm"
$dt    = "$dir\buh_$stamp.dt"
$log   = "$dir\buh_$stamp.log"

$args1c = "DESIGNER /S`"srv1c\buh`" /N`"Backup`" /P`"пароль`" " +
          "/DumpIB `"$dt`" /Out `"$log`" /DisableStartupDialogs"

$p = Start-Process -FilePath $exe -ArgumentList $args1c -Wait -PassThru

if ($p.ExitCode -ne 0 -or -not (Test-Path $dt)) {
    Write-Output "Ошибка выгрузки, код $($p.ExitCode). Смотрите $log"
    exit 1
}

Что поменять под себя:

  • путь к 1cv8.exe — номер платформы в папке bin у вас свой;
  • для файловой базы вместо /S"srv1c\buh" укажите /F"D:\Bases\Buh";
  • отдельного пользователя Backup с административными правами заведите в 1С заранее.

Start-Process -Wait нужен обязательно. Без него PowerShell не дождётся конфигуратора, и проверка файла сработает раньше, чем выгрузка закончится.

Поставить скрипт на каждый день в 23:30:

schtasks /Create /TN "1C backup buh" /SC DAILY /ST 23:30 /RU SYSTEM ^
  /TR "powershell -NoProfile -ExecutionPolicy Bypass -File D:\Scripts\backup1c.ps1"

Для SQL Server то же самое настраивают в SQL Server Management Studio: Управление → Планы обслуживания с задачей резервного копирования.

Удаление копий старше 30 дней

Ежедневные копии базы на 5 ГБ за месяц займут 150 ГБ. Старые файлы удаляйте тем же скриптом. Добавьте в конец backup1c.ps1:

Get-ChildItem -Path $dir -Include *.dt, *.log -Recurse |
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
    Remove-Item

Если удобнее командная строка, то же делает forfiles:

forfiles /p "D:\Backup1C" /m *.dt /d -30 /c "cmd /c del @path"

Удалять старые копии стоит только после проверки, что свежая создалась. В скрипте выше при ошибке выгрузки exit 1 срабатывает раньше удаления — так вы не останетесь без единой копии.

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

Как проверить, что копия базы 1С рабочая

Файл на диске ещё не значит, что из него можно восстановиться. Проверка занимает полчаса и делается хотя бы раз в месяц.

Проверка копии базы
Выполнено: 0 / 6

Для бэкапа SQL Server есть быстрая проверка без восстановления:

RESTORE VERIFYONLY FROM DISK = N'D:\Backup1C\buh_copy.bak' WITH CHECKSUM;

Она подтверждает, что файл читается и контрольные суммы сходятся. Но логические ошибки внутри данных 1С так не найти. Для них в тестовой копии запускают Администрирование → Тестирование и исправление в конфигураторе. Этому режиму нужен монопольный доступ — в тестовой базе это не проблема.

Ошибки, из-за которых копия базы оказывается бесполезной

  • ❌ Загрузили .dt в рабочую базу. Самая дорогая ошибка: данные рабочей базы заменяются копией. Перед загрузкой посмотрите в заголовке конфигуратора, какая база открыта.
  • ❌ Восстановили бэкап SQL под старым именем. RESTORE DATABASE [buh] без нового имени перезапишет рабочую базу. Всегда указывайте новое имя.
  • ❌ Копия отправила обмены. Тестовая база без блокировки регламентных заданий выгрузила документы в базу филиала или на сайт. Последствия разбирать дольше, чем делать саму копию.
  • ❌ Платформа ниже нужной. Файл .dt с платформы 8.3.24 не загрузится в 8.3.20. Обновите платформу на машине, где разворачиваете копию.
  • ❌ Бэкап с новой версии SQL Server. Файл .bak из SQL Server 2022 не восстановится на SQL Server 2017. Для переноса между версиями используйте .dt.
  • ❌ Копирование 1Cv8.1CD по живой базе. Файл копируется без ошибок, но при открытии платформа сообщает о повреждении.
Можно ли скопировать базу 1С, если пользователи работают?
Выгрузку в .dt и бэкап СУБД можно запустить при работающих пользователях, но лучше делать это в тихое время. Файл 1Cv8.1CD копировать при открытых сеансах нельзя.
Нужна ли отдельная лицензия для копии базы?
Отдельная лицензия на базу не нужна. Лицензии расходуются на сеансы пользователей: если с копией работают одновременно с рабочей базой, учитывайте эти сеансы.
Сколько времени идёт выгрузка в .dt?
База на 5–10 ГБ выгружается за 10–30 минут, база на 100 ГБ — несколько часов. Скорость зависит в первую очередь от диска и СУБД.
Можно ли открыть файл .dt без загрузки в базу?
Нет. Файл .dt служит только для загрузки через конфигуратор или ibcmd в новую базу. Посмотреть документы внутри файла без загрузки не получится.
Чем копия .dt отличается от копии конфигурации .cf?
Файл .cf содержит только конфигурацию — программу без данных. Файл .dt содержит конфигурацию и все данные базы. Для резервной копии нужен .dt.