ПереименоватьФайлВерсииНаДиске (БСП)

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

Переименовать файл версии на диске. Для справочника ВерсииФайлов переименует файл на диске, если ТипХраненияФайла = ВТомахНаДиске.

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

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

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

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

ОбновитьИзФайлаНаДискеСОповещением (БСП)

ИзвлечьТекстВерсии (БСП)

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

ПолучитьФайлВерсииВРабочийКаталог (БСП)

ИзвлечьТекстИзФайлаНаДиске (БСП)

СохранитьКак (БСП)

ДобавитьФайлСДиска (БСП)

ХранениеФайловВТомахНаДиске (БСП)

ДобавитьПодписьИзФайла (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз