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

Функция ПолучитьРезультат()
	
	Возврат Новый ХранилищеЗначения(Значение);

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

Процедура ПриОткрытии()
	
	ирКлиент.Форма_ПриОткрытииЛкс(ЭтаФорма);
	Если ТипЗнч(НачальноеЗначениеВыбора) <> Тип("ХранилищеЗначения") Тогда
		НачальноеЗначениеВыбора = Новый ХранилищеЗначения(Неопределено);
	КонецЕсли; 
	ирКлиент.ФормаОбъекта_ОбновитьЗаголовокЛкс(ЭтаФорма);
	ЭтаФорма.Значение = НачальноеЗначениеВыбора.Получить();
	ЗначениеПриИзменении();
	ЭлементыФормы.Значение.ОграничениеТипа = ирОбщий.ОписаниеТиповВсеРедактируемыеТипыЛкс();
	ЭлементыФормы.Значение.Значение = Значение;
	ЭлементыФормы.Значение.КнопкаОткрытия = Истина; 
	#Если Сервер И Не Сервер Тогда
		АвтоОткрытиеЗначения();
	#КонецЕсли
	ПодключитьОбработчикОжидания("АвтоОткрытиеЗначения", 0.1, Истина);

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

Процедура АвтоОткрытиеЗначения()
	
	Если Ложь
		Или ирОбщий.ЛиКоллекцияЛкс(Значение)
		Или ТипЗнч(Значение) = Тип("ТабличныйДокумент")
		Или ТипЗнч(Значение) = Тип("Картинка")
		Или ТипЗнч(Значение) = Тип("СхемаКомпоновкиДанных")
	Тогда
		Если ТолькоПросмотр Тогда 
			ЗначениеОткрытие();
		Иначе
			ЗначениеНачалоВыбора();
		КонецЕсли;
	КонецЕсли;

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

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

Процедура КлсКомандаНажатие(Кнопка) Экспорт 
	
	ирКлиент.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);
	
КонецПроцедуры

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

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

Процедура ЗначениеПриИзменении(Элемент = Неопределено)
	
	Если Элемент <> Неопределено Тогда
		ЭтаФорма.Значение = ЭлементыФормы.Значение.Значение;
	КонецЕсли; 
	ЭтаФорма.ТипЗначения = ТипЗнч(Значение);
	ПодключитьОбработчикОжидания("ОбновитьРазмер", 0.1, Истина);
	
КонецПроцедуры

Процедура ОбновитьРазмер()
	
	ЭтаФорма.Размер = ирОбщий.РазмерЗначенияЛкс(Значение);

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

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

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

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

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

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

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

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

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

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

ирКлиент.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирПлатформа.Форма.ХранилищеЗначения");

