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