Резервная копия 1С без сюрпризов: файлы, .dt, SQL и расписание
Содержание
Правильная копия базы 1С — это копия, из которой вы реально можете восстановиться. Для файловой базы самый надёжный ручной способ — выгрузка в файл .dt через Конфигуратор → Администрирование → Выгрузить информационную базу или копирование всей папки базы, когда в ней никто не работает
. Для клиент-серверной базы основной инструмент — штатный бэкап СУБД: BACKUP DATABASE в MS SQL или pg_dump в PostgreSQL.
Делать копию нужно по расписанию, а не «перед обновлением, если вспомним». Хранить — минимум в двух местах, одно из которых не на том же сервере. И раз в месяц проверять, что копия разворачивается в рабочую базу. Без последнего пункта все остальные мало что гарантируют.
Какой способ копирования подходит вашей базе
Способ зависит от двух вещей: где лежит база (файл на диске или СУБД) и сколько времени у вас на копирование. Сравнение основных вариантов:
| Способ | Для каких баз | Плюсы | Ограничения |
|---|---|---|---|
Копия папки с 1Cv8.1CD | Файловые | Быстро, полный слепок | Только когда все вышли из базы |
Выгрузка .dt | Файловые и серверные | Переносимо между режимами и СУБД | Долго на больших базах |
| Встроенное копирование в конфигурации | Файловые (БП 3.0, ЗУП 3.1 и др.) | Расписание без скриптов | Завершает сеансы пользователей |
| Бэкап MS SQL / PostgreSQL | Клиент-серверные | Быстро, можно без остановки работы | Нужен доступ к СУБД |
Копирование файловой базы целиком
Файловая база — это каталог, внутри которого лежит главный файл 1Cv8.1CD. В нём хранятся и конфигурация, и все данные. Рядом обычно лежит папка 1Cv8Log с журналом регистрации.
Узнать каталог просто: в окне запуска 1С выделите базу — путь отображается внизу списка. Или откройте Изменить и посмотрите строку с каталогом информационной базы.
Порядок действий
- Попросите всех выйти из базы. Проверить можно в Конфигураторе:
Администрирование → Активные пользователи. - Закройте у себя и 1С:Предприятие, и Конфигуратор этой базы.
- Скопируйте весь каталог базы, а не только
1Cv8.1CD. Так сохранится и журнал регистрации. - Упакуйте копию в архив и подпишите датой:
Buh_2026-10-07.zip. Файл1Cv8.1CDсжимается хорошо, часто в несколько раз.
Не копируйте 1Cv8.1CD, пока в базе кто-то работает. Файл в этот момент меняется, и копия может оказаться несогласованной: одна часть записана до изменений, другая — после. Такая база иногда открывается, но потом выдаёт ошибки при проведении или тестировании.
Плюс способа — скорость и точный слепок. Восстановление ещё проще: вернули папку на место, и база работает в том же состоянии, что и в момент копирования.
Выгрузка базы в файл .dt и встроенное копирование
Выгрузка через Конфигуратор
Файл .dt — это выгрузка конфигурации и данных в собственном формате платформы. Он подходит для файловых и серверных баз и позволяет перенести базу из одного режима в другой.
- Запустите базу в режиме
Конфигураторпод пользователем с административными правами. - Откройте
Администрирование → Выгрузить информационную базу. - Укажите каталог и имя файла, например
D:\Backup\Buh_2026-10-07.dt. - Дождитесь сообщения о завершении. На базе в 10 ГБ это может занять от нескольких минут до получаса — зависит от диска и процессора.
Для выгрузки монопольный режим не нужен. Но если в это время пользователи проводят документы, копия зафиксирует базу «на бегу». Для предсказуемого результата делайте выгрузку, когда работа остановлена.
Выгрузка .dt не содержит журнал регистрации: он лежит отдельно. Если журнал нужен для расследований, копируйте его каталог отдельно.
Не путайте .dt и .cf
Команда Конфигурация → Сохранить конфигурацию в файл создаёт файл .cf. В нём только конфигурация — справочники, документы и проводки туда не попадают. Как резервная копия данных .cf бесполезен.
Встроенное копирование в типовых конфигурациях
В БП 3.0, ЗУП 3.1 и других конфигурациях на современной БСП для файловых баз есть собственный механизм: Администрирование → Обслуживание → Резервное копирование и восстановление.
Там настраивается:
- 📅 расписание или копирование при завершении работы;
- 📁 каталог, куда складываются архивы;
- 🗑️ сколько последних копий хранить.
Перед копированием механизм завершает сеансы пользователей. Поэтому время по расписанию ставьте на нерабочие часы, иначе бухгалтера выкинет из базы посреди проведения документа. Для клиент-серверных баз этот механизм не работает: там копии делает СУБД.
Бэкап серверной базы средствами СУБД
В клиент-серверном варианте данные 1С лежат в обычной базе данных MS SQL Server или PostgreSQL. Её и нужно копировать штатными средствами СУБД — это быстрее выгрузки .dt в разы и не требует выгонять пользователей.
MS SQL Server
Ручная копия в SQL Server Management Studio: правой кнопкой по базе → Tasks → Back Up. То же самое запросом:
BACKUP DATABASE [Buh]
TO DISK = N'E:\Backup\Buh_full.bak'
WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;
COMPRESSIONуменьшает файл. Сжатие бэкапов доступно не во всех редакциях: в Express его нет, там уберите параметр.CHECKSUMпроверяет страницы при записи и прерывает бэкап, если найдена порча.INITперезаписывает файл. Для ежедневных копий давайте каждому файлу своё имя с датой.
Модель восстановления важна. При Simple вы восстанавливаетесь только на момент последнего полного бэкапа. При Full можно делать копии журнала транзакций каждые 15–60 минут и восстанавливаться на любую минуту. Но при Full журнал нужно регулярно бэкапить, иначе он разрастётся и займёт весь диск.
BACKUP LOG [Buh]
TO DISK = N'E:\Backup\Buh_log_1200.trn'
WITH CHECKSUM;
PostgreSQL
Для PostgreSQL используйте pg_dump в формате custom — он сжат и восстанавливается через pg_restore:
"C:\Program Files\PostgreSQL\15\bin\pg_dump.exe" -U postgres -h localhost -F c -f "E:\Backup\buh.backup" buh
Путь к pg_dump.exe зависит от установленной версии PostgreSQL — подставьте свой каталог. Пароль для запуска по расписанию храните в файле pgpass.conf профиля пользователя, от имени которого идёт задание, а не в тексте скрипта.
Автоматическое копирование базы 1С по расписанию
Ручная копия делается до первого забытого дня. Автоматизация решает это: скрипт плюс Планировщик заданий Windows.
Скрипт выгрузки .dt на PowerShell
Скрипт выгружает файловую базу
в .dt с датой в имени и пишет лог. Для серверной базы замените /F"путь" на /S"сервер\имя_базы".
$exe = "C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe" # ваша версия платформы
$base = "D:\1C\Buh"
$dir = "E:\Backup\Buh"
$stamp = Get-Date -Format "yyyy-MM-dd_HHmm"
$dt = "$dir\Buh_$stamp.dt"
$log = "$dir\Buh_$stamp.log"
$arguments = "DESIGNER /F`"$base`" /N`"Backup`" /P`"пароль`" /DumpIB `"$dt`" /Out `"$log`" /DisableStartupDialogs"
Start-Process -FilePath $exe -ArgumentList $arguments -Wait -NoNewWindow
# Удаляем выгрузки старше 14 дней
Get-ChildItem $dir -Filter "Buh_*.dt" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-14) } |
Remove-Item
Что важно в скрипте:
- 👤 Заведите в базе отдельного пользователя
Backupс правами администратора. Так в журнале регистрации видно, кто делал выгрузку. - 🔑 Пароль в скрипте лежит открытым текстом. Ограничьте доступ к файлу скрипта только администраторам.
- 📄 После выполнения откройте лог: при успехе в нём есть сообщение о завершении выгрузки, при ошибке — её текст.
- 🔢 Номер версии в пути к
1cv8.exeпосле обновления платформы меняется. Забытый путь — частая причина, почему скрипт «молча» перестал работать.
Настройка Планировщика заданий
- Откройте
taskschd.msc→Создать задачу. - На вкладке «Общие» выберите учётную запись с доступом к каталогу базы и папке копий. Отметьте «Выполнять вне зависимости от регистрации пользователя».
- На вкладке «Триггеры» — ежедневно, например в 23:00.
- На вкладке «Действия» — программа
powershell.exe, аргументы:-ExecutionPolicy Bypass -File "C:\Scripts\backup_buh.ps1". - Запустите задачу вручную и убедитесь, что в папке появился
.dtи лог.
Для MS SQL полной версии расписание удобнее настроить через Maintenance Plans и SQL Server Agent. В Express агента нет — там бэкап запускают через sqlcmd из того же Планировщика Windows.
Сколько копий хранить и где
Одна копия, перезаписываемая каждую ночь, — ловушка. Ошибку часто замечают через неделю, а к этому моменту копия уже содержит испорченные данные.
Рабочая схема ротации для небольшой организации:
| Копии | Сколько держать | Пример |
|---|---|---|
| Ежедневные | 7–14 дней | Каждую ночь в 23:00 |
| Еженедельные | 4–5 недель | Копия за пятницу |
| Ежемесячные | 12 месяцев | Копия на 1-е число |
| Перед закрытием года и обновлением | Бессрочно | Отдельная папка с пометкой |
Где хранить:
- 💾 первая копия — на другом физическом диске сервера, не там, где база;
- 🌐 вторая — вне сервера: NAS, другой компьютер, облачное хранилище;
- 🔒 хотя бы одна копия должна быть недоступна для записи с сервера 1С. Шифровальщик, попавший на сервер, зашифрует и базу, и всё, что лежит в подключённых сетевых папках.
Прикиньте объём заранее. База 20 ГБ в .dt занимает обычно заметно меньше, но 14 ежедневных и 12 ежемесячных копий легко дадут сотни гигабайт. Сжатие и удаление старых файлов — часть настройки, а не «потом».
Проверка копии и восстановление базы
Копия, которую ни разу не разворачивали, — предположение, а не копия. Раз в месяц делайте пробное восстановление.
Проверка файловой копии или .dt
- Создайте в окне запуска новую пустую информационную базу, например
Buh_test. - Откройте её в Конфигураторе:
Администрирование → Загрузить информационную базуи выберите.dt. Для копии папки — просто распакуйте её в отдельный каталог и добавьте в список баз. - Откройте базу в режиме 1С:Предприятие и сравните контрольные цифры с рабочей: оборотно-сальдовую ведомость за последний закрытый месяц, количество документов за день копирования.
- Для глубокой проверки запустите на копии
Администрирование → Тестирование и исправлениев Конфигураторе, только с флагами проверки, без исправлений.
Для файловых баз есть ещё утилита chdbfl.exe в каталоге bin платформы. Она проверяет физическую целостность файла 1Cv8.1CD. Запускайте её на копии или на базе, из которой все вышли.
Проверка серверной копии
В MS SQL быстрая проверка читаемости файла:
RESTORE VERIFYONLY FROM DISK = N'E:\Backup\Buh_full.bak' WITH CHECKSUM;
Она не заменяет пробное восстановление. Полная проверка — развернуть бэкап в базу с другим именем, зарегистрировать её в кластере 1С как отдельную информационную базу и открыть.
Восстановление рабочей базы
Загрузка .dt полностью заменяет данные в базе, куда её загружают. Перед восстановлением сделайте копию текущего состояния — даже испорченного. Вдруг в нём есть документы, которых нет в бэкапе.
- Загрузка
.dtтребует монопольного доступа: всех пользователей из базы нужно вывести, их сеансы будут прерваны. Делайте это в согласованное время. - В MS SQL восстановление поверх существующей базы —
RESTORE DATABASE ... WITH REPLACE. Перед ним отключите сеансы 1С к этой базе. - Надёжнее восстановить копию в новую базу, проверить её и только потом переключить пользователей.
Ошибки, из-за которых копия не спасает
- ❌ Копия лежит на том же диске, что и база. Отказ диска уносит обе.
- ❌ Сохраняют только .cf. Конфигурация есть, данных нет.
- ❌ Скрипт перестал работать после обновления платформы. Изменился путь к
1cv8.exe, а лог никто не читает. Настройте уведомление или хотя бы еженедельно смотрите дату последнего файла. - ❌ Модель Full в MS SQL без бэкапов журнала. Файл журнала растёт до заполнения диска, и база останавливается.
- ❌ Копируют файловую базу «на живую». Архив есть, но база из него открывается с ошибками.
- ❌ Нет копии перед закрытием года. Через полгода нужно восстановить состояние на 31 декабря, а ротация его уже удалила.
Частые вопросы
Сколько времени занимает выгрузка базы 1С в .dt?
Можно ли загрузить .dt из файловой базы в серверную?
.dt через Конфигуратор. Обратный перенос из серверной в файловую тоже работает. Версия платформы, в которую загружаете, не должна быть ниже той, из которой выгружали.