ЗаполнитьДополнительныеДанныеФайла (БСП)

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

Заполнить дополнительные данные файла.

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

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

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

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

ЗаполнитьПрофильРедактированиеПечатныхФорм (БСП)

ЗаполнитьНаборыСДополнительнымиРеквизитами (БСП)

ВыгрузитьВФайл (БСП)

ЗаполнитьДополнительныеРеквизитыВФорме (БСП)

ЗаполнитьЗначениеРеквизитаУпорядочивания (БСП)

ЗаполнитьДанныеВыбораАвтоподбораПоСтранам (БСП)

ДополнительныеПараметрыВыборкиДанныхДляОбработки (БСП)

ЗаполнитьРеквизитыФайлаИзИсходногоФайла (БСП)

ЗаполнитьДанныеОбновленияОбластейПерсональныхДанных (БСП)

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