// Процедура - обаботчик события "ПриОткрытии" Формы
//
Процедура ПриОткрытии()
	
	ирКлиент.Форма_ПриОткрытииЛкс(ЭтаФорма);
	НоваТекущаяСтрока = Неопределено;
	Если НачальноеЗначениеВыбора <> Неопределено Тогда
		Если СписокНастроек.Количество() > НачальноеЗначениеВыбора Тогда
			НоваТекущаяСтрока = СписокНастроек[НачальноеЗначениеВыбора];
		Иначе
			НоваТекущаяСтрока = Неопределено;
		КонецЕсли; 
	КонецЕсли; 
	Если НоваТекущаяСтрока = Неопределено И СписокНастроек.Количество() > 0 Тогда
		НоваТекущаяСтрока = СписокНастроек[0];
	КонецЕсли; 
	Если НоваТекущаяСтрока <> Неопределено Тогда
		ЭлементыФормы.СписокНастроек.ТекущаяСтрока = НоваТекущаяСтрока;
	КонецЕсли;
	СписокНастроек.Сортировать("Представление");
	
КонецПроцедуры

// Процедура - обаботчик события "ОбновлениеОтображения" Формы
//
Процедура ОбновлениеОтображения()
	ЭлементыФормы.Удалить.Доступность = Не СписокНастроек.Количество() = 0;
	ЭлементыФормы.ОК.Доступность      = Не СписокНастроек.Количество() = 0;
КонецПроцедуры

// Процедура - обаботчик события "Нажатие" в: Кнопка "ОК"
//
Процедура ОКНажатие(Элемент = Неопределено)
	ЭтаФорма.НачальноеЗначениеВыбора = СписокНастроек.Индекс(ЭлементыФормы.СписокНастроек.ТекущиеДанные);
	Закрыть(ЭлементыФормы.СписокНастроек.ТекущиеДанные);
КонецПроцедуры

// Процедура - обаботчик события "Нажатие" в: Кнопка "Отмена"
//
Процедура ОтменаНажатие(Элемент)
	Закрыть();
КонецПроцедуры

// Процедура - обаботчик события "Нажатие" в: Кнопка "Удалить"
//
Процедура УдалитьНажатие(Элемент)
	
	ТекущиеДанные = ЭлементыФормы.СписокНастроек.ТекущиеДанные;
	Если Не ТекущиеДанные = Неопределено Тогда
		СписокНастроек.Удалить(ТекущиеДанные);
	КонецЕсли;
	
КонецПроцедуры

// Процедура - обаботчик события "ПриИзмененииФлажка"  табличного поля "СписокНастроек"
//
Процедура СпискокНастроекПриИзмененииФлажка(Элемент, Колонка)
	
	ТекущиеДанные = ЭлементыФормы.СписокНастроек.ТекущиеДанные;
	Если ТекущиеДанные.Пометка Тогда
		ПометитьТекущуюСтроку();
	КонецЕсли; 
	
КонецПроцедуры

Процедура ПометитьТекущуюСтроку()
	
	ТекущиеДанные = ЭлементыФормы.СписокНастроек.ТекущиеДанные;
	ТекущиеДанные.Пометка = Истина;
	Для каждого ЭлементСписка Из СписокНастроек Цикл
		Если ЭлементСписка.Пометка и ЭлементСписка <> ТекущиеДанные Тогда
			ЭлементСписка.Пометка = Ложь;
		КонецЕсли;
	КонецЦикла;

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

// Процедура - обаботчик события "ПриВыводеСтроки"  табличного поля "СписокНастроек"
//
Процедура СпискокНастроекПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
	
	Если ДанныеСтроки.Пометка Тогда
		ОформлениеСтроки.Шрифт = Новый Шрифт(,, Истина);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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