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