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