Многие системные администраторы сталкиваются с задачей автоматизации процессов в 1С:Предприятии. Одной из наиболее частых проблем является попытка запуска встроенного механизма «Резервное копирование по расписанию» через планировщик задач Windows в режиме, когда на сервере нет активного сеанса пользователя. В этой статье мы разберем, почему данный метод не работает и какие существуют альтернативные способы решения этой задачи.
Основная причина кроется в архитектуре операционной системы Windows. Когда мы полностью выходим из системы (разлогиниваемся), ОС завершает все интерактивные сеансы. В этот момент доступ к графическому рабочему столу (Desktop) блокируется для всех процессов, запускаемых планировщиком задач с параметрами выполнения «вне зависимости от регистрации пользователя».
Механизм «Резервное копирование по расписанию» в 1С изначально спроектирован как интерактивный. Он предполагает наличие графического интерфейса, так как при запуске он ожидает подтверждения от пользователя в диалоговом окне. Даже если вы настроили автоматическое подтверждение через 60 секунд, 1С все равно пытается инициализировать графическую подсистему. В фоновом режиме (в так называемой «сессии 0») графическая подсистема недоступна, из-за чего процесс 1С зависает, не доходя до выполнения бизнес-логики.
Рассмотрим ситуацию, которую описывает автор: запуск 1С через батник. В диспетчере задач процесс 1cv8.exe действительно появляется, но он не может завершить авторизацию и открыть базу данных, так как «спотыкается» о попытку отрисовать окно ввода пароля или окно подтверждения бэкапа. Попытки заставить работать такой механизм в закрытой сессии приводят к:
Чтобы автоматизация работала надежно и без участия пользователя, необходимо отказаться от использования режима «1С:Предприятие» для выполнения административных задач. Рассмотрим более правильные подходы.
Для выполнения регламентных операций в 1С предусмотрен режим Конфигуратора. Он не требует полноценного графического интерфейса и специально разработан для пакетного запуска. Вы можете настроить планировщик Windows на запуск 1cv8.exe с соответствующими ключами командной строки.
Разберем структуру такой команды:
"C:\Program Files\1cv8\bin\1cv8.exe" CONFIG /S"Server\Base" /N"Admin" /P"Pass" /DumpIB"D:\Backups\base.dt"
Разберем параметры этой команды:
CONFIG — запуск 1С в режиме конфигуратора./S — путь к серверу и базе данных (или /F для файловой базы)./N и /P — имя пользователя и пароль с правами администратора./DumpIB — команда на выгрузку базы данных в файл формата .dt.Этот способ позволяет выгружать базу данных в полностью фоновом режиме, даже если никто не авторизован в системе. Это стандарт индустрии, который обеспечивает максимальную надежность.
Если вы используете файловую версию 1С, наиболее простым и надежным способом является обычное копирование файла 1CD. Однако, чтобы обеспечить целостность данных, необходимо корректно завершить работу пользователей с базой.
Алгоритм действий может быть следующим:
robocopy или xcopy).Мы выяснили, что интерактивный механизм резервного копирования 1С невозможно корректно использовать в фоновом режиме без активной сессии пользователя. Попытки обмануть систему, запуская 1С как службу или скрытую задачу, приводят лишь к нестабильности.
Для создания надежной системы бэкапов рекомендуется:
/DumpIB для получения файлов выгрузки.SQL Server и работает независимо от состояния приложения 1С.Помните, что надежность бэкапа проверяется не только фактом его создания, но и возможностью восстановления. Поэтому регулярно тестируйте полученные файлы .dt или копии базы на возможность развертывания.