#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Результат.Добавить("КраткоеПредставление");
Результат.Добавить("Комментарий");
Результат.Добавить("ВнешняяРоль");
Результат.Добавить("УзелОбмена");
Возврат Результат
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда
ТекущийПользователь = ВнешниеПользователи.ТекущийВнешнийПользователь();
ЗначениеРеквизита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь, "ОбъектАвторизации");
ОбъектАвторизации = ?(ЗначениеРеквизита <> Неопределено,
Справочники[ЗначениеРеквизита.Метаданные().Имя].ПустаяСсылка(),
Справочники.Пользователи.ПустаяСсылка());
Иначе
ОбъектАвторизации = Справочники.Пользователи.ПустаяСсылка();
КонецЕсли;
ФрагментыТекстаПоискДляДополнительныхЯзыков = Новый Массив;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
ИнформацияОЯзыках = МодульМультиязычностьСервер.СведенияОЯзыках();
ШаблонаФрагментаЗапроса = "РолиИсполнителей.%1 ПОДОБНО &СтрокаПоиска СПЕЦСИМВОЛ ""~""";
Для Каждого ДополнительныйЯзык Из ИнформацияОЯзыках.Используется Цикл
Если ДополнительныйЯзык.Значение Тогда
ФрагментыТекстаПоискДляДополнительныхЯзыков.Добавить(
СтрШаблон(ШаблонаФрагментаЗапроса, "Наименование" + ДополнительныйЯзык.Ключ));
КонецЕсли;
КонецЦикла;
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 20
| РолиИсполнителей.Ссылка КАК Ссылка
|ИЗ
| Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначение
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК РолиИсполнителей
| ПО РолиИсполнителейНазначение.Ссылка = РолиИсполнителей.Ссылка
|ГДЕ
| РолиИсполнителейНазначение.ТипПользователей = &Тип
| И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска СПЕЦСИМВОЛ ""~""
| ИЛИ &ПоискДляДополнительныхЯзыков
| ИЛИ РолиИсполнителей.Код ПОДОБНО &СтрокаПоиска СПЕЦСИМВОЛ ""~"")
| И НЕ РолиИсполнителей.Ссылка ЕСТЬ NULL";
Если ФрагментыТекстаПоискДляДополнительныхЯзыков.Количество() > 0 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоискДляДополнительныхЯзыков", СтрСоединить(ФрагментыТекстаПоискДляДополнительныхЯзыков, " ИЛИ "));
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоискДляДополнительныхЯзыков", "ЛОЖЬ");
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Тип", ОбъектАвторизации);
Запрос.УстановитьПараметр("СтрокаПоиска", "%" + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(Параметры.СтрокаПоиска) + "%");
РезультатЗапроса = Запрос.Выполнить().Выбрать();
ДанныеВыбора = Новый СписокЗначений;
Пока РезультатЗапроса.Следующий() Цикл
ДанныеВыбора.Добавить(РезультатЗапроса.Ссылка, РезультатЗапроса.Ссылка);
КонецЦикла;
КонецПроцедуры
#КонецЕсли
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Истина;
КонецПроцедуры
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "ОтветственныйЗаКонтрольИсполнения";
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование",
"ru='Координатор выполнения задач'", КодыЯзыков);
Иначе
Элемент.Наименование = НСтр("ru = 'Координатор выполнения задач'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецЕсли;
Элемент.ИспользуетсяБезОбъектовАдресации = Истина;
Элемент.ИспользуетсяСОбъектамиАдресации = Истина;
Элемент.ВнешняяРоль = Ложь;
Элемент.Код = "000000001";
Элемент.КраткоеПредставление = НСтр("ru = '000000001'", ОбщегоНазначения.КодОсновногоЯзыка());
Элемент.ТипыОсновногоОбъектаАдресации = ПланыВидовХарактеристик.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации;
Назначение = ТабличныеЧасти.Назначение.Скопировать();
ЭлементТЧ = Назначение.Добавить();
ЭлементТЧ.ТипПользователей = Справочники.Пользователи.ПустаяСсылка();
Элемент.Назначение = Назначение;
БизнесПроцессыИЗадачиПереопределяемый.ПриНачальномЗаполненииРолейИсполнителей(КодыЯзыков, Элементы, ТабличныеЧасти);
КонецПроцедуры
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
БизнесПроцессыИЗадачиПереопределяемый.ПриНачальномЗаполненииРолиИсполнителя(Объект, Данные, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ОбновлениеИнформационнойБазы.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, Метаданные.Справочники.РолиИсполнителей);
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
НастройкиЗаполнения = ОбновлениеИнформационнойБазы.НастройкиЗаполнения();
ОбновлениеИнформационнойБазы.ЗаполнитьЭлементыНачальнымиДанными(Параметры, Метаданные.Справочники.РолиИсполнителей, НастройкиЗаполнения);
КонецПроцедуры
#КонецОбласти
#КонецЕсли