1С 8.3 ZIP - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 ZIP

Реклама:
Платформа 1С 8.3 для работы с архивами использует формат ZIP. Это популярный формат архивации файлов и сжатия данных без потерь, который может содержать один или несколько файлов и/или каталогов. Для этого во встроенном языке 1С 8.3 существуют функции ЗаписьZIPФайла и ЧтениеZIPФайла. Есть также необходимые для разбиения архифа на несколько частей указанного размера и объединения нескольких архивов в один соответственно: РазделитьФайл() и ОбъединитьФайлы().
Создаем Zip архив с файлами в 1С 8.3:
&НаКлиенте
Процедура СоздаемZipАрхивСФайлами()

   
// Создаем zip-архив
   
ИмяАрхФайла="D:\AvtoArhiv\Doc31032020.zip";//Путь к архиву и имя
    // Особенность: Архивировать средствами 1С можно даже запущенную информационную базу 1С
   
ПарольАрхФайла=""; // если нужно - можно задать пароль на архив
   
КоммАрхФайла="Архив документов создан 31/03/2020 из 1С 8.3"; // комментарий к архиву

   
ФайлАрхива = Новый ЗаписьZipФайла(ИмяАрхФайла, ПарольАрхФайла, КоммАрхФайла,
   
МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Оптимальный, МетодШифрованияZIP.Zip20);

   
// Добавляем файл в zip-архив
   
ФайлАрхива.Добавить("D:\MyDocuments\ПланНа2020.docx"); // путь к файлу который добавляем в архив

    // Или добавляем несколько файлов в zip-архив по маске
   
ФайлАрхива.Добавить("D:\MyDocuments\*.xlsx"); // указываем маску к файлам

    // Или если нужно в архив добавить файлы не только из корневой папки ("D:\MyDocuments\"),
    // но и из подпапок ("D:\MyDocuments\Balans2019\","D:\MyDocuments\Balans2020\",...)
    // где есть файлы c расширением *.xlsx. Нужно использовать параметры (режимы):
   
ФайлАрхива.Добавить("D:\MyDocuments\*.xlsx",
   
РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
   
РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);

   
// Записываем созданный архив на диск компьютера
   
ФайлАрхива.Записать();

КонецПроцедуры
Распаковываем Zip архив в 1С 8.3:
&НаКлиенте
Процедура РаспаковываемZipАрхив()

   
// Распаковываем Doc31032020.zip в папку "D:\AvtoArhiv\"
   
ФайлАрхива = Новый ЧтениеZipФайла("D:\AvtoArhiv\Doc31032020.zip",""); // путь, пароль к архиву

    // Сообщим комментарий к архиву
   
Сообщить(ФайлАрхива.Комментарий);

   
РежимВосстПутейФайлов=РежимВосстановленияПутейФайловZIP.Восстанавливать;
   
// Распаковываем все файлы в D:\MyDocuments\Out
   
ФайлАрхива.ИзвлечьВсе("D:\MyDocuments\Out", РежимВосстПутейФайлов); // (путь, восстанавливать каталоги)

    // Или распаковываем файлы по одиночке.
   
Для Каждого Элемент Из ФайлАрхива.Элементы Цикл

       
Сообщить("... разархивирую..."+Элемент.ПолноеИмя);
       
//(Элемент, Путь, ВосстанавливатьКаталоги, Пароль)
       
ФайлАрхива.Извлечь(Элемент,"D:\MyDocuments\Out", РежимВосстПутейФайлов,"");

    КонецЦикла;

КонецПроцедуры
Шаблоны (готовые модели) кода 1С 8.3 с тегом #ZIP:
Поиск кода
0
комментарии
____________________
Copyright by 1Cnik.by©, «Программист 1С в г.Минске», 31.03.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому