ВыбратьРолиСКоличествомИсполнителей (БСП)

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

Выбрать роли количеством исполнителей. Выбрать список ролей, которые могут быть назначены в ОсновнойОбъектАдресации,

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

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

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

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

ЕстьИсполнителиРоли (БСП)

ВыбратьИсполнителя (БСП)

ЗаполнитьОтветственногоЗаКонтрольИсполнения (БСП)

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

ПриВыбореИсполнителя (БСП)

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

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

СформироватьДанныеВыбораИсполнителя (БСП)

1С Менеджер конфигураций