НайтиВРегистреПоПути (БСП)

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

Найти регистре по пути. Находит запись в регистре сведений ФайлыВРабочемКаталоге по пути файла на диске (относительному).

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

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

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

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

ЗанестиИнформациюФайлаВРегистр (БСП)

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

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

ЗаписатьПолноеИмяФайлаВРегистр (БСП)

РасположениеИсполняемогоФайла (БСП)

СохранитьРасположениеИсполняемогоФайлаВызовОнлайнПоддержки (БСП)

ИР Найти в модулях

ИР Найти в списке

ИР Найти в окнах

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