ПолучитьФайлИзХранилищаМенеджераСервиса (БСП)

Автор: 1С
ОбщийМодуль.РаботаВМоделиСервиса
БСП

Получить файл из хранилища менеджера сервиса. Возвращает полное имя файла, полученного из файлового хранилища МС по его идентификатору.

// Возвращает полное имя файла, полученного из файлового хранилища МС по его идентификатору.
//
// Параметры:
//   ИДФайла - УникальныйИдентификатор - идентификатор файла в файловом хранилище МС.
//
// Возвращаемое значение:
//   Строка - полное имя извлеченного файла.
//
Функция ПолучитьФайлИзХранилищаМенеджераСервиса(Знач ИДФайла) Экспорт
	
	ОписаниеФайла = Неопределено;
	
	АдресМенеджераСервиса = ВнутреннийАдресМенеджераСервиса();
	
	Если НЕ ЗначениеЗаполнено(АдресМенеджераСервиса) Тогда
		
		ВызватьИсключение(НСтр("ru = 'Не установлены параметры связи с менеджером сервиса.'"));
		
	КонецЕсли;
	
	ПараметрыДоступаКХранилищу = Новый Структура;
	ПараметрыДоступаКХранилищу.Вставить("URL", АдресМенеджераСервиса);
	ПараметрыДоступаКХранилищу.Вставить("UserName", ИмяСлужебногоПользователяМенеджераСервиса());
	ПараметрыДоступаКХранилищу.Вставить("Password", ПарольСлужебногоПользователяМенеджераСервиса());
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПередачаДанных") Тогда
		
		ПоддерживаемыеВерсии = ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыДоступаКХранилищу, "DataTransfer");
		
		Если ПоддерживаемыеВерсии.Количество() > 0 Тогда
			
			// В одной из версий БТС общий модуль ПередачаДанных был переименован в ПередачаДанныхСервер для разрешения конфликта имен.
			// Для совместимости реализована поддержка обоих имен модулей.
			Попытка
				
				МодульПередачаДанных = ОбщегоНазначения.ОбщийМодуль("ПередачаДанныхСервер");
				
			Исключение
				
				МодульПередачаДанных = ОбщегоНазначения.ОбщийМодуль("ПередачаДанных");
				
			КонецПопытки;
			
			ОписаниеФайла = МодульПередачаДанных.ПолучитьИзЛогическогоХранилища(ПараметрыДоступаКХранилищу, "files", ИДФайла);
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если ОписаниеФайла = Неопределено Тогда
		
		ОписаниеФайла = ПолучитьФайлИзХранилища(ИДФайла, ПараметрыДоступаКХранилищу, Истина, Истина);
		
	КонецЕсли;
	
	Если ОписаниеФайла = Неопределено Тогда
		
		Возврат Неопределено;
		
	КонецЕсли;
	
	СвойстваФайла = Новый Файл(ОписаниеФайла.ПолноеИмя);
	
	Если Не СвойстваФайла.Существует() Тогда
		
		Возврат Неопределено;
		
	КонецЕсли;
	
	// Менеджер сервиса устанавливает исходному файлу атрибут "Только чтение".
	// Унаследованный атрибут снимается, чтобы файл можно было удалить.
	СвойстваФайла.УстановитьТолькоЧтение(Ложь);	
	
	Возврат СвойстваФайла.ПолноеИмя;
	
КонецФункции

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

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

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

ПоместитьФайлВХранилищеМенеджераСервиса (БСП)

ВыгрузитьОбластьВХранилищеМС (БСП)

ПолучитьФайлИзХранилищаВСервисе (БСП)

ПолучитьПроксиМенеджераСервиса (БСП)

ПолучитьФайлИзХранилища (БСП)

ПолучитьПроксиИнформационногоЦентра (БСП)

ПолучитьПроксиЦентраИдей (БСП)

ПолучитьДанныеОбъектаПоПравилу (БСП)

УстановитьНастройкиРезервногоКопированияОбласти (БСП)

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