Функция СохраняемаяНастройкаФормы(выхНаименование, выхИменаСвойств) Экспорт 
	выхИменаСвойств = "Форма.ИспользоватьAutomation, Форма.ВременноПредоставитьПравоРазработчикИР, Форма.ДополнительныеПараметры, Форма.РежимЗапуска, Форма.ОчисткаКэшаКлиентСерверныхВызовов, Форма.КодРазрешения, Форма.ПодключитьОтладчик, Форма.СообщитьКоманднуюСтроку, Форма.ОткрытьПортативныеИнструменты, Форма.ПодменитьПарольНаВремяЗапуска, Форма.РежимИнтерфейсаТакси, Форма.РазделениеДанных, Форма.ОтключитьЗащитуОтОпасныхДействийНаВремяЗапуска, Форма.ЗапускОтИмениАдминистратора, Форма.КодЯзыкаСистемы, Форма.ЯзыкКонфигурации, Форма.ПараметрЗапуска, Форма.ПользовательДобавляемыхРолей";
	Возврат Неопределено;
КонецФункции

Процедура ОсновныеДействияФормыСохранитьНастройки(Кнопка)
	
	ирКлиент.ВыбратьИСохранитьНастройкуФормыЛкс(ЭтаФорма);
	
КонецПроцедуры

Процедура ОсновныеДействияФормыЗагрузитьНастройки(Кнопка)
	
	ирКлиент.ВыбратьИЗагрузитьНастройкуФормыЛкс(ЭтаФорма);

КонецПроцедуры

