//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;

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

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

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

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

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

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

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

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

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

//ирПортативный #Если Клиент Тогда
//ирПортативный Контейнер = Новый Структура();
//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
//ирПортативный 	ПолноеИмяФайлаБазовогоМодуля = ирОбщий.ВосстановитьЗначениеЛкс("ирПолноеИмяФайлаОсновногоМодуля");
//ирПортативный 	ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
//ирПортативный КонецЕсли; 
//ирПортативный ирОбщий = ирПортативный.ПолучитьОбщийМодульЛкс("ирОбщий");
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");
//ирПортативный #КонецЕсли

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