1с создать архив zip
ZIP-архив
1С:Предприятие 8.2. Подскажите, пожалуйста, необходимо сделать такую задачу: есть реквизит.
Создать zip архив
При нажатии на кнопку собирается csv файл и выдается пользователю на скачивание. Как сделать, чтоб.
Создать запароленый zip-архив
как создать архив zip с паролем? похоже универсального решения нет. может кто-то все же знает.
Создать пустой ZIP архив с комментарием
Ребятушки, как создать пустой zip архив с комментарием? Так почему-то не работает: .
Как ты думаешь если сто раз записать файл с именем "ptz.zip" в папку! То в этом архиве сколько файлов будет?
Добавлено через 1 минуту
По реке плывет кирпич, деревянный как стекло, ну и пусть себе плывет нам не нужен пенопласт!
Добавлено через 1 минуту
Попробуй для себя ответить, что значит в 1С конструктор "Новый" и что он делает в цикле?
Dethmontt, не понимаю, вы имеете ввиду так
Пока на вопросы не ответишь, не поймешь.
Добавлено через 1 минуту
З.Ы. я не буду показывать КАК это сделать. По простой причине что ты постоянно бездумно что то пишешь.
Dethmontt, создает новый архив, да я вижу что в цикле находит файл и создает с ним архив, потом находит опять файл и создает опять новый архив и так пока не дойдет до последнего и создаст новый архив с последним файлом, мне не понятно как поместить все файлы в один архив.
duk337, сохраняет только архив по последнему условию и последний файл
Вы всегда пишете одно (зачастую непонятно что), а тексты говорят о чём-то другом (тоже не понятно о чём). Я запарился ломать голову и придумывать уточняющие вопросы.
Раз в конфигураторе ты читать не хочешь. Читай тут:
ЗаписьZipФайла (ZipFileWriter)
Добавить (Add)
Синтаксис:
Тип: Строка.
Имя файла, помещаемого в архив, или маска.
Недопустимо использование в именах файлов и папок букв национальных алфавитов, которые при преобразовании из символов UNICODE в узкие символы могут быть преобразованы с потерей информации. Рекомендуется использовать в именах файлов и папок символы латинского алфавита.
Запрещены символы: > < | ? * / \ : ".
(необязательный)
Тип: РежимСохраненияПутейZIP.
Метод сохранения путей к файлу в архиве.
Значение по умолчанию: НеСохранятьПути.
(необязательный)
Тип: РежимОбработкиПодкаталоговZIP.
В случае добавления файлов по маске обрабатывать дополнительно подкаталоги.
Значение по умолчанию: НеОбрабатывать.
Описание:
Добавляет новый файл в архив.
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Примечание:
Если при открытии в параметре метода Открыть был указан существующий файл ZIP архива, то выполнение данного метода не приводит к добавлению указанного файла к существующему архиву. Прежний архив при выполнении метода Записать будет полностью заменен на новый, состав которого формируется данным методом.
Добавление в архив файла текущего архива вызывает исключительную ситуацию при выполнении метода Записать.
Параметр имеет смысл указывать, если в архив добавляется один файл или группа файлов по указанной в параметре маске.
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий:
* Создать архив с необходимыми параметрами, в который будут помещаться файлы.
* Поместить в архив необходимые файлы.
* Записать архив.
Создание объекта ЗаписьZIPФайла можно осуществить двумя путями - создать инициализированный объект или создав неинициализированный объект вызвать у него метод Открыть. В обоих случаях состав параметров является одинаковым. В самом простом случае требуется указать только имя файла, куда будет записан архив.
Для создания нового архива требуется указать:
* Имя файла, куда будет записан архив. Этот параметр является обязательным. Если такой файл уже существует на диске, он будет перезаписан!Пароль доступа к архиву. Если этот параметр пропущен или равен пустой строке, то шифрование производится не будет!
* Комментарий к архиву.
* Метод сжатия файлов в архиве. На выбор предоставляется возможность скопировать файлы в архив без сжатия или сжать их. По умолчанию файлы сжимаются.
* Уровень сжатия файлов в архиве. Можно выбирать между минимальным, оптимальным и максимальным сжатием. По умолчанию используется оптимальное сжатие
* Метод шифрования. Можно защитить архив методом шифрования ZIP 2.0, совместимым с большинством программ, или с помощью шифрования на основе новейшего стандарта AES с различной длиной ключа (128, 192 и 256 бит). Однако следует помнить, что данный метод может быть не совместим с некоторыми программами архивирования, например WinRAR.
После создания объекта необходимо добавить в него необходимые файлы, воспользовавшись методом Добавить. Он принимает на вход 3 параметра:
1. Полное имя файла или маску.
2. Режим сохранения путей к файлу. Можно сохранять полные пути, не сохранять пути совсем или сохранять пути относительно каталога. Режим обработки подкаталогов. Можно обрабатывать подкаталоги рекурсивно или не обрабатывать их. Параметр имеет смысл, если в качестве имени указана маска.
После того, как все необходимые файлы добавлены, можно записать архив на диск, воспользовавшись методом Записать().
Важно понимать, что до выполнения этого метода, никаких реальных действий по созданию архива не происходит. После записи архива на диск объект закрывает его и для работы со следующим архивом необходимо выполнить метод Открыть().
Пример:
Код 1C v 8.х
Особенности упаковки файлов по маске
Остановимся подробнее на особенностях упаковки файлов по маске.
Предположим, что у нас есть следующий файлы, которые нам необходимо поместить в архив:
c:\ZipTest\11.xls
c:\ZipTest\12.xls
c:\ZipTest\13.xls
c:\ZipTest\MoreFiles\14.xls
c:\ZipTest\MoreFiles\15.xls
c:\ZipTest\MoreFiles\16.xls
Код 1C v 8.х
В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\12.xls
\13.xls
Код 1C v 8.х
В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls
Код 1C v 8.х
В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls
\ZipTest\MoreFiles\14.xls
\ZipTest\MoreFiles\15.xls
\ZipTest\MoreFiles\16.xls
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий:
* Создать архив с необходимыми параметрами, в который будут помещаться файлы.
* Поместить в архив необходимые файлы.
* Записать архив.
Создание объекта ЗаписьZIPФайла можно осуществить двумя путями - создать инициализированный объект или создав неинициализированный объект вызвать у него метод Открыть. В обоих случаях состав параметров является одинаковым. В самом простом случае требуется указать только имя файла, куда будет записан архив.
Для создания нового архива требуется указать:
* Имя файла, куда будет записан архив. Этот параметр является обязательным. Если такой файл уже существует на диске, он будет перезаписан!Пароль доступа к архиву. Если этот параметр пропущен или равен пустой строке, то шифрование производится не будет!
* Комментарий к архиву.
* Метод сжатия файлов в архиве. На выбор предоставляется возможность скопировать файлы в архив без сжатия или сжать их. По умолчанию файлы сжимаются.
* Уровень сжатия файлов в архиве. Можно выбирать между минимальным, оптимальным и максимальным сжатием. По умолчанию используется оптимальное сжатие
* Метод шифрования. Можно защитить архив методом шифрования ZIP 2.0, совместимым с большинством программ, или с помощью шифрования на основе новейшего стандарта AES с различной длиной ключа (128, 192 и 256 бит). Однако следует помнить, что данный метод может быть не совместим с некоторыми программами архивирования, например WinRAR.
После создания объекта необходимо добавить в него необходимые файлы, воспользовавшись методом Добавить. Он принимает на вход 3 параметра:
1. Полное имя файла или маску.
2. Режим сохранения путей к файлу. Можно сохранять полные пути, не сохранять пути совсем или сохранять пути относительно каталога. Режим обработки подкаталогов. Можно обрабатывать подкаталоги рекурсивно или не обрабатывать их. Параметр имеет смысл, если в качестве имени указана маска.
После того, как все необходимые файлы добавлены, можно записать архив на диск, воспользовавшись методом Записать().
Важно понимать, что до выполнения этого метода, никаких реальных действий по созданию архива не происходит. После записи архива на диск объект закрывает его и для работы со следующим архивом необходимо выполнить метод Открыть().
Пример:
Код 1C v 8.х
Особенности упаковки файлов по маске
Остановимся подробнее на особенностях упаковки файлов по маске.
Предположим, что у нас есть следующий файлы, которые нам необходимо поместить в архив:
c:\ZipTest\11.xls
c:\ZipTest\12.xls
c:\ZipTest\13.xls
c:\ZipTest\MoreFiles\14.xls
c:\ZipTest\MoreFiles\15.xls
c:\ZipTest\MoreFiles\16.xls
Код 1C v 8.х
В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\12.xls
\13.xls
Код 1C v 8.х
В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls
Код 1C v 8.х
В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls
\ZipTest\MoreFiles\14.xls
\ZipTest\MoreFiles\15.xls
\ZipTest\MoreFiles\16.xls
Платформа 1С 8.3 для работы с архивами использует формат ZIP . Это популярный формат архивации файлов и сжатия данных без потерь, который может содержать один или несколько файлов и/или каталогов. Для этого во встроенном языке 1С 8.3 существуют функции ЗаписьZIPФайла и Чтение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Архив ()
// Распаковываем Doc31032020.zip в папку "D:\AvtoArhiv\"
ФайлАрхива = Новый ЧтениеZipФайла ( "D:\AvtoArhiv\Doc31032020.zip" , "" ); // путь, пароль к архиву
// Сообщим комментарий к архиву
Сообщить ( ФайлАрхива . Комментарий );
РежимВосстПутейФайлов = РежимВосстановленияПутейФайловZIP . Восстанавливать ;
// Распаковываем все файлы в D:\MyDocuments\Out
ФайлАрхива . ИзвлечьВсе ( "D:\MyDocuments\Out" , РежимВосстПутейФайлов ); // (путь, восстанавливать каталоги)
// Или распаковываем файлы по одиночке.
Для Каждого Элемент Из ФайлАрхива . Элементы Цикл
Сообщить ( ". разархивирую. " + Элемент . ПолноеИмя );
//(Элемент, Путь, ВосстанавливатьКаталоги, Пароль)
ФайлАрхива . Извлечь ( Элемент , "D:\MyDocuments\Out" , РежимВосстПутейФайлов , "" );
то в результате в архиве нету разбиения по папкам, просто все файлы в кучу.
А если пишу так:
то в результате в архиве папка, из которой выполняется обработка, потом папка для сохранения архива, и уже в ней нужные мне папки, в которых файлы. Как сделать так, чтоб в архиве были только нужные папки с файлами (т.е. например полный путь файла для архива:
E:\my\test\BrandName1\333.jpg
E:\my\test\BrandName2\334.jpg
а мне нужно чтоб в архиве было:
BrandName1\333.jpg
BrandName2\334.jpg
Заранее всем спасибо.
Добавлено через 55 секунд
В массиве МассивФайлов у меня полные пути к файлам, которые необходимо добавить в архив.
Как открыть архив Rar или Zip и работать с файлами архива.
Как открыть архив Rar или Zip и работать с файлами архива. Тоесть не распоковывая её, а сразу в.
Создание архива (ZIP)
Доброго времени суток, Если кто-то знает, как в VBS проводить архивацию папок в zip, подскажите.
Создание ZIP архива
Есть несколько xml файлов. Надо их засунуть в 1 архив. Есть-ли подходящая либа на плюсах? Про zlib.
Создание ZIP архива
У меня есть несколько папок с файлами, надо из каждой папки создать ZIP архив. Как это сделать? .
Loya, в 1С достаточно простой механизм работы с архивами: либо полные пути, либо относительные.
В вашем случае я бы отсекала все слеши в пути, кроме последнего, создавала временные одноименные каталоги, копировала туда заданные файлы и архивировала бы файлы из пути нужного формата.
В конце - удалить файлы, созданные во временном каталоге пользователя.
Примерно так, но думаю, КаталогВременныхФайлов() использовать не стоит при сохранении полного пути. Задайте корень:
По массиву временных файлов - можно было бы грохнуть сразу один каталог, но это дополнительная ветка в пути к файлу, а в случае разброса исходных файлов - однозначно не подходит.
класс, я своими слэшами сломала подсветку кода
GreenkA, спасибо большое! Я не стала так сильно заморачиваться, оставила возможность пользователю самому выбирать, или всё в одну кучу, или архив с вложенными папками, или вообще без архива (созданные папки с файлами заархивировать может вручную, это пара кликов мышкой). Но Ваш код наверняка пригодится мне или ещё кому-нить в будущем. Ещё раз спасибо!
Читайте также: