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

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

Ситуация, когда часть регламентных заданий в 1С выполняется стабильно, а другая часть (например, загрузка курсов валют или самописные задания) висит в статусе «Не определено», является довольно распространенной. Особенно часто это встречается в конфигурациях на базе Библиотеки стандартных подсистем (БСП) и при использовании серверов под управлением Linux. Рассмотрим подробно причины такого поведения и разберем по шагам методы диагностики и решения проблемы.

Анализ состояния системы и первичная проверка

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

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

  1. Использование — флаг должен быть установлен. Если он снят, задание никогда не будет инициировано планировщиком.
  2. Предопределенное — если задание должно создаваться автоматически при запуске системы, этот флаг должен стоять.
  3. Расписание — убедимся, что оно заполнено корректно и не содержит логических ошибок (например, окончание периода раньше начала).

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

Механизм защиты БСП при перемещении информационной базы

Проанализируем критически важный момент для баз на БСП. Когда мы копируем базу или переносим ее на другой сервер, БСП активирует защитный механизм. Это делается для того, чтобы копия базы не начала рассылать реальные уведомления клиентам, не обменивалась данными с боевыми узлами и не загружала курсы валют, нагружая каналы. Система выводит диалог «Информационная база перемещена или является копией».

Если пользователь нажал «Это копия», БСП блокирует выполнение «опасных» заданий. Даже если позже вы передумали, флаг может остаться в системе. Выясним, как это проверить программно. Нам нужно убедиться, что константа ПараметрыРаботыВРабочейДате (или аналогичные регистры в зависимости от версии БСП) не содержит признака копии.

Для сброса этого состояния можно использовать следующий код (в режиме «1С:Предприятие» через внешнюю обработку):


ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована = Ложь;
ОбщегоНазначения.ЗаписатьКонстанту("ПараметрыРаботыПрограммы", "");

После этого при следующем запуске система может снова спросить о статусе базы — необходимо выбрать «Информационная база перемещена» (что подтверждает ее статус как основной).

Особенности работы планировщика на Linux-серверах

Рассмотрим специфику Linux, которая часто становится камнем преткновения. Если сервер 1С работает под управлением Linux, планировщик заданий крайне чувствителен к системному времени и правам пользователя usr1cv8.

Проанализируем ситуацию с часовыми поясами. Часто возникает рассинхронизация:

Если планировщик видит разницу во времени, он может ожидать «наступления» времени запуска, которое по факту уже прошло или еще не наступило в одной из подсистем. Убедимся, что на сервере настроен NTP и часовой пояс совпадает во всех точках конфигурации.

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

Проблема доступа к внешним ресурсам и прокси-серверу

Разберем, почему задание «Загрузка курсов валют» часто не работает автоматически. При ручном запуске («Выполнить сейчас») код выполняется в контексте вашего текущего сеанса под вашими правами доступа к интернету. При автоматическом старте задание выполняется от имени пользователя usr1cv8 на сервере.

Проанализируем необходимые действия:

  1. Настройка прокси: Если сервер находится за прокси-сервером, настройки в интерфейсе 1С должны быть прописаны для всех пользователей. Проверим файл inetcfg.xml в каталоге настроек сервера 1С.
  2. Сертификаты: Для загрузки данных по протоколу HTTPS (как это делает ЦБ РФ) в хранилище сертификатов пользователя usr1cv8 на Linux должны быть установлены актуальные корневые сертификаты. Без них SSL-соединение будет разорвано, и задание завершится ошибкой, которая не всегда отображается в консоли заданий БСП.

Очередь заданий БСП и «залипание» планировщика

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

Выясним причину через консоль запросов или просмотр регистра сведений ОчередьЗаданий. Если мы видим там записи со статусом «К выполнению», но дата начала постоянно переносится в будущее — проблема в работе планировщика БСП. Попробуем перезапустить службу сервера 1С и очистить кэш сервера (каталоги snaccxt и reg_1541), так как записи о регистрациях заданий могут «залипнуть» в кэше метаданных.

Технические перезагрузки и ночные окна

Проанализируем ситуацию, описанную пользователем: задания не работают ночью, но работают днем. Часто это связано с техническим обслуживанием серверов. Если в 3 часа ночи происходит перезагрузка сервера или службы 1cv8, счетчик отработанных заданий сбрасывается.

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

  1. Проверим логи системного администратора на предмет перезагрузки демона srv1cv83.
  2. Посмотрим в технологический журнал (ТЖ) 1С, если он настроен. Нас интересуют события EXCP (исключения) и scheduled job в момент предполагаемого старта.
  3. Проверим параметр кластера AllowScheduledJobsPriorTo. Если системный администратор использовал скрипты для блокировки заданий на время бэкапа и не снял блокировку корректно, задания не стартуют.

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

← На главную