У многих из нас возникала (и возникает) необходимости в запуске 1С в фоновом режиме для выполнения регламентных заданий. Данную задачу я решил самым простым способом, с помощью стандартных возможностей Windows 2003. Полагаю, то, что в статье речь идет о серверной операционной системе, нисколько не уменьшит возможностей применения способа, т.к. фоновые регламентные задания именно на сервере обычно и запускаются.
Способ организации фонового регламентного задания прост.
1) Пишем bat файл запускающий 1с под определенным пользователем и паролем. Очень важно, чтобы 1С запускалась, не запрашивая ни пользователя, ни пароль, т.к. нам не суждено будет визуально увидеть запуск и работу 1С.
2) Создаем задание в планировщике заданий. Я использую вариант запуска с 08:00 утра с повторным запуском каждые 30 мин.
3) В поле “От имени” вписываем NT AUTHORITY\SYSTEM (поле пароля оставляем пустым). Учетная запись NT Authority\System не имеет прав интерактивного входа, поэтому пользователи не видят программу запущенную от этой учетной записи как и не могут взаимодействовать с программами, запущенными от этой учетной записи.
4) Жмем “Ок”. Все задание создано.
Что такое по сути наше задание? Это наша программа (1С в данном случае) работающая под системной учетной записью, причем ввиду ограничений учетной записи не подающая никаких интерактивных и визуальных “признаков жизни”. Чем наше фоновое регламентное задание отличается от службы? Для наших целей – ничем.
Данный способ можно применять для организации фонового регламентного задания периодически выполняющего некие действия. Например, для организации выгрузки данных о новых поступлениях для рассылки сторонней программой смс оповещающих об этом клиента.
P.S. Дополнения + недостатки метода:
При необходимости запустить наше фоновое задание можно командой
SchTasks /Run /TN "Имя_задания"
По такой же логике наше задание можно было бы остановить командой
SchTasks /End /TN "Имя_задания"
но это невозможно к сожалению! Дело в том что запущенный процесс 1С не остановить таким образом, он будет висеть пока сам не "примет решение" остановиться. Поэтому мои регламентные задания запускаются с определенной периодичностью (раз в 30 мин например) и отработав, завершаются сами, ожидая следующего вызова.
[необходимо зарегистрироваться для просмотра ссылки]
|