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АрхивСФайлами()
// Создаем 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", РежимВосстПутейФайлов,"");
КонецЦикла;
КонецПроцедуры
Процедура РаспаковываемZipАрхив()
// Распаковываем Doc31032020.zip в папку "D:\AvtoArhiv\"
ФайлАрхива = Новый ЧтениеZipФайла("D:\AvtoArhiv\Doc31032020.zip",""); // путь, пароль к архиву
// Сообщим комментарий к архиву
Сообщить(ФайлАрхива.Комментарий);
РежимВосстПутейФайлов=РежимВосстановленияПутейФайловZIP.Восстанавливать;
// Распаковываем все файлы в D:\MyDocuments\Out
ФайлАрхива.ИзвлечьВсе("D:\MyDocuments\Out", РежимВосстПутейФайлов); // (путь, восстанавливать каталоги)
// Или распаковываем файлы по одиночке.
Для Каждого Элемент Из ФайлАрхива.Элементы Цикл
Сообщить("... разархивирую..."+Элемент.ПолноеИмя);
//(Элемент, Путь, ВосстанавливатьКаталоги, Пароль)
ФайлАрхива.Извлечь(Элемент,"D:\MyDocuments\Out", РежимВосстПутейФайлов,"");
КонецЦикла;
КонецПроцедуры
💡 Шаблоны (готовые модели) кода 1С 8.3 с тегом #ZIP:
📰 Актуальные новости с тегом #Zip:
- В версии 8.3.27 реализована поддержка приложениями Autorun и SetupV8 поставки конфигурации в формате zip.
- В версии 8.3.21 реализована возможность выгрузки конфигурации в zip-архив xml-файлов. При выгрузке на стороне кластера серверов реализована возможность многопоточной выгрузки конфигурации.Команда Конфигуратора Выгрузить конфигурацию в файлы позволяет указать способ выгрузки (на сервере/на клиенте), количество одновременных потоков выгрузки и необходимость архивировать файл выгрузки. Для выполнения данной задачи реализован специальный параметр для следующих инструментов загрузки:
- Командная строка запуска конфигуратора. Для команды /DumpConfigToFiles реализован параметр -Server, -Archive, -JobsCount.
- Конфигуратор в режиме агента. Для команды config dump-config-to-files реализованы параметры --archive, --server, --threads.
- Утилита управления автономным сервером (ibcmd). Для команды infobase config export реализованы параметры --archive, --server, --threads.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник