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

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

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

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

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

Процедура УстановитьРабочийКаталог(Знач Папка, Знач ПутьРабочегоКаталога)

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

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

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли