СоздатьЗаданияОчередиПоШаблонамВТекущейОбласти (БСП)

Автор: 1С
ОбщийМодуль.ОчередьЗаданийСлужебныйРазделениеДанных
БСП

Создать задания очереди по шаблонам текущей области. Создает в текущей области данных задания по шаблонам.

// Создает в текущей области данных задания по шаблонам.
Процедура СоздатьЗаданияОчередиПоШаблонамВТекущейОбласти() Экспорт
	
	Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда
		Возврат;
	КонецЕсли;
	
	НачатьТранзакцию();
	Попытка
		Блокировка = Новый БлокировкаДанных;
		Блокировка.Добавить("Справочник.ОчередьЗаданийОбластейДанных");
		Блокировка.Заблокировать();
		
		Запрос = Новый Запрос;
		Запрос.Текст =
		"ВЫБРАТЬ
		|	Очередь.Ссылка КАК Идентификатор,
		|	Шаблоны.Ссылка КАК Шаблон,
		|	ЕСТЬNULL(Очередь.ДатаНачалаПоследнегоЗапуска, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнегоЗапуска,
		|	ЧасовыеПояса.Значение КАК ЧасовойПояс,
		|	Шаблоны.Расписание КАК Расписание,
		|	Шаблоны.Использование КАК Использование,
		|	Шаблоны.Ключ КАК Ключ
		|ИЗ
		|	Справочник.ШаблоныЗаданийОчереди КАК Шаблоны
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОчередьЗаданийОбластейДанных КАК Очередь
		|		ПО Шаблоны.Ссылка = Очередь.Шаблон
		|		ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса
		|		ПО (ИСТИНА)";
		Результат = Запрос.Выполнить();
		Выборка = Результат.Выбрать();
		Пока Выборка.Следующий() Цикл
			
			Если ЗначениеЗаполнено(Выборка.Идентификатор) Тогда
				Задание = Выборка.Идентификатор.ПолучитьОбъект();
			Иначе
				Задание = Справочники.ОчередьЗаданийОбластейДанных.СоздатьЭлемент();
				Задание.Шаблон = Выборка.Шаблон;
			КонецЕсли;
			
			Задание.Использование = Выборка.Использование;
			Задание.Ключ = Выборка.Ключ;
			Задание.ЗапланированныйМоментЗапуска = 
				ОчередьЗаданийСлужебный.ПолучитьЗапланированныйМоментЗапускаЗадания(Выборка.Расписание.Получить(), 
					Выборка.ЧасовойПояс, 
					Выборка.ДатаНачалаПоследнегоЗапуска);
					
			Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда
				Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано;
			Иначе
				Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеЗапланировано;
			КонецЕсли;
			
			Задание.Записать();
			
		КонецЦикла;
		
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;
	
КонецПроцедуры

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

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

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

ОбновитьЗаданияОчередиПоШаблонам (БСП)

ШаблоныЗаданийОчереди (БСП)

ШаблонПоИмени (БСП)

ПриПолученииСпискаШаблонов (БСП)

ЗаполнитьОчередьИзвлеченияТекста (БСП)

СоздатьВременнуюТаблицуРегистраторовРегистраДляОбработки (БСП)

СоздатьВременнуюТаблицуСсылокДляОбработки (БСП)

СоздатьШаблон (БСП)

ОбработатьОчередьЗаданий (БСП)

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