Бэкапирование внешних обработок на этапе разработки

03.06.21

База данных - Архивирование (backup)

Бэкапирование файлов внешних обработок 1С, и не только, с помощью самой 1С.

Скачать файлы

Наименование Файл Версия Размер
Текст программы
.txt 3,68Kb
0
.txt 3,68Kb Скачать

Немного бекапирования никогда не повредит. А уж если сделать этом методами самой 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. В вложении ничего интересного нет. Просто методы из статьи в виде программы или скрипта. 

Бэкапы бэкапривание внешние обработки

См. также

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

вчера в 11:00    1249    n_mezentsev    10    

7

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    16468    sapervodichka    34    

136

Архивирование базы в dt и дамп postgres

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4256    1    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    3962    2    Giblarium    12    

5

Конфигурация 1С v.8, для резервного копирования клиент-серверных баз 1С v.8 в *.DT на внешний FTP сервер

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Данная конфигурация, по времени, указанном в регламентном задании, проходит по заполненному в ней справочнику баз 1С, отключает пользователей и рабочие сеансы и выгружает в файл *.DT: локальную папку, сетевую папку или ftp сервер.

1 стартмани

22.04.2022    5022    22    FeDBuka    10    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1272 03.06.21 17:45 Сейчас в теме
По мне удобнее хранить в папке с git репозиторием и применить к нему precommit1c, и "бекап" есть и видны изменения.
pscorp; pavlov_dv; cprit; horsgroup; Lem0n; +5 Ответить
2. aximo 2004 04.06.21 04:24 Сейчас в теме
а по мне - на инфостарт
Оставьте свое сообщение