Администрирование · 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 для файловой базы
Конфигуратор 1С умеет работать в пакетном режиме из командной строки. Ключ /DumpIB выгружает базу в файл dt, параметры подключения передаются через /F (путь к базе), /N и /P (имя и пароль пользователя с административными правами).
Создайте командный файл backup_1c.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Создайте bat-файл с командой выгрузки и проверьте его запуск вручную
- 2Откройте планировщик задач и создайте новую задачу с понятным именем
- 3Настройте триггер: ежедневно в ночное время без активных пользователей
- 4В действии укажите путь к bat-файлу и рабочую папку
- 5Включите запуск с наивысшими правами и выполнение без входа пользователя
- 6Запустите задачу вручную и проверьте, что файл копии появился и его размер правдоподобен
После настройки обязательно запустите задачу вручную и проверьте результат: файл dt создан, размер сопоставим с размером базы, в логе нет ошибок. Задача, которая «отработала без ошибок» по мнению планировщика, но не создала файл — самая частая ловушка, поэтому в скрипт полезно добавить проверку кода возврата и запись в журнал ошибок.
Резервное копирование клиент-серверной базы
Для базы на MS SQL Server резервное копирование настраивается средствами самой СУБД. В SQL Server Management Studio создайте план обслуживания (Maintenance Plan) с задачей Back Up Database или выполняйте скрипт BACKUP DATABASE по расписанию через SQL Server Agent.
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С, не должна иметь права записи в хранилище копий. Запись копий выполняет отдельная учётная запись планировщика, а протоколы общего доступа к хранилищу ограничивают по минимуму.
Проверка копий и восстановления
Резервная копия, которую никто не проверял, — это надежда, а не защита. Минимальная проверка: раз в месяц возьмите свежий dt-файл и загрузите его в тестовую базу через конфигуратор (Загрузить информационную базу) или восстановите копию СУБД в базу с тестовым именем.
После загрузки откройте базу в режиме предприятия, проверьте, что открываются ключевые отчёты и документы за последние даты. Это занимает 15–30 минут, но именно так вы узнаете о проблемах до того, как копия понадобится по-настоящему.
Дополнительно ведите простой контроль регулярности: файл копии с сегодняшней датой существует, его размер не отличается от обычного в разы, лог выгрузки без ошибок. Резкое уменьшение размера копии — тревожный признак: возможно, выгрузка оборвалась.
Как проверить результат
Файл с текущей датой есть в каталоге копий
Файла нет или дата старая — задача не отработала
Сопоставим с предыдущими копиями
Резко меньше обычного — вероятна оборванная выгрузка
Код возврата 0, ошибок нет
Ошибки доступа, блокировок или нехватки места
Копия загружается в тестовую базу, данные читаются
Ошибка загрузки — копия непригодна, схему надо чинить
Встроенные средства и готовые решения
В типовых конфигурациях на базе Библиотеки стандартных подсистем есть подсистема «Резервное копирование ИБ» для файловых баз. Она предлагает пользователю выполнить копирование при завершении работы или по расписанию и сохраняет копии в указанный каталог. Настраивается в разделе администрирования без программирования.
Ограничение встроенной подсистемы: копирование выполняется на компьютере пользователя и зависит от того, запущена ли программа. Для серверного сценария и гарантированного ночного расписания надёжнее планировщик задач с пакетной выгрузкой.
Также существуют сторонние утилиты и облачные сервисы резервного копирования 1С. Они удобны интерфейсом и контролем, но принципы те же: регулярность, отдельное хранилище, проверка восстановления. Выбирая любое решение, проверьте, что вы сами можете восстановить базу без участия разработчика утилиты.
Как выбрать действие
Частые вопросы
Можно ли копировать базу 1С, пока в ней работают пользователи?
Выгрузка dt технически выполняется при активных сеансах, но данные в копии могут быть несогласованными, если в этот момент проводились документы. Прямое копирование файла 1Cv8.1CD при работающих пользователях недопустимо — копия может оказаться повреждённой. Копирование средствами СУБД для клиент-серверных баз выполняется на работающей системе без риска.
Чем выгрузка dt отличается от копии файла базы?
Файл dt — это логическая выгрузка данных через платформу: его можно загрузить на другой версии платформы и перенести между файловым и клиент-серверным режимами. Копия файла 1Cv8.1CD — побайтовый снимок, который требует полного отсутствия сеансов при копировании и привязан к текущему формату базы.
Как часто нужно делать резервные копии?
Минимум — ежедневно для активно используемой базы. Если потеря данных за несколько часов критична, для серверных баз добавляют копии журнала транзакций несколько раз в день. Периодичность определяется допустимым объёмом потерянных данных, а не объёмом базы.
Сколько места нужно для хранения копий?
Ориентируйтесь на размер одной копии, умноженный на количество хранимых копий, плюс запас на рост базы. Выгрузки dt и сжатые копии СУБД обычно заметно меньше самой базы, но точное соотношение зависит от данных. Следите за свободным местом: переполнение диска — частая причина молчаливого прекращения копирования.
Задача в планировщике отрабатывает, но файл копии не появляется. Что проверить?
Проверьте путь к 1cv8.exe — он меняется после обновления платформы. Убедитесь, что учётная запись задачи имеет доступ к базе и к каталогу копий, а пароль пользователя 1С в скрипте актуален. Добавьте в скрипт запись кода возврата и вывода в лог-файл — по логу причина обычно видна сразу.
Достаточно ли синхронизации папки с базой в облако?
Нет. Синхронизация файла 1Cv8.1CD работающей базы передаёт в облако промежуточное, потенциально повреждённое состояние файла. Кроме того, синхронизация реплицирует и удаление, и шифрование файлов. Облако правильно использовать как приёмник готовых dt-файлов или копий СУБД, а не как замену резервному копированию.
Что важно запомнить
Для файловой базы настройте ежедневную выгрузку dt через планировщик задач, для серверной — копирование средствами СУБД. Храните копии минимум на двух носителях, один — вне сервера, с ограничением прав записи. Регулярно проверяйте восстановление на тестовой базе: копия без проверки — это не защита, а иллюзия защиты.