УдалитьРезервныеКопииПоНастройке (БСП)

Автор: 1С
ОбщийМодуль.РезервноеКопированиеИБКлиент
БСП

Удалить резервные копии по настройке. Удаляет резервные копии по заданным настройкам.

// Удаляет резервные копии по заданным настройкам.
//
Процедура УдалитьРезервныеКопииПоНастройке() Экспорт
	
	// АПК:566-выкл код никогда не выполнится в браузере.
	
	// Очистка архива с копиями.
	ФиксированныеПараметрыРезервногоКопированияИБ = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().РезервноеКопированиеИБ;
	КаталогХранения = ФиксированныеПараметрыРезервногоКопированияИБ.КаталогХраненияРезервныхКопий;
	ПараметрыУдаления = ФиксированныеПараметрыРезервногоКопированияИБ.ПараметрыУдаления;
	
	Если ПараметрыУдаления.ТипОграничения <> "ХранитьВсе" И КаталогХранения <> Неопределено Тогда
		
		Попытка
			Файл = Новый Файл(КаталогХранения);
			Если НЕ Файл.ЭтоКаталог() Тогда
				Возврат;
			КонецЕсли;
			
			МассивФайлов = НайтиФайлы(КаталогХранения, "backup????_??_??_??_??_??*", Ложь);
			СписокУдаляемыхФайлов = Новый Массив;
			
			// Удаление резервных копий.
			Если ПараметрыУдаления.ТипОграничения = "ПоПериоду" Тогда
				Для Каждого ЭлементФайл Из МассивФайлов Цикл
					ТекущаяДата = ОбщегоНазначенияКлиент.ДатаСеанса();
					ЗначениеВСекундах = КоличествоСекундВПериоде(ПараметрыУдаления.ЗначениеВЕдиницахИзмерения, ПараметрыУдаления.ЕдиницаИзмеренияПериода);
					ПроизводитьУдаление = ((ТекущаяДата - ЗначениеВСекундах) > ЭлементФайл.ПолучитьВремяИзменения());
					Если ПроизводитьУдаление Тогда
						СписокУдаляемыхФайлов.Добавить(ЭлементФайл);
					КонецЕсли;
				КонецЦикла;
				
			ИначеЕсли МассивФайлов.Количество() >= ПараметрыУдаления.КоличествоКопий Тогда
				СписокФайлов = Новый СписокЗначений;
				СписокФайлов.ЗагрузитьЗначения(МассивФайлов);
				
				Для Каждого Файл Из СписокФайлов Цикл
					Файл.Значение = Файл.Значение.ПолучитьВремяИзменения();
				КонецЦикла;
				
				СписокФайлов.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
				ДатаПоследнегоАрхива = СписокФайлов[ПараметрыУдаления.КоличествоКопий-1].Значение;
				
				Для Каждого ЭлементФайл Из МассивФайлов Цикл
					
					Если ЭлементФайл.ПолучитьВремяИзменения() <= ДатаПоследнегоАрхива Тогда
						СписокУдаляемыхФайлов.Добавить(ЭлементФайл);
					КонецЕсли;
					
				КонецЦикла;
				
			КонецЕсли;
			
			Для Каждого УдаляемыйФайл Из СписокУдаляемыхФайлов Цикл
				УдалитьФайлы(УдаляемыйФайл.ПолноеИмя);
			КонецЦикла;
			
		Исключение
			
			ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), "Ошибка",
				НСтр("ru = 'Не удалось провести очистку каталога с резервными копиями.'") + Символы.ПС 
				+ ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),,Истина);
			
		КонецПопытки;
		
	КонецЕсли;
	
	// АПК:566-вкл
	
КонецПроцедуры

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

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

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

СозданиеКопий (БСП)

ПриПредложенииПользователюСоздатьРезервнуюКопию (БСП)

ПараметрыРезервнойКопии (БСП)

ПредложитьПользователюСоздатьРезервнуюКопию (БСП)

ОтменитьСозданиеРезервнойКопииОбласти (БСП)

ОшибкаСозданияКопии (БСП)

ПоказатьРезервноеКопирование (БСП)

ПредлагатьСоздаватьРезервныеКопии (БСП)

TurboConf 6 - расширение Конфигуратора 1С