Шиянов Алексей

3
Рейтинг

A-Lex-Is
Алексей Шиянов



  •   Регистрация: 05.10.2011 (12 лет назад)

  •   Был(а) на сайте: 10.11.2016

Подписчики 1

Рейтинг 3

Пример обработки для распаковки архивов с помощью 7-zip внутри 1с

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

Пример обработки для распаковки архивов с помощью 7-zip внутри 1с. Алгоритм может использоваться в прикладных системах для прозрачной работы с архивами внутри 1С.

1 стартмани

05.03.2012    5754    60    A-Lex-Is    8       

3

Комментарии

DevПример обработки для распаковки архивов с помощью 7-zip внутри 1с#6 18.03.12 16:19
У меня это реализовано так:


[COLOR=#3333FF]Файл = Новый Файл(ИмяФайла);
Если НЕ Файл.Существует() Тогда
Сообщить ("Файл для распаковки не найден!",СтатусСообщения.Важное);
Возврат;
КонецЕсли;

Каталог = Новый Файл(ИмяКаталога);
Если НЕ Каталог.Существует() Тогда
ИмяКаталога = Файл.Путь+Файл.ИмяБезРасширения;
КонецЕсли;

НайтиАрхиватор();

Архиватор = Новый Файл (ПутьКАрхиватору);
Если НЕ Архиватор.Существует() Тогда
Возврат;
КонецЕсли;

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
//ВременныйФайл = Новый Файл (ИмяВременногоФайла);
//кИмяВременногоФайла = ВременныйФайл.Имя;
p = ? (НЕ ПустаяСтрока(Пароль)," -p"+Пароль," -p");
СтрокаДляВыполнения = """"+ПутьКАрхиватору +""""+" " + "e " + ИмяФайла +" -aoa" +" -o" + ИмяКаталога+p+" -y"+" > "+ ИмяВременногоФайла;
//Сообщить (СтрокаДляВыполнения);
КомандаСистемы (СтрокаДляВыполнения);
АнализРезультата = Новый ЧтениеТекста(ИмяВременногоФайла,КодировкаТекста.OEM);
СписокРаспакованныхФайлов = Новый Массив();
Стр = АнализРезультата.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл
ПозСтрокаИмениФайла = Найти(Стр, "Extracting ");
Если ПозСтрокаИмениФайла Тогда
ИмяРаспакованногоФайла = Прав (Стр, СтрДлина(Стр)-СтрДлина("Extracting "));
СписокРаспакованныхФайлов.Добавить(ИмяРаспакованногоФайла);
КонецЕсли;
Стр = АнализРезультата.ПрочитатьСтроку();
КонецЦикла;

АнализРезультата = Новый ЧтениеТекста(ИмяВременногоФайла,КодировкаТекста.OEM);
Стр = АнализРезультата.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл
РезУспешно = Найти (Стр,"Everything is Ok");
Если РезУспешно Тогда
Прервать;
КонецЕсли;
Стр = АнализРезультата.ПрочитатьСтроку();
КонецЦикла;

Если РезУспешно Тогда
Предупреждение ("Все файлы распакованы успешно!");
RunApp ("explorer.exe "+ИмяКаталога);
Иначе
Предупреждение ("При распаковке файлов произошли ошибки! Подробности в служебном сообщении!");
АнализРезультата = Новый ЧтениеТекста(ИмяВременногоФайла,Кодировкатекста.OEM);
Стр = АнализРезультата.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл
НеверныйПароль = Найти(Стр,"═хюяючэрээр ю°шсър");
Если НеверныйПароль Тогда
Сообщить (СтрЗаменить(Стр,"═хюяючэрээр ю°шсър","Неверный пароль"),СтатусСообщения.Внимание);
Иначе
Сообщить (Стр,СтатусСообщения.Внимание);
КонецЕсли;
Стр = АнализРезультата.ПрочитатьСтроку();

КонецЦикла;
КонецЕсли;

Попытка
УдалитьФайлы (ИмяВременногоФайла);
Исключение
КомандаСистемы ("del "+""""+ИмяВременногоФайла+"""");
КонецПопытки;
КонецПроцедуры[/COLOR]
DevПример обработки для распаковки архивов с помощью 7-zip внутри 1с#3 15.03.12 22:13
Для платформы 8.1. Код могу Вам выслать....
DevПример обработки для распаковки архивов с помощью 7-zip внутри 1с#0 13.03.12 22:47
Пример обработки для распаковки архивов с помощью 7-zip внутри 1с. Алгоритм может использоваться в прикладных системах для прозрачной работы с архивами внутри 1С.
Devкак с помощью ADO, передавать данные из 1С в Access в 1С8.1#5 05.12.11 11:51
Отличается несильно, но учтите, что многих вещей в 1с 8.0 нет. Например, таблицу значений нельзя использовать в качестве источника данных для запроса и т.д.
DevРегистр слов#9 05.12.11 11:49
Видимо, запятую где-то пропустили...
AdminРегистро зависимый пароль!#10 05.12.11 11:36
Сделайте доменную авторизацию в 1С, а каждому пользователю заведите отдельный аккаунт для входа в Windows.
HardwareЗвук сирены после включения компьютера#49 05.12.11 11:25
Попробуйте все разобрать и заменить термопасту.