Резервная копия Комплексной автоматизации: файловый вариант, SQL и автозапуск по расписанию
Содержание
Полную копию базы
1С:Комплексная автоматизация проще всего сделать в конфигураторе: Администрирование → Выгрузить информационную базу. Получится один файл .dt со всеми данными, конфигурацией и списком пользователей. Его можно загрузить в пустую базу на любом компьютере с платформой 8.3 номером не ниже той, на которой делали выгрузку.
Частое заблуждение: «скопирую папку с базой, и этого хватит». Для файловой базы это работает, но только если в ней никто не работает . Для клиент-серверной базы копирование папки ничего не даёт: данные лежат в СУБД, и полную копию делают средствами MS SQL или PostgreSQL. Ниже все варианты по порядку, от разовой ручной копии до бэкапа по расписанию.
Подготовка к копированию базы Комплексной автоматизации
Перед первой копией ответьте себе на три вопроса. От ответов зависит способ.
- 🗂 Где лежит база. В списке баз на окне запуска выделите базу и посмотрите строку внизу.
File="D:\Base\KA"— файловый вариант.Srvr="server";Ref="ka"— клиент-серверный. - 📏 Сколько она весит. Для файловой базы смотрите размер файла
1Cv8.1CD. Для серверной — размер базы данных в СУБД. База на 50–100 ГБ выгружается в.dtдолго, для неё основной способ — бэкап СУБД. - 💾 Куда класть копию. Не на тот же диск, где база. Минимум — другой физический диск, лучше ещё и сетевое хранилище или внешний носитель.
Что ещё нужно до начала:
- Учётная запись с правом администрирования в 1С. Без неё конфигуратор не откроется или не даст выгрузить базу .
- Свободное место. Файл
.dtобычно в несколько раз меньше1Cv8.1CD, потому что сжат. Бэкап SQL без сжатия близок к размеру самой базы. - Время, когда пользователи не работают. Выгрузка
.dtмонопольного режима не требует, но под нагрузкой идёт медленнее, а данные в копии будут на момент окончания чтения таблиц. Вечер или выходной — лучший вариант.
Перед обновлением конфигурации и перед любыми массовыми обработками делайте внеплановую копию, даже если ночной бэкап уже есть. Откатиться на копию часовой давности проще, чем на вчерашнюю.
Как сделать копию базы через конфигуратор (файл .dt)
Способ универсальный: подходит и для файловой, и для серверной базы. Удобен для переноса базы на другой компьютер, для отправки копии программисту и для разовых бэкапов.
- Запустите 1С, выберите базу Комплексной автоматизации и нажмите Конфигуратор.
- Войдите под пользователем с правами администратора.
- Откройте меню
Администрирование → Выгрузить информационную базу. - Укажите папку и имя файла. Удобный шаблон имени:
KA_2026-10-07_1830.dt— дата и время сразу видны в списке. - Нажмите Сохранить и дождитесь сообщения о том, что выгрузка завершена.
Сколько ждать — зависит от объёма и диска. Ориентировочно: база на 5–10 ГБ выгружается за 10–30 минут, на 50 ГБ — за час и дольше.
Проверьте результат: файл появился в папке, размер не нулевой. Самая надёжная проверка — раз в месяц загрузить свежий .dt в отдельную тестовую базу и убедиться, что она открывается.
Что попадает в файл .dt и что нет
| Попадает | Не попадает |
|---|---|
| Все данные: справочники, документы, регистры | Настройки кластера серверов и регламентных заданий на уровне кластера |
| Основная конфигурация и подключённые расширения | Файлы, которые хранятся на диске в томах (если в базе включено хранение файлов в томах) |
| Список пользователей 1С и их права | Журнал регистрации (он лежит отдельно, в папке 1Cv8Log) |
Если присоединённые файлы хранятся в томах на диске, копируйте папку томов отдельно. Иначе после восстановления карточки файлов будут, а самих файлов — нет. Где лежат тома, видно в режиме 1С:Предприятие в разделе Администрирование, в настройках работы с файлами.
Бэкап клиент-серверной базы средствами MS SQL и PostgreSQL
Для серверной Комплексной автоматизации основной способ — резервная копия базы данных в СУБД. Она делается без остановки работы пользователей и быстрее, чем .dt.
Сначала узнайте имя базы данных в СУБД. Оно не обязательно совпадает с именем базы в списке 1С. Откройте консоль администрирования кластера, найдите информационную базу и посмотрите её свойства: там указаны сервер баз данных и имя базы.
MS SQL Server
Через SQL Server Management Studio: правой кнопкой по базе → Tasks → Back Up…, тип копии Full, путь к файлу .bak. То же самое запросом:
BACKUP DATABASE [ka_prod]
TO DISK = N'E:\Backup\ka_prod_full.bak'
WITH COMPRESSION, CHECKSUM, INIT;
COMPRESSION— сжатие, файл получается в разы меньше. Не поддерживается в Express-редакции, там уберите этот параметр.CHECKSUM— проверка контрольных сумм страниц при записи.INIT— перезаписать файл, а не дописать новую копию в конец.
Проверить, что копия читается:
RESTORE VERIFYONLY FROM DISK = N'E:\Backup\ka_prod_full.bak';
Если модель восстановления базы Full, а резервные копии журнала транзакций не делаются, файл .ldf растёт без ограничений и однажды занимает весь диск. Либо настройте бэкап журнала, либо переключите модель на Simple, если восстановление на конкретную минуту вам не нужно.
PostgreSQL
Копию делает утилита pg_dump. Формат -Fc (custom) сжат и позволяет восстанавливать выборочно:
"C:\Program Files\PostgreSQL\15\bin\pg_dump.exe" -U postgres -h localhost -Fc -f "E:\Backup\ka_prod.backup" ka_prod
Путь к pg_dump зависит от версии и сборки PostgreSQL: проверьте папку bin вашей установки. Пароль удобно передавать через файл pgpass.conf или переменную PGPASSWORD, чтобы скрипт не останавливался на запросе.
Какой способ выбрать для серверной базы
| Способ | Когда подходит | Ограничения |
|---|---|---|
Бэкап СУБД (.bak, pg_dump) | Ежедневная копия рабочей базы любого размера | Восстановить можно только в ту же СУБД |
Выгрузка .dt | Перенос между серверами и СУБД, копия для программиста | Медленно на больших базах |
| Оба сразу | Боевой режим: СУБД каждую ночь, .dt раз в неделю | Нужно больше места |
Копирование файлов базы: когда можно и чем опасно
Файловая база Комплексной автоматизации — это папка, главный в ней файл 1Cv8.1CD. Скопировать его можно обычным проводником, и это самый быстрый способ получить полную копию.
Условие одно, и оно жёсткое: в момент копирования в базе не должно быть ни одного сеанса. Ни пользователя, ни конфигуратора, ни фонового задания. Если файл копируется, пока в него пишут, копия может оказаться повреждённой, и узнаете вы об этом только при восстановлении.
Как убедиться, что базу никто не держит:
- В режиме 1С:Предприятие откройте
Администрирование → Обслуживаниеи посмотрите список активных пользователей. - Попросите всех выйти или установите блокировку начала сеансов там же, в разделе обслуживания. При блокировке работающие пользователи получат предупреждение и будут отключены — делайте это после рабочего дня.
- Закройте собственный сеанс и только потом копируйте папку.
Что копировать:
- 📄
1Cv8.1CD— сами данные и конфигурация. Обязательно. - 📁
1Cv8Log— журнал регистрации. Нужен, если важна история действий пользователей. - 📁
1Cv8FTxt— индекс полнотекстового поиска. Можно не копировать: платформа построит его заново.
Для клиент-серверной базы копирование файлов .mdf/.ldf или каталога данных PostgreSQL «на ходу» не годится вообще. СУБД держит эти файлы открытыми, и копия будет несогласованной. Только средства СУБД из предыдущего раздела.
Копию файла 1Cv8.1CD упакуйте в архив. Он хорошо сжимается, а архив заодно проверяется на целостность при распаковке.
Встроенное резервное копирование в Комплексной автоматизации
В Комплексной автоматизации есть собственный механизм копирования для файловых баз. Он находится в режиме 1С:Предприятие: Администрирование → Обслуживание, раздел про резервное копирование
и восстановление.
Что умеет механизм:
- делать копию сразу или по расписанию (например, при завершении работы или ежедневно в заданное время);
- хранить заданное число последних копий и удалять старые;
- восстанавливать базу из выбранной копии.
Ограничения, которые нужно знать заранее:
- ⛔ работает только для файловой базы, для серверной копию делают средствами СУБД;
- ⛔ по расписанию срабатывает, только когда кто-то запущен в базе под администратором на этом компьютере;
- ⛔ во время копирования остальные пользователи будут отключены.
Для небольшой фирмы с файловой базой этого часто достаточно. Если база на сервере или копия нужна строго каждую ночь независимо от того, кто запустил программу, переходите к скрипту.
Резервная копия по расписанию: скрипт и планировщик
Ручная копия рано или поздно забывается. Автоматизация решает это: скрипт делает копию, планировщик Windows запускает его каждую ночь.
Выгрузка .dt пакетным файлом
Конфигуратор умеет выгружать базу из командной строки, без открытия окна. Пример для файловой базы:
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set DT=E:\Backup\KA_%date:~6,4%-%date:~3,2%-%date:~0,2%.dt
%V8% DESIGNER /F "D:\Base\KA" /N "Администратор" /P "пароль" /DumpIB "%DT%" /Out "E:\Backup\dump.log" /DisableStartupMessages
Для серверной базы замените /F "D:\Base\KA" на /S "server\ka". Номер платформы в пути подставьте свой: посмотрите папку C:\Program Files\1cv8.
Разбор параметров:
DESIGNER— запуск в режиме конфигуратора;/Nи/P— пользователь и пароль 1С;/DumpIB— выгрузить информационную базу в указанный файл;/Out— файл, куда пишется результат: по нему видно, прошла ли выгрузка;/DisableStartupMessages— не показывать стартовые предупреждения, которые остановили бы скрипт.
Формат даты в %date% зависит от региональных настроек Windows. Перед постановкой на расписание запустите скрипт руками и проверьте имя получившегося файла.
Пароль администратора 1С в bat-файле лежит открытым текстом. Создайте для бэкапа отдельного пользователя 1С, а доступ к папке со скриптом ограничьте учётной записью, от которой работает задание.
Постановка в планировщик
- Откройте Планировщик заданий Windows → Создать задачу .
- На вкладке «Общие» выберите учётную запись и отметьте выполнение независимо от входа пользователя.
- На вкладке «Триггеры» задайте ежедневный запуск, например в 02:00.
- На вкладке «Действия» укажите bat-файл.
Для MS SQL удобнее план обслуживания в Management Studio или задание SQL Server Agent: полная копия раз в сутки, журнал транзакций — каждый час, если модель Full. В Express-редакции агента нет, там BACKUP DATABASE запускают через sqlcmd из того же планировщика Windows.
Не забудьте об очистке: добавьте в скрипт удаление файлов старше, скажем, 14 дней, иначе диск закончится.
forfiles /p "E:\Backup" /m *.dt /d -14 /c "cmd /c del @path"
Восстановление базы из резервной копии
Восстанавливать рабочую базу поверх — крайняя мера. Сначала разверните копию рядом, в новую базу, и убедитесь, что в ней нужные данные.
Из файла .dt
- В окне запуска 1С нажмите Добавить → создание новой информационной базы без конфигурации.
- Откройте новую базу в конфигураторе.
- Выберите
Администрирование → Загрузить информационную базуи укажите файл.dt. - Подтвердите замену данных и дождитесь окончания.
Загрузка .dt полностью заменяет данные и конфигурацию базы, в которую загружаете. Для загрузки нужен монопольный доступ: в базе не должно быть других сеансов.
Из командной строки то же делает параметр /RestoreIB вместо /DumpIB.
Из бэкапа MS SQL или PostgreSQL
- MS SQL: восстановите
.bakв новую базу данных (в Management Studio:Databases → Restore Database…, задайте новое имя). Затем в консоли кластера создайте информационную базу, указав это имя базы данных, и снимите флажок создания базы данных при её отсутствии. - PostgreSQL: создайте пустую базу и загрузите копию через
pg_restore -d новая_база файл.backup. Дальше так же регистрируете её в кластере 1С.
Файловая копия
Остановите работу в базе, переименуйте текущий 1Cv8.1CD (не удаляйте — пригодится для разбора), положите на его место файл из копии.
Чтобы копия не работала как рабочая база
После восстановления в другое место Комплексная автоматизация при первом входе спросит, перемещена база или скопирована. Отвечайте, что это копия. Тогда в ней не запустятся обмены с другими базами, отправка писем и загрузка из банка — иначе тестовая база может отправить контрагентам реальные документы.
Для серверной копии дополнительно в свойствах информационной базы в консоли кластера включите блокировку регламентных заданий.
Частые ошибки при копировании и восстановлении
- ❌ Копия есть, но не восстанавливается. Её ни разу не проверяли. Пробная загрузка раз в месяц — единственное доказательство, что бэкап рабочий.
- ❌ Выгрузка .dt обрывается с ошибкой. Частая причина — нехватка места на диске назначения или во временной папке пользователя. Освободите место и повторите. Если ошибка указывает на конкретную таблицу, сначала проверьте базу через
Администрирование → Тестирование и исправлениев конфигураторе, имея на руках копию файла. - ❌ Платформа не открывает .dt. Файл выгружен на платформе с номером выше, чем установлена у вас. Обновите платформу до того же или более нового номера.
- ❌ Бэкап SQL есть, а 1С не видит базу. Восстановленную базу данных забыли зарегистрировать в кластере 1С. СУБД о существовании 1С ничего не знает, базу нужно добавить в консоли кластера.
- ❌ Копии хранятся на том же сервере. Отказ диска или шифровальщик уничтожат и базу, и копии одновременно. Хотя бы одна копия должна жить вне сервера.