К статье
Практический материал

Администрирование · 12 мин

Как настроить автоматическое резервное копирование 1С

Как настроить автоматическое резервное копирование 1С: выгрузка dt, копия базы SQL, планировщик задач, хранение копий и проверка восстановления.

Автоматическое резервное копирование 1С — единственный способ гарантировать, что при сбое диска, ошибке обновления или действиях пользователя данные удастся восстановить за минуты, а не за недели. Ручное копирование «когда вспомнили» почти всегда означает, что в нужный момент свежей копии не окажется.

Способ настройки зависит от режима работы базы. Для файловой базы достаточно выгрузки через конфигуратор или пакетного запуска, для клиент-серверной — нужны средства СУБД (MS SQL, PostgreSQL) или выгрузка dt с сервера 1С. В обоих случаях автоматизация строится на планировщике задач Windows или cron и скрипте, который формирует копию и складывает её в отведённое хранилище.

Ниже разобраны рабочие схемы для обоих режимов, правила хранения копий, проверка восстановления и типичные ошибки, из-за которых «резервное копирование настроено», а восстановить данные невозможно.

Какой способ копирования выбрать для вашей базы

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

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

Клиент-серверная база копируется средствами СУБД: для MS SQL это Maintenance Plan или скрипт BACKUP DATABASE, для PostgreSQL — утилита pg_dump. Копирование файлов каталога данных СУБД «вживую» недопустимо. Выгрузка dt на серверной базе тоже возможна, но на больших базах она занимает часы и нагружает сервер.

Сравнение способов резервного копирования

Выгрузка dt

Подходит для файловых и небольших серверных баз. Копия переносима между СУБД. Ограничение — медленно на больших базах и требует монопольного режима или терпит работающих пользователей с риском неполной консистентности.

Копирование файла 1Cv8.1CD

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

Backup средствами СУБД

Стандарт для клиент-серверных баз. Выполняется без остановки работы, поддерживает полные и разностные копии. Требует прав администратора СУБД.

Настройка выгрузки dt для файловой базы

Конфигуратор 1С умеет работать в пакетном режиме из командной строки. Ключ /DumpIB выгружает базу в файл dt, параметры подключения передаются через /F (путь к базе), /N и /P (имя и пароль пользователя с административными правами).

Создайте командный файл backup_1c.bat примерно такого содержания, подставив свои пути и учётные данные. В имени файла копии удобно использовать дату, чтобы копии не перезаписывали друг друга.

bat
@echo off
set STAMP=%date:~6,4%-%date:~3,2%-%date:~0,2%
"C:\Program Files\1cv8\8.3.24.1467\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /P"пароль" /DumpIB"E:\Backup\Trade_%STAMP%.dt" /Out"E:\Backup\log.txt"
if errorlevel 1 echo Ошибка выгрузки >> E:\Backup\errors.log

Обратите внимание: путь к исполняемому файлу 1cv8.exe содержит номер версии платформы — после обновления платформы скрипт придётся поправить. Либо используйте ярлык на актуальную версию через каталог с наибольшим номером версии, который можно определять скриптом.

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

Автоматизация через планировщик задач Windows

Планировщик задач — штатный инструмент Windows для запуска скриптов по расписанию. Откройте «Планировщик заданий» (taskschd.msc), создайте новую задачу и настройте триггер — например, ежедневно в 02:00, когда пользователи не работают.

В действии задачи укажите запуск вашего bat-файла. Важные параметры: запускать с наивысшими правами, выполнять независимо от входа пользователя в систему, рабочая папка — каталог скрипта. Учётная запись, от имени которой выполняется задача, должна иметь доступ на чтение к базе и на запись в каталог копий.

Порядок настройки задачи в планировщике
  1. 1
    Создайте bat-файл с командой выгрузки и проверьте его запуск вручную
  2. 2
    Откройте планировщик задач и создайте новую задачу с понятным именем
  3. 3
    Настройте триггер: ежедневно в ночное время без активных пользователей
  4. 4
    В действии укажите путь к bat-файлу и рабочую папку
  5. 5
    Включите запуск с наивысшими правами и выполнение без входа пользователя
  6. 6
    Запустите задачу вручную и проверьте, что файл копии появился и его размер правдоподобен

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

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

Для базы на MS SQL Server резервное копирование настраивается средствами самой СУБД. В SQL Server Management Studio создайте план обслуживания (Maintenance Plan) с задачей Back Up Database или выполняйте скрипт BACKUP DATABASE по расписанию через SQL Server Agent.

sql
BACKUP DATABASE [TradeDB]
TO DISK = N'E:\SQLBackup\TradeDB_full.bak'
WITH COMPRESSION, CHECKSUM;

Рекомендуемая схема для рабочей базы: полная копия ежедневно ночью, разностные или копии журнала транзакций — несколько раз в день, если допустимая потеря данных меньше суток. Модель восстановления базы при этом должна быть Full, а не Simple, иначе копии журнала невозможны.

Для PostgreSQL используется утилита pg_dump с запуском через планировщик. Кластерный pg_dumpall нужен только для копирования всего сервера целиком; для отдельной базы 1С достаточно pg_dump с указанием имени базы.

