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

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

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

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

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

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

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

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

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

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

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

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

Процедура УстановитьИсключаемыеТаблицы(ИменаТаблиц) Экспорт 
	
	ИсключаемыеТаблицы.ЗагрузитьЗначения(ИменаТаблиц);
	ИсключаемыеТаблицы.СортироватьПоЗначению(); 
	
КонецПроцедуры 

Процедура УстановитьИсключаемыеКолонки(ИменаКолонок = Неопределено) Экспорт 
	
	ИсключаемыеКолонки.ЗагрузитьЗначения(ИменаКолонок);
	ИсключаемыеКолонки.СортироватьПоЗначению();
	
КонецПроцедуры

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

Процедура СтандартныйПоискПриИзменении(Элемент)
	НастроитьЭлементыФормы();
КонецПроцедуры

Процедура ИсключаемыеКолонкиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
	КПИсключаемыеКолонкиИзменитьСписокКолонокБД();
КонецПроцедуры

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

Процедура КПИсключаемыеКолонкиИзменитьСписокСтрок(Кнопка)
	ирКлиент.РедактироватьСписокЗначенийЛкс(ИсключаемыеКолонки);
КонецПроцедуры

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

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