УДК 004
Федотов В.А. студент 2 курса
факультет «Информационные системы и технологии» Северный Арктический федеральный университет Высшая школа информационных технологий и
автоматизированных систем Россия, г. Архангельск РАЗРАБОТКА СКРИПТА РЕЗЕРВНОГО КОПИРОВАНИЯ БД 1С
Аннотация: Статья посвящена разработке скрипта резервного копирования БД 1С.
Ключевые слова: Скрипт, резервное копирование, 1С, базы данных.
Fedotov V.A.
student, 2year, faculty "Information Systems and Technology" Northern Arctic Federal University, Graduate School of Information
Technology and Automated Systems Russia, Arkhangelsk DEVELOPMENT OF A BACKUP SCRIPT DB 1C
Annotation: The article is devoted to the development of a database backup script 1C.
Keywords: Script, backup, 1C, database.
При разработке скрипта все действия, выполняемые в ходе выполнения работы, будем сохранять на сервере.
Скрипт будем разрабатывать в Visual Studio Code. Для начала необходимо разработать алгоритм создания директорий для бэкапа. Директории будут следующие:
- год;
- месяц;
- неделя;
- день.
Директории должны содержать в названии даты, соответствующие дате создания папки. Поэтому для создания имени папок необходимо использовать параметр «ТекущаяДата()». Текущую дату можно узнать в любой момент, следовательно, можно высчитать текущий (любой) год, текущий (любой) месяц, текущую (любую) неделю, границы недели (2019-07-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 с. — ISBN 978-5-7262-1495-5. — Текст : электронный // Электронно-библиотечная система «Лань» : [сайт]. — URL: https://e.lanbook.com/book/75793 (дата обращения: 19.07.2019). — Режим доступа: для авториз. пользователей.
2. Расторгуев, О.П. Сайт на 1С-Битрикс: создание, поддержка и продвижение. Базовое практическое руководство : руководство / О.П. Расторгуев, Р.Г. Прокди. — Санкт-Петербург : Наука и Техника, 2012. — 256 с. — ISBN 9785-94387-903-6. — Текст : электронный // Электронно-библиотечная система «Лань» : [сайт]. — URL: https://e.lanbook.com/book/39612 (дата обращения: 19.07.2019). — Режим доступа: для авториз. пользователей.