Выполнить регламентное задание вручную. Предназначена для "ручного" немедленного выполнения процедуры регламентного задания
// Предназначена для "ручного" немедленного выполнения процедуры регламентного задания
// либо в сеансе клиента (в файловой ИБ), либо в фоновом задании на сервере (в серверной ИБ).
// Применяется в любом режиме соединения.
// Ручной режим запуска не влияет на выполнение регламентного задания по аварийному
// и основному расписаниям, т.к. не указывается ссылка на регламентное задание у фонового задания.
// Тип ФоновоеЗадание не допускает установки такой ссылки, поэтому для файлового режима применяется
// тоже правило.
//
// Параметры:
// Задание - РегламентноеЗадание, Строка - уникального идентификатора РегламентногоЗадания.
//
// Возвращаемое значение:
// Структура - со свойствами
// * МоментЗапуска - Неопределено, Дата - для файловой ИБ устанавливает переданный момент, как момент запуска
// метода регламентного задания.
// Для серверной ИБ - возвращает момент запуска фонового задания по факту.
// * ИдентификаторФоновогоЗадания - Строка - для серверной ИБ возвращает идентификатор запущенного фонового задания.
//
Функция ВыполнитьРегламентноеЗаданиеВручную(Знач Задание) Экспорт
ВызватьИсключениеЕслиНетПраваАдминистрирования();
УстановитьПривилегированныйРежим(Истина);
ПараметрыВыполнения = ПараметрыВыполненияРегламентногоЗадания();
ПараметрыВыполнения.ПроцедураУжеВыполняется = Ложь;
Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(Задание);
ПараметрыВыполнения.ЗапускВыполнен = Ложь;
СвойстваПоследнегоФоновогоЗадания = СвойстваПоследнегоФоновогоЗаданияВыполненияРегламентногоЗадания(Задание);
Если СвойстваПоследнегоФоновогоЗадания <> Неопределено
И СвойстваПоследнегоФоновогоЗадания.Состояние = СостояниеФоновогоЗадания.Активно Тогда
ПараметрыВыполнения.МоментЗапуска = СвойстваПоследнегоФоновогоЗадания.Начало;
Если ЗначениеЗаполнено(СвойстваПоследнегоФоновогоЗадания.Наименование) Тогда
ПараметрыВыполнения.ПредставлениеФоновогоЗадания = СвойстваПоследнегоФоновогоЗадания.Наименование;
Иначе
ПараметрыВыполнения.ПредставлениеФоновогоЗадания = ПредставлениеРегламентногоЗадания(Задание);
КонецЕсли;
Иначе
НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Запуск вручную: %1'"), ПредставлениеРегламентногоЗадания(Задание));
// Не используются длительные операции, т.к. делается вызов метода регламентного задания.
ФоновоеЗадание = ФоновыеЗадания.Выполнить(Задание.Метаданные.ИмяМетода, Задание.Параметры, Строка(Задание.УникальныйИдентификатор), НаименованиеФоновогоЗадания);
ПараметрыВыполнения.ИдентификаторФоновогоЗадания = Строка(ФоновоеЗадание.УникальныйИдентификатор);
ПараметрыВыполнения.МоментЗапуска = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).Начало;
ПараметрыВыполнения.ЗапускВыполнен = Истина;
КонецЕсли;
ПараметрыВыполнения.ПроцедураУжеВыполняется = НЕ ПараметрыВыполнения.ЗапускВыполнен;
Возврат ПараметрыВыполнения;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ВыполнитьОбработкуПоРегламентномуЗаданию (БСП)
ВыполнитьОбменДаннымиПоРегламентномуЗаданию (БСП)
РегламентноеЗаданиеИспользуется (БСП)
РасписаниеРегламентногоЗадания (БСП)
УстановитьИспользованиеРегламентногоЗадания (БСП)