Почему не стартует регламентное задание в 1С?

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

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

Проверяем основные настройки в консоли администрирования

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

Рассмотрим порядок действий в консоли:

  1. Откроем консоль администрирования кластера серверов 1С.
  2. Перейдем в свойства нашей информационной базы.
  3. Проверим состояние флажка "Блокировка регламентных заданий включена".

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

Анализируем права доступа и пользователя операционной системы

Проанализируем ситуацию с правами доступа. В клиент-серверном варианте работы регламентные задания выполняются не под текущим пользователем 1С, а под системной учетной записью, от имени которой запущен Агент сервера 1С:Предприятия (обычно это 1C8USR или USR1CV8).

Разберем типичную проблему: задание должно прочитать файл или выгрузить данные в определенную папку на диске. Если у пользователя операционной системы 1C8USR нет прав "Чтение" или "Запись" на этот каталог, задание мгновенно завершится с ошибкой или даже не сможет начать работу. Проверим доступ к ресурсам:

Для проверки доступности файла из контекста сервера можно использовать простую обработку, запущенную "На сервере", которая попытается создать текстовый файл в целевой папке или проверить существование объекта методом НайтиФайлы().

Разбираемся с признаком копии информационной базы

Выясним причину, связанную с современным механизмом защиты платформы. Начиная с версии 8.3.3, платформа отслеживает перемещение или восстановление базы. При первом запуске после восстановления из бэкапа система задает вопрос: "Информационная база перемещена или является копией?".

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

Для исправления ситуации в режиме "1С:Предприятие" (если используется Библиотека Стандартных Подсистем — БСП) необходимо перейти в раздел администрирования и нажать кнопку "Разблокировать регламентные задания" или подтвердить, что база является рабочей.

Проверяем настройки расписания и активность в режиме Предприятия

Рассмотрим распространенное заблуждение о расписании в Конфигураторе. Настройки расписания в Конфигураторе являются лишь шаблоном "по умолчанию". Проанализируем реальное состояние расписания в режиме "1С:Предприятие".

В современных конфигурациях управление заданиями осуществляется через стандартную обработку "Регламентные и фоновые задания". Посмотрим на следующие параметры:

  1. Установлен ли флаг "Включено" для конкретного задания.
  2. Верно ли указано расписание. Обратите внимание на часовые пояса сервера и клиента.
  3. Указан ли конкретный пользователь, от имени которого должно выполняться задание (если это предусмотрено логикой программы).

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

Требования функциональности и распределение в кластере

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

Если настроено правило, запрещающее выполнение фоновых заданий на всех доступных рабочих серверах, то планировщик не сможет найти свободный процесс для запуска. Проверьте настройки в консоли администрирования в разделе "Кластеры -> Рабочие серверы -> Требования назначения функциональности". Убедитесь, что для объекта "BackgroundJob" нет запрещающих правил.

Технические нюансы программного кода

Разберем требования к программному коду, который вызывается заданием. Метод (процедура), указанный в регламентном задании, должен удовлетворять следующим критериям:

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


// ОШИБОЧНЫЙ КОД для регламентного задания
Процедура ВыполнитьОбменДанными() Экспорт
    Если Вопрос("Начать обмен?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
        // Этот код никогда не сработает в фоне
    КонецЕсли;
КонецПроцедуры

При попытке вызвать Вопрос(), Предупреждение() или открыть форму, задание завершится аварийно, так как у фонового процесса нет графического интерфейса.

Диагностика через Журнал регистрации и Технологический журнал

Если задание все равно не стартует, перейдем к глубокой диагностике. Посмотрим в Журнал регистрации, установив фильтр по событию "Фоновое задание".

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

В самых сложных случаях настроим Технологический журнал. Для отслеживания проблем с фоновыми заданиями достаточно минимального файла logcfg.xml:


<config xmlns="http://v8.1c.ru/v8/tech-log">
  <dump location="C:\dumps" create="false" type="0"/>
  <log location="C:\logs\background" history="1">
    <event>
      <eq property="Name" value="EXCP"/>
    </event>
    <event>
      <eq property="Name" value="backgroundJob"/>
    </event>
    <property name="all"/>
  </log>
</config>

Проанализируем полученные логи. Ищите события EXCP, которые происходят в момент предполагаемого запуска задания. Там может содержаться информация о нехватке лицензий, ошибках инициализации сеанса или проблемах с правами на уровне ОС, которые не попадают в обычный журнал регистрации 1С.

Особенности файлового режима

Хотя мы рассматривали серверный вариант, кратко разберем файловый режим. В файловой базе для работы регламентных заданий требуется:

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

Подводя итог, можно сказать, что в 90% случаев проблема кроется либо в галочке блокировки в консоли, либо в правах доступа системной учетной записи сервера к файлам и каталогам. Тщательно проверьте эти моменты, и ваши регламентные задания будут работать как часы.

← На главную