В качестве исполняемой приведена команда xcopy с параметрами. Она выполняет копирование вне зависимости от того, все ли пользователи вышли из базы. Никто не мешает, при желании, использовать команду arj для создания архивов.
Текст скрипта:
Dim WshShell, Line, Param
Set WshShell = WScript.CreateObject(«WScript.Shell»)
WshShell.Run(«xcopy /E /I C:1C1cBase*.* /Y C:1CBackupBackup1C_»& Cstr(Year(Date)) & «_» & Right(«0″+Cstr(Month(Date)),2) & «_» & Right(«0″+Cstr(Day(Date)),2))
Текст необходимо сохранить в файле с расширением vbs и подключить в планировщик. В результате выполнения скрипта в папке с архивом создаются каталоги с наименованием (в данном случае) Backup1C_2014_08_04… и т.д., по датам
В дальнейшем для чистки папки архивов используется следующий алгоритм: в течение месяца копии хранятся ежедневно, по истечении месяца оставляются только копии на 01 и 15 числа месяца. Для этого выполняется простейшая процедура в модуле 1С при начале работы системы.
// Считаем, что архивация началась 08.04.2014. Принцип сохранения архивов: первый месяц
// от текущей даты архивы хранятся ежедневно, потом — 01 и 15 числа каждого месяца
ОкончаниеПроверки = ДобавитьМесяц(ТекущаяДата(),-1);
ДатаПроверки = Дата(2014,04,08);
Пока ДатаПроверки<ОкончаниеПроверки Цикл
ДатаПроверки = ДатаПроверки + 86400;
Если День(ДатаПроверки)=01 ИЛИ День(ДатаПроверки)=15 Тогда
Продолжить;
КонецЕсли;
ИмяФайла = «C:1CBackupBackup1C_»+
Формат(Год(ДатаПроверки), «ЧЦ=4; ЧВН=; ЧГ=’ ‘»)+»_»+
Формат(Месяц(ДатаПроверки),»ЧЦ=2; ЧВН=; ЧГ=’ ‘»)+»_»+
Формат(День(ДатаПроверки), «ЧЦ=2; ЧВН=; ЧГ=’ ‘»)+».dt»;
ФайлАрхива = Новый Файл(ИмяФайлаArg);
Если ФайлАрхива.Существует() Тогда
Попытка
УдалитьФайлы(ИмяФайлаArg);
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
А почему старые архивы чистятся из 1С? Ещё и изменения вносить надо. не проще ли ещё один скрипт сделать?