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

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

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

Причина 1. Запуск выделенного сеанса с ключом AllowExecuteScheduledJobs

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

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

  1. Создадим в базе данных отдельного служебного пользователя с полными административными правами (например, РоботРЗ) и зададим ему сложный пароль.
  2. Откроем Планировщик заданий Windows на компьютере, где расположен файл 1Cv8.1CD, и создадим новую задачу, запускаемую при старте операционной системы от имени системной учетной записи или сервисного пользователя.
  3. В качестве действия укажем запуск исполняемого файла 1cv8.exe с параметрами командной строки:

Посмотрим на пример строки запуска выделенного сеанса:


"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\Trade" /N "РоботРЗ" /P "StrongPass123" /AllowExecuteScheduledJobs -Force /DisableStartupMessages

Разберем параметры запуска подробнее:

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

Причина 2. Настройки веб-публикации и файл default.vrd

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

Проанализируем файл конфигурации веб-публикации default.vrd, расположенный в каталоге публикации веб-сервера:

  1. Откроем файл default.vrd в текстовом редакторе.
  2. Найдем корневой узел <point ...> и проверим наличие атрибута allowexecutescheduledjobs.
  3. Если значение атрибута установлено в off или атрибут отсутствует, веб-сервер игнорирует регламентные задания. Установим значение force:

Пример фрагмента файла default.vrd:


<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/trade"
       ib="File=&quot;C:\Bases\Trade&quot;;"
       allowexecutescheduledjobs="force">
</point>

Также этот параметр можно включить штатно через Конфигуратор: откроем меню Администрирование → Публикация на веб-сервере, отметим флаг Фоновые задания в файловом варианте и нажмем кнопку Опубликовать, после чего перезапустим службу веб-сервера Apache.

Важное ограничение: веб-сервер выполняет регламентные задания только в то время, когда в пуле рабочих процессов есть активность (обращения клиентов). Если ночью пользователи не работают с базой, регламентные задания веб-сервером запускаться не будут. Для круглосуточных задач надежнее использовать выделенный сеанс через Планировщик задач Windows.

Причина 3. Блокировка работы с внешними ресурсами (механизм БСП)

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

Проверим состояние блокировки в пользовательском интерфейсе:

  1. Зайдем в информационную базу под пользователем с полными правами.
  2. Перейдем в раздел Администрирование (или НСИ и администрирование) → Обслуживание → Регламентные операции.
  3. Если в верхней части панели отображается предупреждение о работе в перемещенной копии базы данных, нажмем кнопку Разблокировать работу с внешними ресурсами или выберем вариант Это рабочая база.

Причина 4. Зависшие файлы блокировок и права доступа к каталогу

При аварийных сбоях и внезапных перезагрузках операционной системы в папке с базой данных могут остаться маркеры некорректно завершенных сессий, которые мешают платформе захватывать таблицы для планировщика:

  1. Остановим службу Apache и закроем все запущенные процессы 1cv8.exe и httpd.exe.
  2. Перейдем в каталог с информационной базой и проверим наличие временных файлов с расширениями .1CLck и .cgr. При отсутствии активных подключений удалим эти служебные файлы.
  3. Проверим права учетной записи, от имени которой запущена служба Apache (обычно SYSTEM или локальный сервис). Учетная запись должна обладать правами Полный доступ (чтение, запись, изменение) на всю папку с базой данных и вложенные каталоги. Нехватка прав на создание временных файлов часто приводит к незаметному падению фоновых потоков.
  4. Запустим службу веб-сервера и проверим системный Журнал регистрации 1С с отбором по событиям с уровнем Ошибка и Предупреждение.
← На главную