#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.РежимВыбора Тогда
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ВыборПодбор");
КонецЕсли;
Если Параметры.РежимВыбора Тогда
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ссылка", УправлениеДоступом.ПрофильАдминистратор(),
ВидСравненияКомпоновкиДанных.НеРавно, , Истина);
Элементы.Список.ВыборГруппИЭлементов = Параметры.ВыборГруппИЭлементов;
АвтоЗаголовок = Ложь;
Если Параметры.ЗакрыватьПриВыборе = Ложь Тогда
Элементы.Список.МножественныйВыбор = Истина;
Элементы.Список.РежимВыделения = РежимВыделенияТаблицы.Множественный;
Заголовок = НСтр("ru = 'Подбор профилей групп доступа'");
Иначе
Заголовок = НСтр("ru = 'Выбор профиля групп доступа'");
КонецЕсли;
Иначе
Элементы.Список.РежимВыбора = Ложь;
КонецЕсли;
ПоказатьПрофили = ?(Параметры.ПрофилиСРолямиПомеченнымиНаУдаление, "Устаревшие", "ВсеПрофили");
Если Не Параметры.РежимВыбора Тогда
УстановитьОтбор();
Иначе
Элементы.ПоказатьПрофили.Видимость = Ложь;
КонецЕсли;
Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
ПараметрыРазмещения = МодульПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.КоманднаяПанель;
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ПоказатьПрофилиПриИзменении(Элемент)
УстановитьОтбор();
КонецПроцедуры
&НаКлиенте
Процедура ВидПользователейНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВыбораНазначения", ЭтотОбъект);
ПользователиСлужебныйКлиент.ВыбратьНазначение(ЭтотОбъект,
НСтр("ru = 'Выбор назначения профилей'"), Истина, Истина, ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ВидПользователейОчистка(Элемент, СтандартнаяОбработка)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ссылка.Назначение.ТипПользователей", , , , Ложь);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
СписокПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Обновить(Команда)
ОбновитьНаСервере();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОбновитьНаСервере()
УстановитьОтбор();
Элементы.Список.Обновить();
КонецПроцедуры
&НаСервере
Процедура УстановитьОтбор()
Если ПоказатьПрофили = "Устаревшие" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список,
"Ссылка",
Справочники.ПрофилиГруппДоступа.НесовместимыеПрофилиГруппДоступа(),
ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список,
"Ссылка", , , , Ложь);
КонецЕсли;
Если ПоказатьПрофили = "Поставляемые" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список,
"Ссылка.ИдентификаторПоставляемыхДанных",
ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор(),
ВидСравненияКомпоновкиДанных.НеРавно, , Истина);
ИначеЕсли ПоказатьПрофили = "Непоставляемые" Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список,
"Ссылка.ИдентификаторПоставляемыхДанных",
ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор(),
ВидСравненияКомпоновкиДанных.Равно, , Истина);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список,
"Ссылка.ИдентификаторПоставляемыхДанных", , , , Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораНазначения(МассивТипов, ДополнительныеПараметры) Экспорт
Если МассивТипов.Количество() <> 0 Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список,
"Ссылка.Назначение.ТипПользователей",
МассивТипов,
ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ссылка.Назначение.ТипПользователей", , , , Ложь);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СписокПриИзмененииНаСервере()
УправлениеДоступомСлужебный.ЗапуститьОбновлениеДоступа();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
#КонецОбласти