Почему не запускаются регламентные задания в файловой базе 1С:Бухгалтерия 8.3 и как это исправить?

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

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

Причины нестабильного выполнения заданий в файловом режиме

Проанализируем основные технические ограничения платформы 1С:Предприятие 8.3 при работе с базой данных формата 1CD:

  1. Необходимость активного клиентского сеанса. В отличие от клиент-серверного режима, где за расписание отвечает служба кластера серверов, в файловой базе запуск заданий возможен только тогда, когда запущен хотя бы один клиентский сеанс 1С или активен рабочий процесс веб-сервера.
  2. Однопоточность и последовательная очередь. В файловом режиме платформа назначает ровно один сеанс-исполнитель. Все фоновые задания выполняются строго по очереди. Если в данный момент выполняется длительная операция (например, обновление полнотекстового индекса, загрузка курсов валют или классификаторов), новое регламентное задание будет ожидать завершения предыдущего.
  3. Интервал опроса и задержка инициализации. Планировщик в файловой базе опрашивает очередь не непрерывно, а периодически (с интервалом около одной минуты). Кроме того, после открытия программы механизм планировщика активируется с задержкой в 60–120 секунд.
  4. Кэширование расписания в БСП. При динамическом изменении расписания в пользовательском режиме сеанс-планировщик считывает изменения не сразу, а после обновления внутреннего кэша заданий либо после перезапуска сеанса.
  5. Блокировка контекста модальными окнами. Если в сеансе пользователя, выполняющего роль планировщика, открыто модальное окно или системный диалог, выполнение очереди фоновых заданий может приостанавливаться.

Способ 1. Принудительное выделение сеанса-исполнителя через параметры запуска

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

Для выделенного сеанса (например, запущенного на сервере или служебном ПК) добавим параметр:

/AllowExecuteScheduledJobs -Force

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

/AllowExecuteScheduledJobs -Off

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


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\Accounting" /N "SchedulerUser" /P "Password123" /AllowExecuteScheduledJobs -Force

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

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

Разберем по шагам настройку конфигурационного файла публикации default.vrd:

  1. Откроем конфигуратор 1С и перейдем в меню Администрирование > Публикация на веб-сервере.
  2. Установим флаг Использовать регламентные задания.
  3. Проверим, чтобы в файле default.vrd присутствовал соответствующий параметр:

<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       base="/Accounting"
       ib="File="C:\Bases\Accounting";"
       allowExecuteScheduledJobs="true">
</point>

Способ 3. Запуск задач через планировщик операционной системы

Если требуется гарантированный запуск конкретной процедуры в строго определенное время, оптимальным решением является использование планировщика задач Windows (Task Scheduler) в связке с запуском внешней обработки.

Создадим задачу в планировщике Windows со следующей командой запуска в пакетном режиме:


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\Accounting" /N "Admin" /P "Pass" /Execute "C:\Scripts\RunTask.epf" /DisableStartupMessages

Параметр /DisableStartupMessages предотвращает появление модальных окон при старте программы, что гарантирует непрерывную работу задачи в автоматическом режиме.

Диагностика зависших фоновых процессов

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

← На главную