Архивация файлов при помощи программы 7-Zip

Публикация № 20288

Администрирование - Администрирование данных 1С - Архивирование (backup)

Пример архивации при помощи командной строки для 7za.exe.

Я использую 7za.exe, которая работает только с командной строкой;
ее не нужно устанавливать, достаточно скопировать файл в 'некий каталог'.

Сайт архиватора: 7-Zip Copyright (C) 1999-2008 Igor Pavlov.

В общем случае алгоритм архивации следующий:
- создаю временный текстовый файл с кодировкой "windows" (по умолчанию),
в который добавляю строки с шаблонами, по которым б.происходить архивация, например:

Т =СоздатьОбъект("Текст");
Т.ДобавитьСтроку(ПутьКБ+"*.dbf");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.MD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.DD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.ORD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.SPL");
Т.ДобавитьСтроку(ПутьКБ+"UsrDef\Users.usr");
Т.ДобавитьСтроку(ПутьКБ+"EXTFORMS\*78");
Т.Записать(КаталогИБ()+"arch_para
m.txt");

строки шаблонов при этом могут содержать пробелы и символы кириллицы

- формирую командную строку:

СтрКоманда=""""+ПутьКАрхиватору+""" a -tzip """+КаталогАрхива+ИмяФайлаАрхива+""" @"""+ВремФайл+""" -scsWIN";

в ней:
- все пути обрамлены кавычками, на тот случай, если встретятся наименования каталогов или файлов с пробелами;
- ПутьКАрхиватору - это 'некий каталог'\7za.exe
- параметр "-tzip" - указывает, что создаваемый архив будет формата ".zip";
- (КаталогАрхива+ИмяФайлаАрхива) - полный путь к создаваемому файлу архива;
- ВремФайл - в моем случае файл с шаблонами КаталогИБ()+"arch_param.txt"
- параметр "-scsWIN" - указывает, что кодировка ВремФайл - "windows"

- и наконец, приходится сформировать выполняемый файл с этой командной строкой,
поскольку в общем случае такая командная строка не выполняется непосредственно,
батник же заработал. Связано это, скорее всего, с присутствием символов кириллицы.

Т =СоздатьОбъект("Текст");
Т.КодоваяСтраница(1); // Dos кодировка
Т.ДобавитьСтроку(СтрКоманда);
ФайлБатник=КаталогВременныхФайлов()+"tempcs.bat";
Т.Записать(ФайлБатник);

КомандаСистемы(ФайлБатник);


Главное преимущество такого способа запуска архивации на мой взгляд следующее:

если у в каком-либо модуле присутствует строка КомандаСистемы(...), то программа, в отличии от, в частности, от ЗапуститьПриложение(...), не переходит к следующему оператору модуля до тех пор, пока не закончится архивация. А после этого уже можно приступать к действиям с новым, сформированным архивом: отправлять по почте, копировать куда либо, архивировать что-нибудь еще и т.д.
Более подробно о командах и параметрах 7-Zip можно почитать в "7-zip.chm", который прилагается к программе.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1050 05.06.09 14:53 Сейчас в теме
Зачем он нужен, когда можно самой 1с-иной всё паковать, через пакетный режим пофигуратора по маске файлов ?
:))
2. waol 275 05.06.09 14:56 Сейчас в теме
запаковать можно. только с этим файлом ничего не сделаешь уже. А нужно, например, отправить его восвяси, или по почте, скажем ?
3. Ёпрст 1050 05.06.09 15:26 Сейчас в теме
Почему не сделаешь?
Так же..и отправишь..
Дык это я так, к слову..
4. waol 275 05.06.09 15:51 Сейчас в теме
вообще ты прав. но 7z он компактней как то, чем 1с
5. Ёпрст 1050 05.06.09 15:53 Сейчас в теме
А вообще, пакетный режим можно использовать как бесплатный архиватор чего угодно.. в качестве "подарка" от 1с
:)
Ну мало ли, мот у кого денех нет на архиватор, а 1с стоит...
6. Abadonna 3889 05.06.09 16:05 Сейчас в теме
" Note:
You can use 7-Zip on any computer, including a computer in a commercial
organization. You don't need to register or pay for 7-Zip."
Куды уж бесплатнее? ;)
7. Ёпрст 1050 05.06.09 16:12 Сейчас в теме
(6) Ну ты же знаешь, есть религиозные фанаты, где окромя 1с-ины - ничего более, ни вк, ни тем более, внешних архиваторов!
:)
8. Abadonna 3889 05.06.09 16:14 Сейчас в теме
(7) Меня всегда удивляло желание впихнуть в 1С абсолютно все: архиваторы, органайзеры, карточные игры, медиа-плейеры и т.д. ;)
9. Ёпрст 1050 05.06.09 16:20 Сейчас в теме
(8) А то!
Всё в одной конфе... удобно :)

11. waol 275 05.06.09 20:29 Сейчас в теме
(8) главное, чтобы сама 1с не была сильно против )
10. Evg-Lylyk 3307 05.06.09 16:22 Сейчас в теме
Пользовался подобной схемой создания дистрибутива внешней обработки через bat файл
1C пакетный режим устанавливает в папку шаблонов (мне он не подошел)
Оставьте свое сообщение

См. также

Скрипт удобного восстановления базы MSSQL при дифференциальном резервировании Промо

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

Если у Вас база на MSSQL и Вы пользуетесь разностными бекапами, то, скорее всего, столкнулись с тем, что поднять базу/копию базы из имеющихся резервных файлов не столь удобно, как того хотелось бы. В этой статье приведен скрипт по теме.

20.01.2011    30794    Ivon    12    

Автоматическое регулярное разворачивание оперативных бэкапов (совсем просто) в MS SQL 2008

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

В работе регулярно возникает необходимость протестировать поведение программы на копии рабочей базы с актуальными данными

10.08.2012    18721    sergiobargio1    6    

Архивирование баз данных 1С и не только... (настройка бесплатной программы Cobian Backup 9)

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

В данной статье описывается создание системы архивирования на основе бесплатной программы Cobian Backup 9 (http://www.cobiansoft.com/cobianbackup.htm)

14.01.2010    62711    Mx00    146