Odin | База знаний 1С

Как программно пров...
 

Как программно проверить выполнение регламентного задания в 1С?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

программно проверить, что выполняется определенное регламентное задание



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

Вот пример кода, который проверяет, выполняется ли конкретное регламентное задание по его уникальному идентификатору:

1C
Процедура ПроверитьРегламентноеЗадание(ИдентификаторРегламентногоЗадания)
    // Получаем список всех фоновых заданий
    ФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания();
    
    // Перебираем все фоновые задания
    Для Каждого Задание Из ФоновыеЗадания Цикл
        // Проверяем, является ли задание регламентным и совпадает ли его идентификатор
        Если Задание.ТипЗадания = ТипЗадания.Регламентное И Задание.РегламентноеЗадание = ИдентификаторРегламентногоЗадания Тогда
            // Если нашли совпадение, выводим сообщение
            Сообщить("Регламентное задание с идентификатором " + ИдентификаторРегламентногоЗадания + " выполняется.");
            Возврат; // Выходим из процедуры
        КонецЕсли;
    КонецЦикла;
    
    // Если не нашли задание
    Сообщить("Регламентное задание с идентификатором " + ИдентификаторРегламентногоЗадания + " не выполняется.");
КонецПроцедуры

### Объяснение кода:
1. **Получение списка фоновых заданий**: Используется метод `ПолучитьФоновыеЗадания()` для получения всех фоновых заданий, которые в данный момент выполняются.
2. **Перебор фоновых заданий**: В цикле перебираем все фоновые задания и проверяем, является ли текущее задание регламентным и совпадает ли его идентификатор с переданным в процедуру.
3. **Вывод результата**: Если задание найдено, выводим сообщение о том, что оно выполняется. Если нет, сообщаем, что задание не выполняется.

Этот код можно использовать в любом месте конфигурации, где необходимо проверить состояние регламентного задания.



   
ОтветитьЦитата