Разработка скрипта резервного копирования БД 1С
Бесплатный доступ
Статья посвящена разработке скрипта резервного копирования БД 1С.
Скрипт, резервное копирование, 1с, базы данных
Короткий адрес: https://sciup.org/140287025
IDR: 140287025
Текст научной статьи Разработка скрипта резервного копирования БД 1С
При разработке скрипта все действия, выполняемые в ходе выполнения работы, будем сохранять на сервере.
Скрипт будем разрабатывать в Visual Studio Code. Для начала необходимо разработать алгоритм создания директорий для бэкапа. Директории будут следующие:
-
- год;
-
- месяц;
-
- неделя;
-
- день.
Директории должны содержать в названии даты, соответствующие дате создания папки. Поэтому для создания имени папок необходимо использовать параметр «ТекущаяДата()». Текущую дату можно узнать в любой момент, следовательно, можно высчитать текущий (любой) год, текущий (любой) месяц, текущую (любую) неделю, границы недели (201907-01 --- 2019-07-07), текущий день и так далее. Например, для того чтобы узнать границы предыдущей недели используем следующий алгоритм, представленный в листинге 4.2.2.1.
Листинг 4.2.2.1 – Границы предыдущей недели
НачалоПредНедели = Формат(НачалоДня(ТекущаяДата()) -(86400*(ДеньНедели(ТекущаяДата()) + 6)), "ДФ=гггг-ММ-дд");
КонецПредНедели = Формат(ТекущаяДата() + (86400*(0-
ДеньНедели(ТекущаяДата()))), "ДФ=гггг-ММ-дд");
ПапкаПредНеделя = НачалоПредНедели + " --- " +
КонецПредНедели;
При создании бэкапа необходимо чтобы выполнялись следующие действия:
-
- должны храниться ежедневные резервные копии в течение недели и записываться в архив;
-
- после истечения текущей недели и начала следующей необходимо оставить самую последнюю копию за предыдущую неделю и удалить остальные (недельный бэкап);
-
- после истечения текущего месяца и начала следующего необходимо оставить самый последний недельный бэкап и удалить остальные (месячный бэкап);
-
- после истечения текущего года и начала следующего необходимо оставить самый последний месячный бэкап и удалить остальные (годовой бэкап).
При выполнении дневной резервной копии необходимо проверять следующие условия:
-
- если существует резервная копия за сегодняшний день, тогда система удаляет существующий файл и записывает новый;
-
- если бэкап не был выполнен, система создает каталог, учитывая текущую дату и производит копирование файла.
Алгоритм выполнения дневного бэкапа представлен в листинге 4.2.2.2.
Листинг 4.2.2.2 – Дневной бэкап
//ДНЕВНОЙ БЭКАП
ЕСЛИ ФС.ФайлСуществует(ПутьДниНедели + "\" + Файл) ТОГДА
ПутьКопированияФайла = ПутьДниНедели + "\" + Файл;
МБ.ПовторноеКопирование(ПутьДниНедели, ПутьНахожденияФайла, ПутьКопированияФайла, Файл);
ИНАЧЕ
ФС.ОбеспечитьКаталог(ПутьДниНедели);
КопироватьФайл(ПутьНахожденияФайла, ПутьДниНедели + "\" +
Файл);
Сообщить("Дневной БЭКАП выполнен!");
КОНЕЦЕСЛИ;
При выполнении недельной резервной копии необходимо проверять следующие условия:
-
- если существует бэкап за последнюю неделю, тогда система выведет сообщение о его существовании;
-
- если бэкап не был выполнен, тогда система должна найти последнюю неделю в этом месяце, где выполнялись дневные бэкапы и в ней выполнить резервную копию, взяв последний дневной бэкап.
Алгоритм выполнения недельного бэкапа представлен в листинге 4.2.2.3.
Листинг 4.2.2.3 – Недельный бэкап
ЕСЛИ ФС.ФайлСуществует(ПутьПредНеделя + "\" + Файл) ТОГДА
Сообщить("БЭКАП за предыдущую неделю уже был ВЫПОЛНЕН!");
ИНАЧЕ
МБ.БэкапЗаПредНеделю(ПутьПредНеделя, ПутьМесяц, ПутьПредМесяц, ПапкаПредНеделя, Файл, ПапкаНеделя);
ЕСЛИ ФС.ФайлСуществует(ПутьПредНеделя + "\" + Файл) ИЛИ
ФС.ФайлСуществует(ПутьПредМесяц + "\" + ПапкаПредНеделя + "\"
+ Файл) ТОГДА
Сообщить("БЭКАП за предыдущую неделю ВЫПОЛНЕН!");
КОНЕЦЕСЛИ;
КОНЕЦЕСЛИ;
При выполнении месячной резервной копии необходимо проверять следующие условия:
-
- если существует бэкап за последний месяц, тогда система выведет сообщение о его существовании;
-
- если бэкап не был выполнен, тогда система обратится к папке предыдущего месяца, в ней выберет последний недельный бэкап и выполнит формирование месячной резервной копии.
Алгоритм выполнения месячного бэкапа представлен в листинге 4.2.2.4.
Листинг 4.2.2.4 – Месячный бэкап
ЕСЛИ ФС.ФайлСуществует(ПутьПредМесяц + "\" + Файл) ТОГДА
Сообщить("БЭКАП за предыдущий месяц уже был ВЫПОЛНЕН!");
ИНАЧЕ
МБ.БэкапЗаПредМесяц(ПутьГод, ПутьПредМесяц, Файл);
ЕСЛИ ФС.ФайлСуществует(ПутьПредМесяц + "\" + Файл) ТОГДА
Сообщить("БЭКАП за предыдущий месяц ВЫПОЛНЕН!");
КОНЕЦЕСЛИ;
КОНЕЦЕСЛИ;
При выполнении годовой резервной копии необходимо проверять следующие условия:
-
- если существует бэкап за последний год, тогда система выведет сообщение о его существовании;
-
- если бэкап не был выполнен, тогда система обратится к папке предыдущего года, в ней выберет последний месячный бэкап и выполнит формирование годовой резервной копии.
Алгоритм выполнения годового бэкапа представлен в листинге 4.2.2.5.
Листинг 4.2.2.5 – Годовой бэкап
ЕСЛИ ФС.ФайлСуществует(ПутьПредГод + "\" + Файл) ТОГДА
Сообщить("БЭКАП за предыдущий год уже был ВЫПОЛНЕН!");
ИНАЧЕ
МБ.БэкапЗаПредГод(ПутьПредГод, ПапкаПредМесяц, Файл);
ЕСЛИ ФС.ФайлСуществует(ПутьПредГод + "\" + Файл) ТОГДА
Сообщить("БЭКАП за предыдущий год ВЫПОЛНЕН!");
КОНЕЦЕСЛИ;
КОНЕЦЕСЛИ;
Список литературы Разработка скрипта резервного копирования БД 1С
- Сорокина, Л.Н. Информационные технологии в бухгалтерском учете: методические рекомендации и сквозная задача по изучению программы 1C: предприятие - бухгалтерия предприятия (типовая конфигурация) : методические рекомендации / Л.Н. Сорокина, В.А. Кукса. - Москва : НИЯУ МИФИ, 2011. - 52 с. - - Текст : электронный // Электронно-библиотечная система «Лань» : [сайт]. - URL: https://e.lanbook.com/book/75793 (дата обращения: 19.07.2019). - Режим доступа: для авториз. пользователей. ISBN: 978-5-7262-1495-5
- Расторгуев, О.П. Сайт на 1C-Битрикс: создание, поддержка и продвижение. Базовое практическое руководство: руководство / О.П. Расторгуев, Р.Г. Прокди. - Санкт-Петербург: Наука и Техника, 2012. - 256 с. - - Текст: электронный // Электронно-библиотечная система «Лань»: [сайт]. - URL: https://e.lanbook.com/book/39612 (дата обращения: 19.07.2019). - Режим доступа: для авториз. пользователей. ISBN: 978-5-94387-903-6