Немного бекапирования никогда не повредит. А уж если сделать этом методами самой 1С, то можно будет допиливать как угодно.
Когда может быть полезным?
Один из сценариев: разработка внешних отчетов и обработок. Что-то правим, 1С упала - обработка пустая. Бывает редко, но бывает. Что-то правим, вспоминаем что в предыдущем варианте что-то было лучше реализовано.
Как организовать:
1. Посмотреть какие данные в последний раз заливались в каталог хранения резервных данных.
2. Посмотреть какие данные с тех пор появились в каталоге данных.
3. Скопировать новые данные.
4. Сделать эти действия повторяемыми. С помощью регламентного задания или планировщика (если использовать oscript).
5. Профит.
Нам понадобятся:
методы: "ПолучитьВремяИзменения", "ИмяБезРасширения", "Расширение";
команды: НайтиФайлы, КопироватьФайл;
Процесс:
Шаг 1 - получаем дату последнего изменения в каталоге хранения резервных данных:
ДатаПредыдущегоИзменения = Дата(1, 1, 1); НайденныеФайлы = НайтиФайлы(ПолучитьКаталогРезервированияКуда(), "*.*"); Для каждого ТекФайл Из НайденныеФайлы Цикл ДатаИзменения = ТекФайл.ПолучитьВремяИзменения(); Если ДатаИзменения > ДатаПредыдущегоИзменения Тогда ДатаПредыдущегоИзменения = ДатаИзменения; КонецЕсли; КонецЦикла; Возврат ДатаПредыдущегоИзменения;
Шаг 2 - находим новые \ измененные файлы в каталоге данных.
МассивФайлов = Новый Массив; НайденныеФайлы = НайтиФайлы(ПолучитьКаталогРезервированияОткуда(), "*.*"); Для каждого ТекФайл Из НайденныеФайлы Цикл Если ТекФайл.ЭтоФайл() Тогда ДатаИзменения = ТекФайл.ПолучитьВремяИзменения(); Если ДатаИзменения > ДатаПредыдущегоИзменения Тогда МассивФайлов.Добавить(ТекФайл); КонецЕсли; КонецЕсли; КонецЦикла;
Шаг 3 - копируем найденныефайлы в в каталог хранения резервных данных.
Процедура РезервироватьНовыеИзмененныеФайлы(МассивФайлов) Для каждого ТекФайл Из МассивФайлов Цикл ИмяФайла = ПолучитьИмяФайлаРезервирования(ТекФайл); КопироватьФайл(ТекФайл.ПолноеИмя, ИмяФайла); КонецЦикла; КонецПроцедуры
Шаг 3,5 - именуем файлы бекапа, что было понятно что за файл и когда изменялся. Примерно тек:
ИмяФайла 2021_06_02_15_48_07 .epf
ИмяФайла 2021_06_02_17_58_35 .epf
ДатаРезервированияСтрокой = Формат(ТекФайл.ПолучитьВремяИзменения(), "ДФ=yyyy-MM-dd-ЧЧ-мм-сс"); ДатаРезервированияСтрокой = СтрЗаменить(ДатаРезервированияСтрокой, "-", "_"); ИмяФайла = ТекФайл.ИмяБезРасширения + " " + ДатаРезервированияСтрокой + " " + ТекФайл.Расширение; ИмяФайла = ПолучитьКаталогРезервированияКуда() + "\" + ИмяФайла;
Шаг 4 - добавляем регламентное задание. Вставляем туда весь этот код. Устанавливаем необходимую частоту проверки и бэкапа.
Если нет желания изменять конфигурацию, то можно этот же скрипт использовать в планировщике с помощью oscript.
Шаг 5 Получаем бэкапы нужных нам файлов.
P.S. В вложении ничего интересного нет. Просто методы из статьи в виде программы или скрипта.