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

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

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

Функция ДанныеСобытия()
	
	ЗначениеПоля = СтрокаТаблицыЗначений[ирОбщий.ПоследнийФрагментЛкс(ЭлементыФормы.Данные.Данные)];
	Возврат ЗначениеПоля;

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

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

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

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

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

Процедура ИмяПользователяОткрытие(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ирКлиент.ОткрытьПользователяИБЛкс(ЭлементыФормы.ТаблицаЖурнала.ТекущиеДанные.ИмяПользователя);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ОткрытьЗначениеК(ЗначениеСвойства)
	
	Если Истина
		И ТипЗнч(ЗначениеСвойства) = Тип("Строка") 
		И ирКэш.ОбъектМДПоПолномуИмениЛкс(ЗначениеСвойства) <> Неопределено 
	Тогда
		ирКлиент.ОткрытьОбъектМетаданныхЛкс(ЗначениеСвойства);
	Иначе
		ирКлиент.ОткрытьЗначениеЛкс(ЗначениеСвойства, Ложь);
	КонецЕсли;

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

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

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

ирКлиент.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализЖурналаРегистрации.Форма.ФормаСобытия");
ПодробныеДанные.Колонки.Добавить("Значение");