Найти регистре по пути. Находит запись в регистре сведений ФайлыВРабочемКаталоге по пути файла на диске (относительному).
// Находит запись в регистре сведений ФайлыВРабочемКаталоге по пути файла на диске (относительному).
//
// Параметры:
// ИмяФайла - Строка - имя файла с относительным путем (без пути к рабочему каталогу).
//
// Возвращаемое значение:
// Структура со свойствами:
// Версия - СправочникСсылка.ВерсииФайлов - найденная версия.
// ДатаПомещения - Дата помещения файла в рабочий каталог.
// Владелец - Ссылка - владелец файла.
// НомерВерсии - Число - номер версии.
// ВРегистреНаЧтение - Булево - значение ресурса НаЧтение.
// ВРегистреКодФайла - Число сюда помещается код файла.
// ВРегистреПапка - СправочникСсылка.ПапкиФайлов - папка файла.
//
Функция НайтиВРегистреПоПути(ИмяФайла) Экспорт
УстановитьПривилегированныйРежим(Истина);
НайденныеСвойства = Новый Структура;
НайденныеСвойства.Вставить("ФайлЕстьВРегистре", Ложь);
НайденныеСвойства.Вставить("Файл", Справочники.ВерсииФайлов.ПустаяСсылка());
НайденныеСвойства.Вставить("ДатаПомещения");
НайденныеСвойства.Вставить("Владелец");
НайденныеСвойства.Вставить("НомерВерсии");
НайденныеСвойства.Вставить("ВРегистреНаЧтение");
НайденныеСвойства.Вставить("ВРегистреКодФайла");
НайденныеСвойства.Вставить("ВРегистреПапка");
// Для каждого по пути находим запись в регистре сведений - оттуда берем поле.
// Версия и Размер и ДатаПомещенияВРабочийКаталог.
ЗапросВРегистр = Новый Запрос;
ЗапросВРегистр.УстановитьПараметр("ИмяФайла", ИмяФайла);
ЗапросВРегистр.УстановитьПараметр("Пользователь", Пользователи.АвторизованныйПользователь());
ЗапросВРегистр.Текст =
"ВЫБРАТЬ
| ФайлыВРабочемКаталоге.Файл КАК Файл,
| ФайлыВРабочемКаталоге.ДатаПомещенияВРабочийКаталог КАК ДатаПомещения,
| ФайлыВРабочемКаталоге.НаЧтение КАК ВРегистреНаЧтение,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ФайлыВРабочемКаталоге.Файл) = ТИП(Справочник.ВерсииФайлов)
| ТОГДА ФайлыВРабочемКаталоге.Файл.Владелец
| ИНАЧЕ ФайлыВРабочемКаталоге.Файл
| КОНЕЦ КАК Владелец,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ФайлыВРабочемКаталоге.Файл) = ТИП(Справочник.ВерсииФайлов)
| ТОГДА ФайлыВРабочемКаталоге.Файл.НомерВерсии
| ИНАЧЕ 0
| КОНЕЦ КАК НомерВерсии,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ФайлыВРабочемКаталоге.Файл) = ТИП(Справочник.ВерсииФайлов)
| ТОГДА ФайлыВРабочемКаталоге.Файл.Владелец.ВладелецФайла
| ИНАЧЕ ФайлыВРабочемКаталоге.Файл.ВладелецФайла
| КОНЕЦ КАК ВРегистреПапка
|ИЗ
| РегистрСведений.ФайлыВРабочемКаталоге КАК ФайлыВРабочемКаталоге
|ГДЕ
| ФайлыВРабочемКаталоге.Путь = &ИмяФайла
| И ФайлыВРабочемКаталоге.Пользователь = &Пользователь";
РезультатЗапроса = ЗапросВРегистр.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
НайденныеСвойства.ФайлЕстьВРегистре = Истина;
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(НайденныеСвойства, Выборка);
КонецЕсли;
Возврат НайденныеСвойства;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ЗанестиИнформациюФайлаВРегистр (БСП)
СохранитьРабочийКаталогПапкиИЗаменитьПутиВРегистре (БСП)
ПолучитьПолноеИмяФайлаИзРегистра (БСП)
ЗаписатьПолноеИмяФайлаВРегистр (БСП)
РасположениеИсполняемогоФайла (БСП)
СохранитьРасположениеИсполняемогоФайлаВызовОнлайнПоддержки (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)