УдалитьФайлИзРабочегоКаталога (БСП)

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

Удалить файл из рабочего каталога. Удалить с диска и из регистра сведений.

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

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

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

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

УдалитьФайлИзРабочегоКаталогаПослеУдаленияФайла (БСП)

ПеренестиСодержимоеРабочегоКаталога (БСП)

КаталогФайлаПослеПолученияФайлаВРабочийКаталог (БСП)

ОчиститьРабочийКаталог (БСП)

ДанныеФайлаИРабочийКаталог (БСП)

ПолучитьПрисоединенныйФайл (БСП)

ПоместитьПрисоединенныйФайл (БСП)

ПолучитьПрисоединенныйФайлПослеПолученияРабочегоКаталога (БСП)

ПоместитьПрисоединенныйФайлПослеПолученияРабочегоКаталога (БСП)

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