ГруппаИсполнителейЗадач (БСП)

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

Группа исполнителей задач. Получить группу исполнителей задач, которая соответствует реквизитам адресации.

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

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

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

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

ГруппыИсполнителейЗадач (БСП)

ИсполнительСтрокой (БСП)

ОбновитьПользователейГруппИсполнителей (БСП)

ПроконтролироватьЗадачи (БСП)

УведомитьИсполнителейОНовыхЗадачах (БСП)

ПриОпределенииГруппИсполнителей (БСП)

ЭтоЗадачаИсполнителю (БСП)

ПеренаправитьЗадачи (БСП)

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