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

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

Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
	
	ирКлиент.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
	Если ДанныеСтроки.Значение = Ложь Тогда
		ОформлениеСтроки.Ячейки.Значение.ЦветТекста = WebЦвета.Красный;
	КонецЕсли; 

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

Процедура ОбновлениеОтображения()
	
	Количество = Таблица.Количество();
	
КонецПроцедуры

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

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

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

Процедура ТаблицаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
	
	ОбъектМД = ирКэш.ОбъектМДПоПолномуИмениЛкс(ВыбраннаяСтрока.Хранение);
	Если ирОбщий.ЛиКорневойТипКонстантыЛкс(ирОбщий.ПервыйФрагментЛкс(ВыбраннаяСтрока.Хранение)) Тогда
		ирКлиент.ОткрытьКонстантуВСпискеЛкс(ОбъектМД.Имя);
	Иначе
		ОбъектМД = ОбъектМД.Родитель();
		ирКлиент.ОткрытьФормуСпискаЛкс(ОбъектМД);
	КонецЕсли; 
	
КонецПроцедуры

Процедура ТаблицаПриАктивизацииСтроки(Элемент)
	
	ирКлиент.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);

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

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

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

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

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

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

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

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

Процедура ДействияФормыОткрытьВКонфигураторе(Кнопка)
	ТекущаяСтрока = ЭлементыФормы.Таблица.ТекущаяСтрока;
	Если ТекущаяСтрока = Неопределено Тогда
		Возврат;
	КонецЕсли; 
	ирКлиент.ПерейтиКОбъектуМетаданныхВКонфигуратореЛкс("ФункциональнаяОпция" + "." + ТекущаяСтрока.ФункциональнаяОпция);
КонецПроцедуры

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

