Удалить резервные копии по настройке. Удаляет резервные копии по заданным настройкам.
// Удаляет резервные копии по заданным настройкам.
//
Процедура УдалитьРезервныеКопииПоНастройке() Экспорт
// АПК: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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПриПредложенииПользователюСоздатьРезервнуюКопию (БСП)
ПредложитьПользователюСоздатьРезервнуюКопию (БСП)
ОтменитьСозданиеРезервнойКопииОбласти (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)