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