Имя: Пароль:
1C
1C 7.7
v7: Программно заархивировать файл в zip.
,
0 Diman_Kr
 
24.05.15
06:14
Как программно из под 1с 7.7 создать Zip архив?
Ну и соответственно извлечь оттуда?
1 SleepyHead
 
гуру
24.05.15
06:32
читать СП на тему Запуститьприложение() и КомандаСистемы()
2 SleepyHead
 
гуру
24.05.15
06:33
Это если пользоваться только штатными методами 1с.
3 Рэйв
 
24.05.15
06:33
4 SleepyHead
 
гуру
24.05.15
06:34
(3) Ему в 1с77
5 Рэйв
 
24.05.15
06:34
ааа...:-)
Ну тогда с командной строки смотреть ключи
6 Рэйв
 
24.05.15
06:37
7 Diman_Kr
 
24.05.15
06:38
Смысл в том, что бы не использовать архиваторы типа WinRar.
Есть только 1С и Windows. Причем Windows не везде одинаков.
8 Рэйв
 
24.05.15
06:38
(7)в клюшках нет встроенной работы с zip.Так что только внутренностями ты не обойдешься
9 Diman_Kr
 
24.05.15
06:39
(6) Ссылка корявая
10 Рэйв
 
24.05.15
06:39
(9)Провайлер у тебя корявый:-)
https://yadi.sk/i/2kKo48KYgq38V
11 Diman_Kr
 
24.05.15
06:42
(10) Это не то! Это для Линуха.
12 Рэйв
 
24.05.15
06:43
(11)Ключи они и в африке ключи
13 Diman_Kr
 
24.05.15
06:43
(8) Но ведь УРБД создает zip архив!!!
14 Рэйв
 
24.05.15
06:44
(13)В 77 это внутренности платформы. Врядли тебя туда пустят:-)
15 Рэйв
 
24.05.15
06:45
и вообще.Переходите на 8 - там это реализовано:-)
16 Diman_Kr
 
24.05.15
06:46
Обидненько. Просто 44 точки в разных городах. Видимо придется везде как то RAR устанавливать или dll.
17 Рэйв
 
24.05.15
06:46
(16)Ну сидишь на 77 - имей все прелести бытия...
18 Diman_Kr
 
24.05.15
06:46
(15) На 8 не реально.
Своя конфа на 7.7 написана.
19 Diman_Kr
 
24.05.15
06:47
Ладно, и на том спасибо! :(
20 vcv
 
24.05.15
19:34
Говорят, вот так можно:

'The location of the zip file.
ZipFile="C:\Test.Zip"
'The folder the contents should be extracted to.
ExtractTo="C:\Test\"

'If the extraction location does not exist create it.
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(ExtractTo) Then
fso.CreateFolder(ExtractTo)
End If

'Extract the contants of the zip file.
set objShell = CreateObject("Shell.Application")
set FilesInZip=objShell.NameSpace(ZipFile).items
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)
Set fso = Nothing
Set objShell = Nothing
21 vcv
 
24.05.15
19:35
В смысле, копай в эту сторону. Если в Shell.Application есть распаковка, где-то рядом должна быть и архивация.
22 vcv
 
24.05.15
19:48
Вон, например, расписано и архивация и распаковка
http://hiprog.com/index.php?option=com_content&task=view&id=251661619&Itemid=35
23 Aleksey
 
24.05.15
21:15
заюзать ВК, например DialMail.dll


Функция глРаботаСЗИП(Параметры) Экспорт
    Перем ZIP;
    
    ZIP = СоздатьОбъект("AddIn.ZIP");       
    //Инициализация переменных    
    Команда = Параметры.Получить("Команда");//Pack,UnPack;
    ПапкаНазначения = Параметры.Получить("ПапкаНазначения");
    ИмяФайла = Параметры.Получить("ИмяФайла");
    ИмяФайлаЗИП = Параметры.Получить("ИмяФайлаЗИП");

    Если Команда="Pack" Тогда
        Хвостик="упакован";
        Если ФС.СуществуетФайл(ПапкаНазначения+ИмяФайлаЗИП)=1 Тогда
            ФС.УдалитьФайл(ПапкаНазначения+ИмяФайлаЗИП);
        КонецЕсли;    

        ZIP.КаталогДобавления = ПапкаНазначения;
        КоличествоФайлов = ZIP.ДобавитьВАрхив("D", ПапкаНазначения+ИмяФайла, ПапкаНазначения+ИмяФайлаЗИП);
        ФС.УдалитьФайл(ПапкаНазначения+ИмяФайла);
    ИначеЕсли Команда="UnPack" Тогда
        Хвостик="распакован";
            
        Если ФС.СуществуетФайл(ПапкаНазначения+ИмяФайла)=1 Тогда
            ФС.УдалитьФайл(ПапкаНазначения+ИмяФайла);
        КонецЕсли;    
        ZIP.КаталогИзвлечения = ПапкаНазначения;  
        ZIP.ОчиститьМаски();
        КоличествоФайлов = ZIP.Извлечь(,,ПапкаНазначения+ИмяФайлаЗИП);
        ФС.УдалитьФайл(ПапкаНазначения+ИмяФайлаЗИП);
    КонецЕсли;        
        
    Если ZIP.КодОшибки = 0 Тогда
        Состояние("Файл "+ ИмяФайла+" "+Хвостик);    
    Иначе          
        СтрОшибки = "Ошибка работы с архивам: "+ИмяФайлаЗИП+" код "+ZIP.КодОшибки+": "+ZIP.КодОшибкиСтр;
        Сообщить(СтрОшибки,"!");
        ЗаписьЖурналаРегистрации("Ошибка работы с архивам: "+ИмяФайлаЗИП+" код "+ZIP.КодОшибки+": "+ZIP.КодОшибкиСтр,"глРаботаСЗИП","DialMail",,5);
    КонецЕсли;

    
    Возврат "";
КонецФункции    // Извлечь
24 Злопчинский
 
24.05.15
21:31
или другую ВК... у меня - простая и тупая. Которая умеет архивировать один файл
25 ЧеловекДуши
 
25.05.15
06:28
(0) Лучше используй 1С++, там это все есть :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший