Ситуация, когда часть регламентных заданий в 1С выполняется стабильно, а другая часть (например, загрузка курсов валют или самописные задания) висит в статусе «Не определено», является довольно распространенной. Особенно часто это встречается в конфигурациях на базе Библиотеки стандартных подсистем (БСП) и при использовании серверов под управлением Linux. Рассмотрим подробно причины такого поведения и разберем по шагам методы диагностики и решения проблемы.
Прежде чем приступать к сложным манипуляциям с сервером, проанализируем базовые настройки. Если задание выполняется вручную через кнопку «Выполнить сейчас», но не стартует по расписанию, это означает, что программный код задания работоспособен, но планировщик 1С по какой-то причине игнорирует его запуск.
Выясним первую возможную причину — настройки метаданных в конфигураторе. Проверим следующие свойства регламентного задания:
Также важно проверить настройки в консоли кластера серверов 1С. Разберем ситуацию: если в свойствах информационной базы установлена галочка «Блокировка регламентных заданий включена», то ни одно задание не запустится. Однако, если часть заданий все же работает (например, «Обновление индекса»), значит, глобальной блокировки в кластере нет.
Проанализируем критически важный момент для баз на БСП. Когда мы копируем базу или переносим ее на другой сервер, БСП активирует защитный механизм. Это делается для того, чтобы копия базы не начала рассылать реальные уведомления клиентам, не обменивалась данными с боевыми узлами и не загружала курсы валют, нагружая каналы. Система выводит диалог «Информационная база перемещена или является копией».
Если пользователь нажал «Это копия», БСП блокирует выполнение «опасных» заданий. Даже если позже вы передумали, флаг может остаться в системе. Выясним, как это проверить программно. Нам нужно убедиться, что константа ПараметрыРаботыВРабочейДате (или аналогичные регистры в зависимости от версии БСП) не содержит признака копии.
Для сброса этого состояния можно использовать следующий код (в режиме «1С:Предприятие» через внешнюю обработку):
ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована = Ложь;
ОбщегоНазначения.ЗаписатьКонстанту("ПараметрыРаботыПрограммы", "");
После этого при следующем запуске система может снова спросить о статусе базы — необходимо выбрать «Информационная база перемещена» (что подтверждает ее статус как основной).
Рассмотрим специфику Linux, которая часто становится камнем преткновения. Если сервер 1С работает под управлением Linux, планировщик заданий крайне чувствителен к системному времени и правам пользователя usr1cv8.
Проанализируем ситуацию с часовыми поясами. Часто возникает рассинхронизация:
date).
Если планировщик видит разницу во времени, он может ожидать «наступления» времени запуска, которое по факту уже прошло или еще не наступило в одной из подсистем. Убедимся, что на сервере настроен NTP и часовой пояс совпадает во всех точках конфигурации.
Посмотрим на ограничения процессов. В Linux-версии 1С важную роль играет количество рабочих процессов rphost. Если регламентное задание требует значительных ресурсов, а лимиты памяти в настройках кластера установлены слишком жестко, процесс может перезапускаться именно в момент старта задания, из-за чего статус остается «Не определено».
Разберем, почему задание «Загрузка курсов валют» часто не работает автоматически. При ручном запуске («Выполнить сейчас») код выполняется в контексте вашего текущего сеанса под вашими правами доступа к интернету. При автоматическом старте задание выполняется от имени пользователя usr1cv8 на сервере.
Проанализируем необходимые действия:
inetcfg.xml в каталоге настроек сервера 1С.usr1cv8 на Linux должны быть установлены актуальные корневые сертификаты. Без них SSL-соединение будет разорвано, и задание завершится ошибкой, которая не всегда отображается в консоли заданий БСП.В современных версиях БСП реализована собственная «Очередь заданий». Это надстройка над стандартными регламентными заданиями платформы. Если основное платформенное задание, отвечающее за разбор очереди БСП, работает с перебоями, то все «подчиненные» задачи (валюты, рассылки) будут стоять в очереди бесконечно.
Выясним причину через консоль запросов или просмотр регистра сведений ОчередьЗаданий. Если мы видим там записи со статусом «К выполнению», но дата начала постоянно переносится в будущее — проблема в работе планировщика БСП. Попробуем перезапустить службу сервера 1С и очистить кэш сервера (каталоги snaccxt и reg_1541), так как записи о регистрациях заданий могут «залипнуть» в кэше метаданных.
Проанализируем ситуацию, описанную пользователем: задания не работают ночью, но работают днем. Часто это связано с техническим обслуживанием серверов. Если в 3 часа ночи происходит перезагрузка сервера или службы 1cv8, счетчик отработанных заданий сбрасывается.
Рассмотрим порядок действий для диагностики ночных сбоев:
srv1cv83.EXCP (исключения) и scheduled job в момент предполагаемого старта.AllowScheduledJobsPriorTo. Если системный администратор использовал скрипты для блокировки заданий на время бэкапа и не снял блокировку корректно, задания не стартуют.Для окончательного исправления ситуации, если ничего не помогает, рекомендуется следующий радикальный, но эффективный метод:
удалим регламентное задание из конфигурации, сохранимся, а затем создадим его заново с тем же кодом. Это сгенерирует новый UUID задания, что заставит планировщик 1С и механизмы БСП инициализировать его «с чистого листа», игнорируя старые ошибочные записи в системных таблицах базы данных.