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

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

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

Принцип работы регламентных заданий в файловом режиме

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

  1. Однопоточность выполнения: в файловой базе все регламентные и фоновые задания выполняются строго по очереди в один поток. Параллельный запуск нескольких регламентных заданий невозможен.
  2. Один активный исполнитель: регламентные задания не запускаются на всех компьютерах одновременно. В каждый момент времени их выполняет ровно один клиентский сеанс.
  3. Очередность назначения: по умолчанию платформа назначает ответственным за выполнение заданий тот клиентский сеанс, который был запущен первым по времени среди сеансов с разрешенным выполнением регламентных заданий.
  4. Зависимость от запущенных сеансов: если база данных закрыта и ни один пользователь не авторизован, регламентные задания выполняться не будут. При первом же входе пользователя платформа попытается выполнить накопившиеся пропущенные задания.

Управление выполнением заданий через параметры командной строки

Право на запуск регламентных заданий не является свойством конфигурации или ролью пользователя в конфигураторе. Это параметр конкретного запущенного клиентского процесса операционной системы. Для управления этим поведением используется специальный ключ запуска /AllowExecuteScheduledJobs.

Рассмотрим возможные значения параметра:

  1. /AllowExecuteScheduledJobs -Off — полностью запрещает текущему клиентскому сеансу брать на себя выполнение регламентных заданий. Рекомендуется прописывать в ярлыках запуска рядовых пользователей.
  2. /AllowExecuteScheduledJobs -Force — принудительно заставляет текущий сеанс стать исполнителем регламентных заданий. Если в сети последовательно запустить два клиентских сеанса с ключом -Force, право выполнения регламентных операций перейдет к последнему запущенному сеансу с этим параметром.

Организация стабильной работы регламентных заданий

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

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

Вариант 1. Выделенный фоновый сеанс (рекомендуемый подход)

Разберем по шагам создание отдельного сервисного сеанса на сервере или постоянно включенном компьютере:

  1. В ярлыках запуска 1С для всех обычных пользователей добавляем параметр запрета выполнения фоновых задач:
    
    "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "User" /P "Password" /AllowExecuteScheduledJobs -Off
    
  2. В Планировщике задач Windows на сервере создаем задачу автоматического запуска выделенного служебного сеанса с ключом принудительного выполнения:
    
    "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "RobotService" /P "ServicePass" /AllowExecuteScheduledJobs -Force
    

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

Вариант 2. Публикация файловой базы на веб-сервере

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

Посмотрим на настройку файла публикации: в файле default.vrd необходимо убедиться в наличии директивы allowExecuteScheduledJobs="true". В этом случае веб-сервер сам берет на себя роль управляющего процесса для выполнения фоновых задач по расписанию.

Вариант 3. Пакетный запуск внешних обработок через планировщик ОС

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


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "Robot" /P "Pass" /Execute "C:\Scripts\TaskHandler.epf" /DisableStartupMessages

Внутри самой обработки после выполнения алгоритма обязательно вызывается метод ЗавершитьРаботуСистемы(), чтобы сеанс автоматически закрылся и освободил файл базы данных.

← На главную