Работают ли регламентные задания в 1С, если база закрыта? Подробный разбор и настройка

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе автоматизации бизнес-процессов на платформе «1С:Предприятие 8» одним из ключевых механизмов является использование регламентных и фоновых заданий. Они позволяют без участия пользователя выполнять рутинные операции: загружать курсы валют, обмениваться данными с сайтами, отправлять уведомления или рассчитывать итоги. Однако у начинающих разработчиков и администраторов часто возникает вопрос: будут ли выполняться эти задачи, если все пользователи закрыли программу? Давайте детально разберем этот вопрос, проанализируем различия в поведении файловых и клиент-серверных баз, а также рассмотрим практические способы настройки автономной работы системы.

Клиент-серверный вариант: полная автономность на сервере

В клиент-серверном варианте работы системы ответ на главный вопрос темы однозначный — да, регламентные задания успешно работают, даже если все пользователи закрыли свои клиентские приложения. Это происходит благодаря архитектуре платформы «1С:Предприятие».

Рассмотрим подробнее, как именно функционирует этот механизм изнутри:

  1. За планирование и запуск регламентных заданий отвечает менеджер кластера 1С (процесс rmngr). Он постоянно анализирует настроенное расписание для каждой информационной базы.
  2. Когда наступает время запуска очередного задания, менеджер кластера инициирует создание фонового задания.
  3. Непосредственное выполнение программного кода происходит внутри рабочих процессов сервера (процессов rphost). При этом физического запуска графического интерфейса клиента не происходит.

Таким образом, для работы регламентных и фоновых заданий в серверной базе присутствие активных сеансов пользователей абсолютно не требуется. Важно лишь, чтобы была запущена служба агента сервера «1С:Предприятия» (ragent).

Важное правило безопасности для администраторов: при создании тестовых копий рабочих баз в клиент-серверном варианте обязательно нужно отключать регламентные задания. Если этого не сделать, копия базы в фоновом режиме может отправить реальным клиентам повторные письма, выгрузить некорректные данные на рабочий сайт или запустить нежелательный обмен. Сделать это можно в свойствах информационной базы через консоль администрирования серверов 1С, установив флажок «Блокировка регламентных заданий включена».

Для разработчиков также существует важный нюанс, связанный с отладкой серверных заданий. Поскольку они выполняются в фоновом режиме на сервере, обычный запуск отладки из Конфигуратора их не перехватит. Чтобы отладить код регламентного задания, служба ragent должна быть запущена с ключом отладки -debug, а в Конфигураторе в меню «Отладка — Подключение» необходимо настроить автоматическое подключение к фоновым заданиям.

Файловый вариант: жесткие ограничения «из коробки»

В файловом варианте работы архитектура 1С устроена принципиально иначе. Здесь нет выделенного серверного процесса, который мог бы постоянно крутиться в памяти и выполнять задачи по расписанию. Поэтому при закрытой файловой базе регламентные задания стандартным образом не выполняются.

Разберем по шагам, как ведет себя файловая база при работе с регламентными заданиями:

Как заставить работать регламентные задания в закрытой файловой базе

Если специфика вашего предприятия требует использования файлового варианта, но при этом необходимо настроить автономное выполнение задач ночью или в выходные дни, можно применить проверенные административные методы обхода ограничений.

Способ 1. Использование планировщика задач Windows (или cron в Linux)

Этот способ позволяет имитировать присутствие пользователя в системе без необходимости держать компьютер постоянно включенным под чьей-то учетной записью. Мы можем настроить операционную систему так, чтобы она сама запускала 1С в фоновом (скрытом) режиме, выполняла нужные операции и закрывала программу.

Рассмотрим пример настройки через Планировщик задач Windows:

  1. Создаем в 1С специального пользователя (например, с именем РоботРоман) с административными правами.
  2. В планировщике задач Windows создаем новую задачу. В качестве действия указываем запуск программы 1С:Предприятие.
  3. В поле «Аргументы» прописываем параметры запуска. Например:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\PutToMyBase" /N "РоботРоман" /P "SlozhniyParol123" /WA- /C "ЗапускРегламентныхЗаданий"

Параметр /WA- отключает показ предупреждений при запуске, а специальный параметр командной строки /AllowExecuteScheduledJobs гарантирует, что данное клиентское приложение принудительно берет на себя роль исполнителя регламентных заданий.

Способ 2. Выделенный дежурный сеанс

В современных конфигурациях, созданных на базе Библиотеки стандартных подсистем (БСП), предусмотрен готовый программный механизм. Вы можете запустить на сервере или отдельном компьютере один сеанс 1С под служебным пользователем и оставить его активным.

В этом сеансе БСП автоматически будет периодически вызывать метод:

ВыполнитьОбработкуЗаданий();

Этот метод инициирует запуск накопившихся в очереди регламентных задач. Пока данный сеанс открыт — задания будут выполняться стабильно по расписанию.

Способ 3. Публикация базы на веб-сервере

Если файловая база опубликована на веб-сервере (под управлением IIS или Apache), то регламентные задания могут выполняться расширением веб-сервера. Они будут работать до тех пор, пока веб-сервер активен и обслуживает хотя бы один клиентский сеанс. Для управления этой возможностью в файле публикации default.vrd используется специальный атрибут allowexecutescheduledjobs.

Важные особенности механики регламентных заданий

Для качественной разработки и администрирования важно четко понимать разницу между терминами и внутренними механизмами платформы:

Мы проанализировали ключевые аспекты работы механизма заданий 1С. Понимание этих архитектурных особенностей позволит вам проектировать надежные и отказоустойчивые информационные системы как в серверном, так и в файловом вариантах работы.

← На главную