8.х Как можно за архивировать файл архиватором 7z?

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

  1. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    Я так понимаю, можно запустив командную строку, и от туда уже управляться с 7z, а вот может можно подключить внешнюю компоненту или ещё как, что б не через командную строку архивировать файл?
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Почему бы не воспользоваться работой с форматом zip? Вам принципиален 7zip? Неужели на ваших документах разница в размере после сжатия между zip и 7zip настолько существенна, что вы так хотите его использовать?
  3. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    Да, действительно, принципиально, канал слабый, а проведенные эксперименты с моими данными показывают, что 7z в 3 раза лучше сжимает чем обычный zip.
  4. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    Может тогда есть вариант, как можно сделать так, что б при выполнении архивации не выскакивал черный экран терминала?
  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Кхм, т.е. на 300% лучше? :)
    Такого не бывает. Максимум - процентов 10 выиграть можно в случае больших файлов.

    Смотрите, какие аргументы принимает и запускайте через КомандаСистемы()
  6. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    Файлы действительно не маленькие.
    Я вот тут пытаюсь такой код реализовать:
    Код:
    КомандаСистемы(\"\"\"\"+ПутьКАрхиватору+\"7z\"\"\"+\" a -t7z \"\"\" + ПутьКудаСохраняетсяОтчет+\"\"+ИмяАрхива+\"\"\"\"+\" \"+\"\"\"\"+ПутьИИмяФайлаЭксель+\"\"\"\"+\" -mx=9\"+Символы.ПС + \"pause\");
    
    Что-то парсер глючит, вот как выглядит код:
    КомандаСистемы(""""+ПутьКАрхиватору+"\7z"""+" a -t7z """ + ПутьКудаСохраняетсяОтчет+"\"+ИмяАрхива+""""+" "+""""+ПутьИИмяФайлаЭксель+""""+" -mx=9"+Символы.ПС + "pause");

    По идее в систему передается такая команда:
    Но при запуске её 1с-кой ничего не происходит, а вот если напрямую ввожу эту команду в командную строку, то все Ок. Что не так?
  7. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Попробуйте так: создайте .bat файл, создайте ярлык на него. В свойствах ярлыка укажите "Окно - свернутое в значок". И вызывайте из 1с этот ярлык.


    Может чуть красивее будет. :)
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Так по идее или точно такая? (присвойте первоначально КомандаСистемы(бла-бла-бла), вот это бла-бла-бла строке и посмотрите чему строка равна). Какой результат выполнения команды (на экране то что)?
    Ну я бы попробовал дописать расширения, вдруг поможет. Т.е. типа "C:\Program Files\7-Zip\7z.exe" a -t7z "C:\Work\DelMe\Export.7z" "C:\Work\DelMe\Export.xls" -mx=9"
    Далее, у вас 1С - под терминалом работает или локальная установка? Если под терминалом - права на папку с 7zip есть?
  9. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    Точно такая.
    1с - локальная
    Немного видоизменил код:
    Вот такое сообщение выдает 1с-ка:
    На экране командной строки:
    Если я вручную в командной строке введу:
    то получается:
    Посмотреть вложение 4189

    Вложения:

    • cmd.png
      cmd.png
      Размер файла:
      12,8 КБ
      Просмотров:
      75
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуйт ВСЮ строку взять в кавычки
  11. TopicStarter Overlay
    Dimka77
    Offline

    Dimka77 Опытный в 1С

    Регистрация:
    6 июн 2009
    Сообщения:
    279
    Симпатии:
    0
    Баллы:
    26
    - сработало!!!
    Если кому надо, вот код:

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