Копии СУБД восстанавливаются в базу с тем же именем или в новую базу на том же либо другом сервере. После восстановления базу нужно зарегистрировать в кластере 1С или подключить как новую информационную базу — сама копия СУБД не появляется в списке баз автоматически.

Где и сколько хранить копии

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

Надёжная практика — правило 3-2-1: три копии данных, на двух разных типах носителей, одна — вне основной площадки. Для 1С внешней копией может быть облачное хранилище или съёмный диск, который уносят из офиса. Облачная синхронизация папки с копиями — простой способ автоматизировать вынос копий за пределы сервера.

Глубина хранения зависит от цены ошибки. Обычно хранят ежедневные копии за последние 1–2 недели, еженедельные — за 1–2 месяца, ежемесячные — дольше. Старые копии удаляйте скриптом, иначе диск со временем переполнится и новые копии перестанут создаваться.

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

Типичные ошибки
01
Хранение копий на том же диске, что и база — при отказе диска теряется и база, и копии
02
Отсутствие проверки восстановления — копии создаются, но оказываются битыми или неполными
03
Запуск выгрузки в рабочее время — блокировки, медленная работа базы и несогласованные данные в копии
04
Перезапись единственной копии каждый день — сбой во время копирования оставляет без единой рабочей копии
05
Устаревший путь к 1cv8.exe после обновления платформы — задача молча перестаёт работать
06
Переполнение диска старыми копиями — новые копии не создаются, и это замечают слишком поздно

Проверка копий и восстановления

Резервная копия, которую никто не проверял, — это надежда, а не защита. Минимальная проверка: раз в месяц возьмите свежий dt-файл и загрузите его в тестовую базу через конфигуратор (Загрузить информационную базу) или восстановите копию СУБД в базу с тестовым именем.

После загрузки откройте базу в режиме предприятия, проверьте, что открываются ключевые отчёты и документы за последние даты. Это занимает 15–30 минут, но именно так вы узнаете о проблемах до того, как копия понадобится по-настоящему.

Дополнительно ведите простой контроль регулярности: файл копии с сегодняшней датой существует, его размер не отличается от обычного в разы, лог выгрузки без ошибок. Резкое уменьшение размера копии — тревожный признак: возможно, выгрузка оборвалась.

Контрольные точки

Как проверить результат

Файл копии создан
Норма

Файл с текущей датой есть в каталоге копий

Тревожный признак

Файла нет или дата старая — задача не отработала

Размер копии
Норма

Сопоставим с предыдущими копиями

Тревожный признак

Резко меньше обычного — вероятна оборванная выгрузка

Журнал выгрузки
Норма

Код возврата 0, ошибок нет

Тревожный признак

Ошибки доступа, блокировок или нехватки места

Тестовое восстановление
Норма

Копия загружается в тестовую базу, данные читаются

Тревожный признак

Ошибка загрузки — копия непригодна, схему надо чинить

Встроенные средства и готовые решения

В типовых конфигурациях на базе Библиотеки стандартных подсистем есть подсистема «Резервное копирование ИБ» для файловых баз. Она предлагает пользователю выполнить копирование при завершении работы или по расписанию и сохраняет копии в указанный каталог. Настраивается в разделе администрирования без программирования.

Ограничение встроенной подсистемы: копирование выполняется на компьютере пользователя и зависит от того, запущена ли программа. Для серверного сценария и гарантированного ночного расписания надёжнее планировщик задач с пакетной выгрузкой.

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

Маршрут решения

Как выбрать действие

Файловая база, пользователей немного, есть ночное окноНастройте выгрузку dt через планировщик задач — этого достаточно
Клиент-серверная база на MS SQL или PostgreSQLИспользуйте штатное копирование СУБД, dt — как дополнительную периодическую копию
Нет отдельного сервера или NAS для копийДобавьте синхронизацию каталога копий в облачное хранилище
Копии создаются, но восстановление никогда не проверялосьНемедленно выполните тестовую загрузку копии в отдельную базу

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

Можно ли копировать базу 1С, пока в ней работают пользователи?

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

Чем выгрузка dt отличается от копии файла базы?

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

Как часто нужно делать резервные копии?

Минимум — ежедневно для активно используемой базы. Если потеря данных за несколько часов критична, для серверных баз добавляют копии журнала транзакций несколько раз в день. Периодичность определяется допустимым объёмом потерянных данных, а не объёмом базы.

Сколько места нужно для хранения копий?

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

Задача в планировщике отрабатывает, но файл копии не появляется. Что проверить?

Проверьте путь к 1cv8.exe — он меняется после обновления платформы. Убедитесь, что учётная запись задачи имеет доступ к базе и к каталогу копий, а пароль пользователя 1С в скрипте актуален. Добавьте в скрипт запись кода возврата и вывода в лог-файл — по логу причина обычно видна сразу.

Достаточно ли синхронизации папки с базой в облако?

Нет. Синхронизация файла 1Cv8.1CD работающей базы передаёт в облако промежуточное, потенциально повреждённое состояние файла. Кроме того, синхронизация реплицирует и удаление, и шифрование файлов. Облако правильно использовать как приёмник готовых dt-файлов или копий СУБД, а не как замену резервному копированию.

Итог

Что важно запомнить

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