|
Создание zip архива в 1с 8 | ☑ | ||
---|---|---|---|---|
0
ilya1cnik
19.08.16
✎
14:02
|
Добрый день, подскажите, может кто по личному опыту сталкивался с таким вопросом. Создаю выгрузку в dbf файлы, все отлично проходит и файлы создаются. Заказчику надо отправлять их в архиве, предчувствия возмущения пользователей от дополнительной ручной работы решил создать эти архивы программно. Код ниже
Архив = Новый ЗаписьZipФайла(ПолныйПутьАрхив, "", "", МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный, МетодШифрованияZIP.Zip20); Архив.Добавить(Файл.ПолноеИмя, РежимСохраненияПутейZIP.СохранятьОтносительныеПути); Архив.Добавить(Файл2.ПолноеИмя, РежимСохраненияПутейZIP.СохранятьОтносительныеПути); Архив.Добавить(Файл3.ПолноеИмя, РежимСохраненияПутейZIP.СохранятьОтносительныеПути); Архив.Добавить(Файл4.ПолноеИмя, РежимСохраненияПутейZIP.СохранятьОтносительныеПути); Архив.Записать(); все по синтаксис помощнику. Сам архив создается, пустой. Собственно два пути где ошибка... 1. Установлен 7-z и он не дружит с 1с. 2. Путь к файлам архива содержит Кириллицу. может кто сталкивался и знает причину ошибки? Спасибо! |
|||
1
Горогуля
19.08.16
✎
14:05
|
3. файлы лежат на сервере, а ты смотришь в клиента
|
|||
2
Горогуля
19.08.16
✎
14:05
|
4. а какие файлы?
|
|||
3
ilya1cnik
19.08.16
✎
14:09
|
(1) (2) куда скидывать файлы пользователь сам выбирает, вот пример кода относительно первого файла
ИмяФайла = "1" +".dbf"; ИмяФайла2 = "2" +".dbf"; ИмяФайла3 = "3" +".dbf"; ИмяФайла4 = "4" +".dbf"; ИмяКаталога = Прав(СсылкаНаОбъект.Номер,6); ИмяАрхива = ИмяКаталога + ".zip"; Док = СсылкаНаОбъект; Режим = РежимДиалогаВыбораФайла.ВыборКаталога; Диалог = Новый ДиалогВыбораФайла(Режим); Диалог.Заголовок = "Выберите каталог для выгрузки..."; Диалог.ПолноеИмяФайла = ""; Диалог.ПредварительныйПросмотр = Истина; Диалог.Фильтр = "Формат DBF (*.dbf)|*.dbf"; Если Диалог.Выбрать() Тогда ПутьДоФайла = Диалог.Каталог + "/" + ИмяКаталога ; СоздатьКаталог(ПутьДоФайла); ПолныйПуть = ПутьДоФайла + "/"+ ИмяФайла; ПолныйПуть2 = ПутьДоФайла + "/"+ ИмяФайла2; ПолныйПуть3 = ПутьДоФайла + "/"+ ИмяФайла3; ПолныйПуть4 = ПутьДоФайла + "/"+ ИмяФайла4; ПолныйПутьАрхив = ПутьДоФайла + "/"+ ИмяАрхива; Файл = Новый Файл(ПолныйПуть); Файл2 = Новый Файл(ПолныйПуть2); Файл3 = Новый Файл(ПолныйПуть3); Файл4 = Новый Файл(ПолныйПуть4); Иначе Отказ = Истина; Возврат "Файл не выгружен!"; КонецЕсли; хВ = Новый xBase(ПолныйПуть); хВ.Кодировка = КодировкаXBase.OEM; хВ.Поля.Добавить("INN","C",14,0); хВ.Поля.Добавить("DISTRIB","C",100,0); хВ.Поля.Добавить("DATEBEGIN","D",,0); хВ.Поля.Добавить("DATEEND","D",,0); хВ.Поля.Добавить("STORE","C",3,0); хВ.Поля.Добавить("STORETITLE","C",100,0); хВ.Поля.Добавить("EMAIL","C",50,0); Попытка Если Файл.Существует() Тогда //Сообщить("Файл "+ПолныйПуть+" - уже существует! Удалите"); Возврат "Выгрузка невозжна, файл с таким именем существует!"; Иначе хВ.СоздатьФайл(ПолныйПуть); КонецЕсли; хВ.Добавить(); хВ.Кодировка = КодировкаXBase.OEM; хВ.INN = "["+Док.Организация.ИНН+"]"; хВ.DISTRIB = Док.Организация.Наименование; хВ.DATEBEGIN = Док.Дата; хВ.DATEEND = Док.Дата; хВ.STORE = "[0]"; хВ.STORETITLE = Док.Склад; хВ.EMAIL = "[email protected]"; хВ.Записать(); Исключение хВ.ЗакрытьФайл(); КонецПопытки; |
|||
4
Горогуля
19.08.16
✎
14:11
|
(3) ставлю на 3. код не смотрел
|
|||
5
ilya1cnik
19.08.16
✎
14:13
|
(4) Хорошо, рассмотрю такой вариант, спасибо за направление)
|
|||
6
Горогуля
19.08.16
✎
14:15
|
>"Выгрузка невозжна, файл с таким именем существует!"
это кто такой умный придумал? перезаписать файл - это бывает, это можно, не надо стесняться |
|||
7
Mauser
19.08.16
✎
14:20
|
(6) Судя по
Там такого в 4 раза больше |
|||
8
Горогуля
19.08.16
✎
14:22
|
а я бы матом ругался, если б меня заставляли 4 раза имена файлов задавать
|
|||
9
Chameleon1980
19.08.16
✎
14:22
|
а слеш точно туда?
|
|||
10
Горогуля
19.08.16
✎
14:23
|
кстати, переменные ФайлХ зачем вообще?
|
|||
11
Mauser
19.08.16
✎
14:24
|
(10) Чтобы проверить Если Файл1.Существует() Тогда и так далее
Ты что, хочешь, чтобы все перепуталось??? |
|||
12
ilya1cnik
19.08.16
✎
14:26
|
(10) там 4 файла с разным содержимым, просто вопрос был в архиве)) сами dbf он отлично и безошибочно формирует)
|
|||
13
Горогуля
19.08.16
✎
14:26
|
(11) а, нуда. чтоб юзер знал, что удалять врукопашную
|
|||
14
Горогуля
19.08.16
✎
14:27
|
(12) с одной записью? неплохо
|
|||
15
ilya1cnik
19.08.16
✎
14:29
|
(14) Там каждый файл записывается поочередно
|
|||
16
ilya1cnik
19.08.16
✎
14:30
|
(14) Скинул пример формирования первого файла, чтоб понятно чего я хочу в архив добавить, там дальше много всего не хочу городить
|
|||
17
Горогуля
19.08.16
✎
14:31
|
(15) ты уже на сервере посмотрел? хотя нету там ни фига
|
|||
18
Mauser
19.08.16
✎
14:31
|
(13)
... - Солнышко, мы сейчас с папой пойдём погулям, а чтобы скучно не было, мы тебе поставим послушать сказку. Приходят через 30 минут и видят такую картину: их сынишка бъётся головой об стенку: - Хочу! Хочу! Хочу!.. Родители в шоке. Одевают наушники: - Хочешь, я расскажу тебе сказку? крх... - Хочешь, я расскажу тебе сказку? крх... - Хочешь, я расскажу тебе сказку? крх... - Хочешь, я расскажу тебе сказку? крх... |
|||
19
Горогуля
19.08.16
✎
14:34
|
я тут выгрузку делал в регламентированном формате. с полями У1..У5. так ломало писать стр.У1...стр.У5, что пришлось рисовать цикл. всего пять полей, да
|
|||
20
Mauser
19.08.16
✎
14:39
|
Кстати в (0) есть концептуальное такое буддийское, шифрование пустым паролем.
Мне нравится. |
|||
21
Горогуля
19.08.16
✎
14:41
|
(20) и подсказка к нему в комментарии
|
|||
22
IlyaSR
19.08.16
✎
16:43
|
(18) ))) да, убил бы, если нужно так заполнять (8)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |