Backup-ы средствами 1с

09.01.09

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

Как прописать backup-ы ИБ средствами 1с

Обычно бэкапами занимаются не программисты, а администраторы. Как правило, они тупо копируют каталог ИБ (в файловом варианте, хотя есть и такие, которые это же самое делают и с серверными базами 1с 7.7, как это не печально...), либо прописывают задание в sql-сервере. В принципе так делать можно (если все правильно сделано), но когда базы большие (не огромные, по 100 и более Гб, а просто большие), когда их много, когда вы не очень доверяете администраторам, или их просто нет, можно сделать по-другому.

Есть пакетный режим работы, как в 1с 7.7, так и в 1с 8. Есть WSH. Ничего не мешает написать скрипт и получить копии средствами 1с. Плюсы - копии компактнее, чем sql-ные, их можно использовать и для баз в файловом варианте, для баз 1с 7.7 их еще можно и запаролить. Минусы - в базах никто не должен сидеть в этот момент.

Пример скрипта для баз 1с 8 (нужно доделать для каждого конкретного применения):

var WshShell, BackUp;
var FSO,F,SFold,SFold2,SubFolders,s;

WshShell = WScript.CreateObject("WScript.Shell");
FSO=WScript.CreateObject("Scripting.FileSystemObject");

// 1-ая база

s = <Путь к исполняемому файлу 1с 8>+" CONFIG /S"+<Путь к базе или сервер и имя базы>+" /N"+<Юзер>+" /P"+<Пароль>+" /DumpIB"+<Путь к файлу бэкапа>;
BackUp = WshShell.Run(s,1,true);
 

// 2-ая база

...

// N-ая база

...

// а далее нужно в конец имени файла добавить дату создания, а чтобы

// можно было хранить в ней бэкапы от разных дат - меняем расширение


SFold=<Путь к папке с бэкапами>;

d = new Date();
Month = d.getMonth();
Date = d.getDate();
Year = d.getYear();

if (Date<10) {
 Date="0"+Date;
} else {
 Date=""+Date;
}
if (Month<9) {
 Month="0"+(Month+1);
} else {
 Month=""+(Month+1);
}
textDate = "_"+Date+""+Month+""+Year;

F=FSO.GetFolder(SFold);

Files= new Enumerator(F.Files);
for (; !Files.atEnd(); Files.moveNext()) {
 if (FSO.GetExtensionName(Files.item())=="dt") {
  FSO.MoveFile(Files.item(),FSO.GetParentFolderName(Files.item())+"\\"+FSO.GetBaseName(Files.item())+textDate+"._"+FSO.GetExtensionName(Files.item()));
 }
}

SubFolders= new Enumerator(F.SubFolders);
for (; !SubFolders.atEnd(); SubFolders.moveNext()) {
 FS=FSO.GetFolder(SubFolders.item());
 Files= new Enumerator(FS.Files);
 for (; !Files.atEnd(); Files.moveNext()) {
  if (FSO.GetExtensionName(Files.item())=="dt") {
   FSO.MoveFile(Files.item(),FSO.GetParentFolderName(Files.item())+"\\"+FSO.GetBaseName(Files.item())+textDate+"._"+FSO.GetExtensionName(Files.item()));
  }
 }
}

Вот и все, файл прописываем в планировщике, задаем расписание и получаем то, что желали.

См. также

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    74241    629    45    

88

Архивирование (backup) Системный администратор Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Программа позволяет выполнять автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    16143    25    6    

30

Архивирование (backup) Системный администратор Платформа 1С v8.3 Бесплатно (free)

Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.

20.01.2025    670    Prelude    1    

9

Архивирование (backup) Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение поможет настроить резервное копирование баз SQL в стандартный файл выгрузки баз 1С (*.dt).

2400 руб.

27.08.2024    1672    1    6    

2

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    3807    1CUnlimited    9    

6

Инструменты администратора БД Архивирование (backup) Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Обработка для "обновления" своей тестовой базы из резервной копии рабочей базы без помощи админов.

1 стартмани

21.05.2024    2440    12    baidinden    4    

8

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

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

04.12.2023    11263    n_mezentsev    15    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. brr 184 09.01.09 21:08 Сейчас в теме
Было бы неплохо и в планировщик прописаться "средствами 1С" :)
2. coder1cv8 3481 11.01.09 09:05 Сейчас в теме
(1) Я такое делал :) Ничего сложного...
ЗЫ: Советую использовать "Конструктор параметров командной строки", первую часть скрипта он генерит автоматом, мог бы генерить и вторую (с датой создания), если бы не лень :)
3. brr 184 11.01.09 15:38 Сейчас в теме
(2) Код в студию :), я например не знаю как это делать.
4. coder1cv8 3481 11.01.09 16:19 Сейчас в теме
(3) Легко! ) Что-то типа этого:
Код
СИМ=ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");
Планировщик=СИМ.Get("Win32_ScheduledJob");
СтрДатаВремя="********"+Формат(ТекущаяДата(),"ДФ=ЧЧммсс")+".000000+180";
КодВозвр=Планировщик.Create(ПутьКЗадаче,СтрДатаВремя,Ложь,,,Истина);
Показать полностью
5. coder1cv8 3481 11.01.09 16:21 Сейчас в теме
(4) Как всегда движок сайта код испоганил! ( Но принцип, я думаю, ясен...
7. brr 184 11.01.09 16:32 Сейчас в теме
(5) А у класса Win32_ScheduledJob точно есть метод Create?
8. brr 184 11.01.09 16:33 Сейчас в теме
+(7) Есть, извиняюсь, в Код Креаторе не ту закладку выбрал.
9. Душелов 4021 11.01.09 16:34 Сейчас в теме
10. brr 184 11.01.09 16:44 Сейчас в теме
6. brr 184 11.01.09 16:28 Сейчас в теме
11. brr 184 11.01.09 17:27 Сейчас в теме
Гхм, мне тут старшие товарищи напомнили про команду at :)
12. Gaziz 16.01.09 06:43 Сейчас в теме
"либо прописывают задание в sql-сервере" не скажете а где в SQL его прописать "написать скрипт и получить копии средствами 1с" ?
13. vip 16.01.09 08:15 Сейчас в теме
(12) В job'ах.
Очень удобный механизм, тот же планировщик.
Оставьте свое сообщение