///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

#Область ОбработчикиСобытийФормы

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
#Если МобильныйКлиент Тогда
	УстановитьЗаголовокДереваПапок();
#КонецЕсли
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыПапки

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

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

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

&НаКлиенте
Процедура УстановитьЗаголовокДереваПапок()
	
	Элементы.Папки.Заголовок = ?(Элементы.Папки.ТекущиеДанные = Неопределено, "",
		Элементы.Папки.ТекущиеДанные.Наименование);
	
КонецПроцедуры

#КонецОбласти
