СохранитьРабочийКаталогПапкиИЗаменитьПутиВРегистре (БСП)

Автор: 1С
ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера
БСП

Сохранить рабочий каталог папки заменить пути регистре. Сохраняет в регистре сведений рабочий каталог папки и

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

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

Рекомендации

Похожие публикации

СохранитьРабочийКаталогПапки (БСП)

ОчиститьРабочийКаталог (БСП)

ПолучитьФайлВерсииВРабочийКаталогПапкиПослеПроверкиДлиныПути (БСП)

ВыбратьПутьКРабочемуКаталогу (БСП)

ПолучитьПолноеИмяФайлаИзРегистра (БСП)

РабочийКаталогПользователя (БСП)

РабочийКаталогПапки (БСП)

УстановитьРабочийКаталогПользователя (БСП)

1С Менеджер конфигураций