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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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