Процедура ОсновныеДействияФормыОК(Кнопка)
	
	ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ПользовательИБ.УникальныйИдентификатор);
	СтруктураПользователя = ирКлиент.УстановитьВременныеСвойстваПользователюИБЛкс(ПользовательИБ, ПодменитьПарольНаВремяЗапуска, ВременноПредоставитьПравоРазработчикИР,
		ОтключитьЗащитуОтОпасныхДействийНаВремяЗапуска, ЯзыкКонфигурации, ПользовательДобавляемыхРолей);
	Если СтруктураПользователя = Неопределено Тогда
		Возврат;
	КонецЕсли;
	Если ИспользоватьAutomation Тогда
		ТипComОбъекта = "Application";
	Иначе
		ТипComОбъекта = "";
	КонецЕсли;
	Если ПодменитьПарольНаВремяЗапуска Тогда
		ЗаписьЖурналаРегистрации(ИмяСобытияЗапускаПодПользователемДляЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,,, "Запущен сеанс под пользователем """ + ПользовательИБ.Имя + """ с временной подменой пароля");
	КонецЕсли;
	Попытка
		ирОбщий.ЗапуститьСеансПодПользователемЛкс(СтруктураПользователя.Имя, СтруктураПользователя.Пароль, ТипComОбъекта, РежимЗапуска, КодРазрешения, СообщитьКоманднуюСтроку,
			ОткрытьПортативныеИнструменты, ОчисткаКэшаКлиентСерверныхВызовов, ПодключитьОтладчик, ДополнительныеПараметры, РежимИнтерфейсаТакси, ЗапускОтИмениАдминистратора,
			РазделениеДанных, Истина, КодЯзыкаСистемы, ПараметрЗапуска);
	Исключение
		ирКлиент.ВернутьПостоянныеСвойстваПользователюИБЛкс(СтруктураПользователя);
		ВызватьИсключение;
	КонецПопытки;
	ирКлиент.ВернутьПостоянныеСвойстваПользователюИБЛкс(СтруктураПользователя);
	ирКлиент.ОповеститьФормыПодсистемыЛкс("ИспользованОбъект", ПользовательИБ);

КонецПроцедуры

Функция ИмяСобытияЗапускаПодПользователемДляЖурналаРегистрации()
	
	Возврат "ИР. Запуск под пользователем";

КонецФункции

Процедура ПриОткрытии()
	
	ирКлиент.Форма_ПриОткрытииЛкс(ЭтаФорма);
	ЭлементыФормы.ИспользоватьAutomation.Доступность = ПравоДоступа("Automation", Метаданные, ПользовательИБ);
	Если Не ЭлементыФормы.ИспользоватьAutomation.Доступность Тогда
		ЭтаФорма.ИспользоватьAutomation = Ложь;
	КонецЕсли; 
	ЭлементыФормы.РежимИнтерфейсаТакси.Доступность = Истина
		И ирКэш.НомерИзданияПлатформыЛкс() > "82"
		И Метаданные.РежимСовместимостиИнтерфейса = Метаданные.СвойстваОбъектов.РежимСовместимостиИнтерфейса.Версия8_2РазрешитьТакси;
	Если Не ЭлементыФормы.РежимИнтерфейсаТакси.Доступность Тогда
		ЭтаФорма.РежимИнтерфейсаТакси = Ложь;
	КонецЕсли; 
	Если ПользовательИБ <> Неопределено Тогда
		Заголовок = Заголовок + " - " + ПользовательИБ.Имя;
		//Если ПользовательИБ.РежимЗапуска = РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение Тогда
		//	ЭтаФорма.РежимЗапуска = "ОбычноеПриложение";
		//ИначеЕсли ПользовательИБ.РежимЗапуска = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Тогда
		//	ЭтаФорма.РежимЗапуска = "УправляемоеПриложениеТолстый";
		//КонецЕсли; 
	КонецЕсли; 
	СписокЯзыков = ЭлементыФормы.ЯзыкКонфигурации.СписокВыбора;
	Для Каждого МетаЯзык Из Метаданные.Языки Цикл
		СписокЯзыков.Добавить(МетаЯзык.Имя, МетаЯзык.Представление());
	КонецЦикла;
	СписокЯзыков.СортироватьПоПредставлению();
	ЭлементыФормы.ПодменитьПарольНаВремяЗапуска.Подсказка = ЭлементыФормы.ПодменитьПарольНаВремяЗапуска.Подсказка + Символы.ПС
		+ "Отражается в журнале регистрации событием """ + ИмяСобытияЗапускаПодПользователемДляЖурналаРегистрации() + """";
	
КонецПроцедуры

Процедура ДополнительныеПараметрыНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
	
	ирОбщий.ПолеВводаСИсториейВыбора_ОбновитьСписокЛкс(Элемент, ЭтаФорма);

КонецПроцедуры

Процедура ДополнительныеПараметрыПриИзменении(Элемент)
	
	ирКлиент.ПолеВводаСИсториейВыбора_ПриИзмененииЛкс(Элемент, ЭтаФорма);

КонецПроцедуры

Процедура ИспользоватьAutomationПриИзменении(Элемент)
	
	ОбновитьДоступность();
	
КонецПроцедуры

Процедура ОбновитьДоступность()
	
	ЭлементыФормы.ДополнительныеПараметры.Доступность = Не ИспользоватьAutomation;
	ЭлементыФормы.ЗапускОтИмениАдминистратора.Доступность = Не ИспользоватьAutomation;
	
КонецПроцедуры

Процедура ПриЗакрытии()
	
	ирКлиент.Форма_ПриЗакрытииЛкс(ЭтаФорма);

КонецПроцедуры

Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
	
	ирКлиент.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);

КонецПроцедуры

Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт 
	
	ирКлиент.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);

КонецПроцедуры

Процедура ПараметрЗапускаНачалоВыбора(Элемент, СтандартнаяОбработка)
	
	ирКлиент.ПараметрЗапускаНачалоВыбораЛкс(ЭтаФорма, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

Процедура ПользовательРолейНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
	ирОбщий.ПолеВводаСИсториейВыбора_ОбновитьСписокЛкс(Элемент, ЭтаФорма);
КонецПроцедуры

Процедура ПользовательРолейНачалоВыбора(Элемент, СтандартнаяОбработка)
	ирКлиент.ПолеВводаПользователя_НачалоВыбораЛкс(Элемент, СтандартнаяОбработка);
КонецПроцедуры

Процедура ПользовательРолейПриИзменении(Элемент)
	ирКлиент.ПолеВводаСИсториейВыбора_ПриИзмененииЛкс(Элемент, ЭтаФорма);
КонецПроцедуры

ирКлиент.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирРедакторПользователей.Форма.ЗапускПодПользователем");
ЭтаФорма.ПодключитьОтладчик = Истина;
ЭтаФорма.ПодменитьПарольНаВремяЗапуска = Истина;
ЭтаФорма.ОтключитьЗащитуОтОпасныхДействийНаВремяЗапуска = Истина;
ЭтаФорма.ВременноПредоставитьПравоРазработчикИР = Не ирКэш.ЛиПортативныйРежимЛкс();
ЭтаФорма.ОткрытьПортативныеИнструменты = ирКэш.ЛиПортативныйРежимЛкс();
ЭлементыФормы.ВременноПредоставитьПравоРазработчикИР.Доступность = Не ирКэш.ЛиПортативныйРежимЛкс();
ЭлементыФормы.ОткрытьПортативныеИнструменты.Доступность = ирКэш.ЛиПортативныйРежимЛкс();