8.х Распаковать

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

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Мне нужно чтоб 1с автоматом распаковала архив формата arj, это реально?
    Какие могут быть варианты?
  2. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Используй вот это:

    arj команда архив файл(ы) ключи

    Основные команды:

    a - добавить в архив;
    u - добавить в архив, обновляя существующие файлы, если их время изменилось, и добавляя отсутствующие;
    f - то же самое, но отсутствующие файлы не добавляются;
    l - вывести содержимое архива;
    e - распаковать в текущий каталог;
    x - распаковать с путями.
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    а пример с кодом 1с можно
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Я с WinRar-ом делал:

    Код:
    СтрокаКомандыСистемы = """C:\program files\winrar\RAR.exe"" a c:\temp\ -agYYYYMMDDHHMM " + ПутьКИсходномуФайлу;
    КомандаСистемы(СтрокаКомандыСистемы);    
    
    
    
    
    Выполняется архивирование исходного файла с именем определенного формата(см. ключи консоли к рару).
  5. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Из админстративки бы порекомендовал, выложить rar.exe в какую нибудь общую шару, чтобы у всех на машинах (входящих в локальную сеть) однозначно выполнялась обработка, а то у одних WinRAR установлен на C:\..., у других на D:\... у третих вообще не установлен.
  6. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Согласен. В моем случае такой необходимости не было, писалось на коленке, поэтому заморачиваться не стал. :unsure:
  7. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Все операции с 1с работают в терминале так что с этим проблем не будет
  8. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Кстати, для RARа есть UNRAR.DLL - библиотека с набором функций для работы с RAR архивами, но только распаковывает/просматривает. Укачать можно здесь http://www.rarlab.com/rar_add.htm - там же есть набор примеров по работе с ней для разных языков. В сети ходят слухи, что есть и UNARJ.DLL/UNARJ32.DLL, но я ее не встречал, да и по моим ощущениям ARJ помер давным давно. Хотя когда-то я им активно пользовался....
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Код:
    СтрокаКомандыСистемы = """C:\program files\winrar\RAR.exe"" a c:\temp\ -agYYYYMMDDHHMM " + ПутьКИсходномуФайлу;
    КомандаСистемы(СтрокаКомандыСистемы);  
    
    можно уточнить
    "C:\program files\winrar\RAR.exe" -путь до архиватора
    a-то что будет выполняться в данном случае упаковка
    c:\temp\ -agYYYYMMDDHHMM - имя создаваемого архива
    ПутьКИсходномуФайлу- что будет упаковываться
    Правильно?
  10. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Да простят меня модеры за краткость - правильно.
  11. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Код:
    ПутьКИсходномуФайлу="С:\temp\ofice\KB_PRICE.arj";
    СтрокаКомандыСистемы = """C:\Program Files\WinRAR\RAR.exe"" e c:\temp\ofice\ " + ПутьКИсходномуФайлу;
    КомандаСистемы(СтрокаКомандыСистемы);
    
    Почему тогда не работает?
  12. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Почитай по RARу сопроводительный файл по ключам командной строки.

    Местами меняй пути..Сначала файл архива, потом папку - куда распаковываешь.

    Нельзя же бездумно менять ключи.
  13. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    СтрокаКомандыСистемы = """C:\Program Files\WinRAR\RAR.exe"" x C:\Temp\ofice\KB_PRICE.arj
    C:\Temp\ofice\";
    КомандаСистемы(СтрокаКомандыСистемы);
    Вроде все правильно указал, мне кажется проблема с кавычками как правильно их раставить
  14. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    А формат arj откуда взялся - исторически сложилось? Просто в 1Ске есть встроенный ZIP - если есть возможность перейти на зип-архивы - то вполне все работает с использованием встроенного языка.

    Иначе, конечно - юзать через командную строку.

    Я бы добавил кавычек на имя файла тоже.

    СтрокаКомандыСистемы = """C:\Program Files\WinRAR\RAR.exe"" x ""C:\Temp\ofice\KB_PRICE.arj"" ""C:\Temp\ofice\""";
  15. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Кавычки верно стоят.
    Сообщение системы:
    Выводы сам сделаешь.

    Доп.кавычки нужны, если в пути есть пробелы, а так в них нет необходимости. Поверьте на слово.
  16. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Абсолютно верно.

    Я чаще всего ставлю всегда кавычки, так как привык, что юзеры меняют эти пути потом сами. Либо делаю выбор путей прямо в диалоге.
  17. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    А так распаковывает, а если arj архиватор использовать то там какой файл должен быть вместо rar.exe
  18. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Сам arj32.exe есессно и полный путь к нему, но только уже с синтаксисом команды именно для этого архиватора. Это уже см. первый ответ.
  19. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Заработало с Arj
    для примера вдруг кому пригодится
    СтрокаКомандыСистемы = """C:\Arj32\Arj32.exe"" x C:\Temp\ofice\KB_PRICE.arj C:\Temp\ofice\";
    КомандаСистемы(СтрокаКомандыСистемы);
    :unsure:

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