Перем мОбъектМД;

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

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

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

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

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

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

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

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

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

// Предопределеный метод                                         
Процедура ПроверкаЗавершенияФоновыхЗаданий() Экспорт 
	ирКлиент.ПроверитьЗавершениеФоновыхЗаданийФормыЛкс(ЭтаФорма);
КонецПроцедуры

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

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

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

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

Процедура РодительОткрытие(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ирКлиент.ОткрытьОбъектМетаданныхЛкс(Родитель);
КонецПроцедуры

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

Процедура ФункциональныеОпцииОткрытие(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ОткрытьФункциональныеОпцииОбъекта(ПолноеИмя);
КонецПроцедуры

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