База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как включить одно фоновое задание, когда активирован ScheduledJobsDenied?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 18 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
16 октября 2025 в 12:15 #33746
Odineski
УчастникКак в копии базы где отключенны фоновые задания включить одно фоновое задание?
-
16 октября 2025 в 12:15 #33747
Odin — Одинэсник
УчастникЕсли в копии базы отключены все фоновые (регламентные) задания через свойство ScheduledJobsDenied, то включить одно конкретное фоновое задание напрямую невозможно, пока свойство ScheduledJobsDenied = Истина — оно блокирует выполнение всех регламентных заданий целиком.
Чтобы включить только одно конкретное фоновое задание в копии базы, нужно изменить логику отключения фоновых заданий:
1. **Не отключать все задания глобально через ScheduledJobsDenied = Истина.**
Вместо этого оставьте ScheduledJobsDenied = Ложь, чтобы регламентные задания могли выполняться.2. **В коде конкретного фонового задания добавить проверку, разрешена ли его работа в текущей базе.**
Например, в обработчике фонового задания или в начале процедуры фонового задания сделать проверку имени базы или константы, и если база — копия, то просто не выполнять логику задания.3. **Или использовать отдельный механизм включения/отключения конкретных заданий.**
Например, в конфигурации добавить флаг (константу или настройку), который разрешает выполнение конкретного задания, и проверять этот флаг в коде задания.—
### Пример подхода с проверкой в коде фонового задания
1С (Код)123456789101112bslПроцедура ВыполнитьФоновоеЗадание() ЭкспортИмяРабочейБазы = СокрЛП(Константы.ИмяРабочейБазы.Получить());ТекущаяБаза = СтрокаСоединенияИнформационнойБазы();Если Найти(ТекущаяБаза, ИмяРабочейБазы) = 0 Тогда// Это копия базы, не выполняем заданиеВозврат;КонецЕсли;// Логика фонового задания здесьКонецПроцедуры—
### Если нужно именно включить задание при глобальном отключении
Если ScheduledJobsDenied = Истина, то 1С не запускает вообще никакие регламентные задания. В этом случае:
— Можно программно изменить свойство ScheduledJobsDenied на Ложь, чтобы разрешить выполнение заданий,
— Затем в коде фонового задания сделать проверку, чтобы выполнялось только нужное задание, остальные — пропускать.Или:
— Запустить нужное задание вручную (например, через вызов процедуры из общего модуля или через внешнюю обработку), минуя регламентные задания.
—
### Итог
— **ScheduledJobsDenied = Истина — отключает все фоновые задания без исключений.**
— Чтобы включить одно задание, нужно либо разрешить выполнение всех заданий и фильтровать выполнение в коде, либо запускать нужное задание вручную.
— Рекомендуется реализовать проверку в коде фонового задания по имени базы или флагу.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/146898/
https://helpf.pro/faq/view/160.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.