[РЕШЕНО] Архивирование

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем kisol, 12 авг 2015.

  1. TopicStarter Overlay
    kisol
    Online

    kisol Профессионал в 1С

    Регистрация:
    25 июл 2012
    Сообщения:
    394
    Симпатии:
    41
    Баллы:
    54
    Подскажите, в табличной части задаются пути к данным которые нужно за архивировать, если указать файлы то данные копируются, но если указать напрямую папку с файлами, то создается пустой архив.

    PHP:
    &НаКлиенте
    Процедура Архивировать
    (Команда)

       
    Архив Новый ЗаписьZIPФайла(Объект.ПутьКудаКопировать+"\"+"Архив"+".zip", "Пароль", "Комментарий",
       МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный, МетодШифрованияZIP.Zip20);

       Для Каждого СтрокаТЧ ИЗ Объект.ТабОткудаКопировать Цикл //обходим табличную часть, в ней строки с путем где лежат файлы
         Архив.Добавить(СтрокаТЧ.ПутьОткудаКопировать, РежимСохраненияПутейZIP.СохранятьПолныеПути,
           РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
       КонецЦикла;
       Архив.Записать();
       Сообщить("
    Заархивировал");

    КонецПроцедуры
    Решение:
    Код:
    &НаКлиенте
    Процедура Архивировать(Команда)
    
        Архив = Новый ЗаписьZIPФайла(Объект.ПутьКудаКопировать+"\"+"Архив"+".zip", "Пароль", "Комментарий",
        МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный, МетодШифрованияZIP.Zip20);
    
        Для Каждого СтрокаТЧ ИЗ Объект.ТабОткудаКопировать Цикл //обходим табличную часть, в ней строки с путем где лежат файлы
            Файл = Новый Файл(СтрокаТЧ.ПутьОткудаКопировать);
            Если Файл.ЭтоФайл() Тогда
                  Архив.Добавить(СтрокаТЧ.ПутьОткудаКопировать, РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
                РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
            Иначе
                 Архив.Добавить(СтрокаТЧ.ПутьОткудаКопировать+"\", РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
                РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
            КонецЕсли;             
        КонецЦикла;
    
        Архив.Записать();
        Сообщить("Заархивировал");
    
    КонецПроцедуры
    
    Последнее редактирование: 12 авг 2015

Поделиться этой страницей