ДобавитьЗадание (БСП)

Автор: 1С
ОбщийМодуль.РегламентныеЗаданияСервер
БСП

Добавить задание. Добавляет новое задание в очередь или как регламентное.

// Добавляет новое задание в очередь или как регламентное.
// 
// Параметры: 
//  Параметры - Структура - Параметры добавляемого задания, возможные ключи:
//   * Использование
//   * Метаданные - обязательно для указания
//   * Параметры
//   * Ключ
//   * ИнтервалПовтораПриАварийномЗавершении
//   * Расписание
//   * КоличествоПовторовПриАварийномЗавершении
//
// Возвращаемое значение: 
//  РегламентноеЗадание, СправочникСсылка.ОчередьЗаданий, СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор
//  добавленного задания.
// 
Функция ДобавитьЗадание(Параметры) Экспорт
	
	ВызватьИсключениеЕслиНетПраваАдминистрирования();
	
	ПараметрыЗадания = ОбщегоНазначения.СкопироватьРекурсивно(Параметры);
	
	Если ОбщегоНазначения.РазделениеВключено() Тогда
		
		Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда
			
			Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
				МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
				ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
				ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
			КонецЕсли;
			
			МетаданныеЗадания = ПараметрыЗадания.Метаданные;
			ИмяМетода = МетаданныеЗадания.ИмяМетода;
			ПараметрыЗадания.Вставить("ИмяМетода", ИмяМетода);
			
			ПараметрыЗадания.Удалить("Метаданные");
			ПараметрыЗадания.Удалить("Наименование");
			
			МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
			Задание = МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания);
			СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(Новый Структура("Идентификатор", Задание));
			Для Каждого Задание Из СписокЗаданий Цикл
				Возврат Задание;
			КонецЦикла;
			
		КонецЕсли;
		
	Иначе
		
		МетаданныеЗадания = ПараметрыЗадания.Метаданные;
		Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеЗадания);
		
		Если ПараметрыЗадания.Свойство("Наименование") Тогда
			Задание.Наименование = ПараметрыЗадания.Наименование;
		Иначе
			Задание.Наименование = МетаданныеЗадания.Наименование;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("Использование") Тогда
			Задание.Использование = ПараметрыЗадания.Использование;
		Иначе
			Задание.Использование = МетаданныеЗадания.Использование;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("Ключ") Тогда
			Задание.Ключ = ПараметрыЗадания.Ключ;
		Иначе
			Задание.Ключ = МетаданныеЗадания.Ключ;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("ИмяПользователя") Тогда
			Задание.ИмяПользователя = ПараметрыЗадания.ИмяПользователя;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("ИнтервалПовтораПриАварийномЗавершении") Тогда
			Задание.ИнтервалПовтораПриАварийномЗавершении = ПараметрыЗадания.ИнтервалПовтораПриАварийномЗавершении;
		Иначе
			Задание.ИнтервалПовтораПриАварийномЗавершении = МетаданныеЗадания.ИнтервалПовтораПриАварийномЗавершении;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("КоличествоПовторовПриАварийномЗавершении") Тогда
			Задание.КоличествоПовторовПриАварийномЗавершении = ПараметрыЗадания.КоличествоПовторовПриАварийномЗавершении;
		Иначе
			Задание.КоличествоПовторовПриАварийномЗавершении = МетаданныеЗадания.КоличествоПовторовПриАварийномЗавершении;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("Параметры") Тогда
			Задание.Параметры = ПараметрыЗадания.Параметры;
		КонецЕсли;
		
		Если ПараметрыЗадания.Свойство("Расписание") Тогда
			Задание.Расписание = ПараметрыЗадания.Расписание;
		КонецЕсли;
		
		Задание.Записать();
		
	КонецЕсли;
	
	Возврат Задание;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ДобавитьЗадание (БСП)

Добавить (БСП)

Добавить договор

ДобавитьСтатистическуюИнформацию (БСП)

ДобавитьЗанятуюЛицензию (БСП)

ДобавитьОписаниеОбласти (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз