Научная статья на тему 'РАЗРАБОТКА СКРИПТА РЕЗЕРВНОГО КОПИРОВАНИЯ БД 1С'

РАЗРАБОТКА СКРИПТА РЕЗЕРВНОГО КОПИРОВАНИЯ БД 1С Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
72
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СКРИПТ / РЕЗЕРВНОЕ КОПИРОВАНИЕ / / БАЗЫ ДАННЫХ / SCRIPT / BACKUP / 1C / DATABASE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Федотов В.А.

Статья посвящена разработке скрипта резервного копирования БД .

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF A BACKUP SCRIPT DB 1C

The article is devoted to the development of a database backup script 1C.

Текст научной работы на тему «РАЗРАБОТКА СКРИПТА РЕЗЕРВНОГО КОПИРОВАНИЯ БД 1С»

УДК 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). — Режим доступа: для авториз. пользователей.

i Надоели баннеры? Вы всегда можете отключить рекламу.