Администрирование · 10 мин
Как настроить автоматическую выгрузку базы 1С
Как настроить автоматическую выгрузку базы 1С: через конфигуратор, планировщик задач Windows и пакетные файлы. Проверка результата, типичные ошибки и FAQ.
Автоматическая выгрузка базы 1С в файл .dt — базовая защита от потери данных при сбое диска, ошибке обновления конфигурации или действиях пользователя. Ручное копирование через конфигуратор работает, но зависит от дисциплины сотрудника: достаточно одной пропущенной недели, чтобы откат пришлось делать на старые данные. Правильно настроенная автоматизация снимает этот риск полностью.
Способ настройки зависит от режима работы базы. Для файловой базы достаточно пакетного файла и планировщика задач Windows. Для клиент-серверной базы на SQL Server или PostgreSQL выгрузку .dt делают через конфигуратор в пакетном режиме, а регулярные бэкапы — штатными средствами СУБД. Ниже разобраны оба сценария с готовыми командами и проверкой результата.
Перед настройкой определите три вещи: где физически расположена база, куда складывать копии (желательно на другой диск или сетевое хранилище) и как часто нужны выгрузки. Для большинства небольших баз достаточно ежедневной ночной выгрузки с хранением 7–14 последних копий.
Что такое выгрузка .dt и чем она отличается от бэкапа
Выгрузка в файл .dt — это штатный механизм 1С, который сохраняет базу в переносимом формате: данные вместе с конфигурацией. Такой файл можно загрузить на другой компьютер, в базу другой версии платформы (в пределах совместимости) или использовать для создания тестовой копии. Это удобно, но у формата есть ограничения.
Главное ограничение: выгрузка .dt из файловой базы требует монопольного доступа — все пользователи должны выйти. Для клиент-серверной базы монопольный режим не обязателен, но выгрузка большой базы занимает заметное время и нагружает сервер. Кроме того, файл .dt не предназначен для частого резервного копирования больших баз: восстановление из него медленнее, чем из бэкапа СУБД.
Поэтому стратегия обычно двухуровневая: SQL-бэкапы ежедневно для быстрого восстановления, выгрузка .dt — еженедельно или перед обновлениями для переносимости данных.
Выгрузка файловой базы через пакетный режим конфигуратора
Для файловой базы создайте bat-файл, который запускает конфигуратор в пакетном режиме с командой DumpIB. Команда подключается к базе по указанному пути, выполняет выгрузку и записывает результат в лог.
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /P"пароль" /DumpIB"E:\Backup\trade_%date:~0,2%%date:~3,2%%date:~6,4%.dt" /Out"E:\Backup\dump.log" /DisableStartupDialogsРазберём параметры. /F — путь к файловой базе, /N и /P — имя и пароль пользователя с правами администратора, /DumpIB — путь и имя файла выгрузки, /Out — файл журнала, куда пишутся ошибки. Подстановка %date% формирует имя файла с датой, чтобы копии не затирали друг друга. Путь к 1cv8.exe укажите свой — он зависит от установленной версии платформы.
Проверьте работу команды вручную: запустите bat-файл, дождитесь завершения и откройте лог. Строка об успешном завершении выгрузки — признак корректной настройки. Если в логе ошибка монопольного доступа, значит, в базе остались сеансы — выгрузку нужно планировать на время, когда пользователи не работают, либо принудительно завершать сеансы.
Настройка расписания в планировщике задач Windows
Планировщик задач Windows запускает bat-файл по расписанию без участия пользователя. Откройте «Планировщик заданий» (команда taskschd.msc), создайте новую задачу и настройте триггер — например, ежедневно в 02:00, когда нагрузка минимальна.
- 1Откройте планировщик задач и выберите «Создать задачу» (не «простую задачу» — так будет больше настроек).
- 2На вкладке «Общие» задайте имя, включите «Выполнять с наивысшими правами» и «Выполнять вне зависимости от регистрации пользователя».
- 3На вкладке «Триггеры» добавьте расписание: ежедневно, ночное время.
- 4На вкладке «Действия» укажите запуск вашего bat-файла с полным путём.
- 5Сохраните задачу, введите пароль учётной записи и запустите её вручную для проверки.
- 6Проверьте, что файл .dt появился в целевой папке, а лог не содержит ошибок.
Учётная запись, от имени которой работает задача, должна иметь доступ на чтение к каталогу базы и на запись в папку выгрузок. Если копии складываются на сетевой диск, используйте UNC-путь (\\сервер\папка), а не подключённую букву диска — для задачи, работающей без входа пользователя, сетевые диски недоступны.
Для ротации старых копий добавьте в bat-файл удаление файлов старше заданного срока. В чистом cmd это делается через forfiles:
forfiles /p "E:\Backup" /m *.dt /d -14 /c "cmd /c del @path"Эта команда удаляет все .dt в папке копий старше 14 дней. Проверьте её на тестовой папке, прежде чем включать в боевой сценарий.
Автоматическая выгрузка клиент-серверной базы
Для базы на SQL Server пакетная команда отличается только параметрами подключения: вместо /F используется /S с указанием сервера и имени базы.
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /S"srv1c\TradeBase" /N"Администратор" /P"пароль" /DumpIB"\\backup\1c\trade.dt" /Out"\\backup\1c\dump.log"Однако для клиент-серверных баз основным инструментом должны быть бэкапы СУБД. В SQL Server настройте план обслуживания (Maintenance Plan) с полной копией ежедневно и копиями журнала транзакций несколько раз в день — это даёт восстановление на произвольный момент времени, чего выгрузка .dt не обеспечивает. В PostgreSQL используйте pg_dump по расписанию через cron или планировщик.
Сравнение вариантов
Переносимый файл с данными и конфигурацией. Подходит для файловых баз, переноса и тестовых копий. Медленное восстановление, для файловой базы нужен монопольный доступ.
Для клиент-серверных баз. Быстрое восстановление, возможен откат на точку во времени. Требует той же СУБД для развёртывания.
Простейший вариант для файловой базы, но только при полном отсутствии сеансов. Копирование при открытых сеансах даёт повреждённую копию.
Как проверить, что копии действительно рабочие
Наличие файла .dt в папке не гарантирует, что из него можно восстановиться. Минимум раз в месяц выполняйте контрольную загрузку: создайте пустую базу и загрузите в неё свежую выгрузку через конфигуратор («Загрузить информационную базу»). Успешная загрузка и открытие базы в режиме предприятия — единственное надёжное подтверждение.
Дополнительно проверяйте лог-файл каждой выгрузки. Пустой лог или отсутствие записи о завершении означает, что задача не отработала. Настройте контроль: если файл выгрузки за прошлую ночь отсутствует или его размер аномально мал, администратор должен получить уведомление — хотя бы письмо через простой скрипт.
Как проверить результат
Файл появился в целевой папке, дата свежая
Файла нет или дата старая — задача не отработала
Сопоставим с предыдущими копиями, плавно растёт
Резко меньше обычного — выгрузка оборвалась
Есть запись об успешном завершении
Ошибки монопольного доступа, обрывы, пустой лог
Выгрузка загружается в пустую базу без ошибок
Ошибка формата или обрыв загрузки — копия непригодна
Типичные ошибки и ограничения
Самая частая причина сбоя — открытые сеансы при выгрузке файловой базы. Вторая — нехватка места: файл .dt крупной базы может занимать гигабайты, и при переполнении диска выгрузка обрывается молча, оставляя обрезанный файл. Следите за свободным местом и настройте ротацию.
Ещё одна ошибка — хранение пароля администратора в bat-файле в открытом виде. Ограничьте доступ к файлу средствами NTFS и по возможности используйте отдельную учётную запись 1С только для выгрузок. Наконец, не полагайтесь на единственный тип копии: сочетание .dt, бэкапа СУБД и копии на внешнем носителе закрывает большинство сценариев потери данных.
Что важно запомнить
Автоматическая выгрузка строится на пакетном режиме конфигуратора и планировщике задач. Копии храните на отдельном носителе, настройте ротацию и регулярно проверяйте их тестовой загрузкой. Для клиент-серверных баз основную защиту обеспечивают бэкапы СУБД.
Частые вопросы
Можно ли выгружать базу, пока в ней работают пользователи?
Для файловой базы — нет: выгрузка требует монопольного доступа, иначе команда завершится ошибкой. Для клиент-серверной базы выгрузка возможна при работающих пользователях, но создаёт нагрузку и фиксирует данные на момент начала операции, поэтому её тоже лучше выполнять в нерабочее время.
Как часто нужно делать выгрузку?
Ориентируйтесь на допустимый объём потери данных. Для активно используемой базы разумный минимум — ежедневная ночная выгрузка или бэкап СУБД с копиями журнала транзакций в течение дня. Выгрузку .dt перед обновлением конфигурации делайте всегда вручную, независимо от расписания.
Чем выгрузка .dt отличается от копирования файла 1Cv8.1CD?
Копирование файла быстрее, но корректно только при полном отсутствии сеансов и не включает проверку целостности. Выгрузка .dt выполняется штатным механизмом платформы, при этом данные проходят через механизм сериализации, что снижает риск получить нечитаемую копию. Для автоматики безопаснее .dt.
Выгрузка падает с ошибкой монопольного доступа, хотя все вышли. Что делать?
Проверьте фоновые сеансы и спящие соединения: файл базы могут держать незавершённые процессы 1cv8.exe на компьютерах пользователей или зависший сеанс на сервере. Завершите процессы вручную и повторите выгрузку. Если проблема повторяется, добавьте в сценарий принудительное завершение процессов перед выгрузкой — с осторожностью и только в нерабочее время.
Куда лучше сохранять копии?
Минимум — на другой физический диск того же сервера, лучше — на сетевое хранилище или в облачный сервис с версионированием. Рабочее правило: хотя бы одна копия должна находиться вне помещения, где стоит сервер, чтобы пожар или кража оборудования не уничтожили данные полностью.
Можно ли автоматизировать выгрузку без bat-файлов?
Да. Альтернативы — скрипты PowerShell, регламентные задания внутри самой конфигурации (если она это поддерживает), а также сторонние программы резервного копирования с поддержкой 1С. Принцип везде один: штатная команда выгрузки или бэкап СУБД плюс планировщик и контроль результата.