Имя: Пароль:
1C
1С v8
программное редактирование файла внешней обработки
0 SeiOkami
 
06.10.12
15:59
Доброго времени суток!)

Подскажите кто-нить новичку. Скачал обработку (http://infostart.ru/public/106310/), из неё вытянул код распаковки "внутренностей" внешней обработки при помощи UnpackV8. А как произвести упаковку обратно? Уже столько в нете перерыл, но не нашел(

Задача такая: во внешней обработке есть макет - двоичные данные (это в свою очередь сохранённая внешняя обработка шаблон). Программно этот шаблон должен распаковываться в каталог временных файлов, модуль объекта редактироваться и затем упаковываться в уже нормальный файл внешней обработки и сохраняться где укажет юзер. Всё, в принципе, сделать могу, но вот как упаковать не знаю(
1 SeiOkami
 
06.10.12
16:00
http://infostart.ru/public/106310/    -  ссылку выше плохо вставил
2 pumbaEO
 
06.10.12
16:04
(1) сохрани с v8reader макет с v8unpack и запусти в командной строке с v8unpack.exe /? увидишь там параметры командной строки и там есть как упаковать обратно.
3 bambr1975
 
06.10.12
16:13
http://infostart.ru/public/69976/
Там и запаковка есть (и скачивание без ограничений)
4 SeiOkami
 
06.10.12
16:18
(2), (3) Огромное спасибо!

Я столько времени убил, уже со столькими параметрами запускал экзешник, но он мгновенно закрывался. И только сейчас я вспомнил, что это нормально, ведь не в командной строке запускал)

Параметры для UnpackV8 (может кто искать тоже будет)

 -U[NPACK]     in_filename.cf     out_dirname
 -PA[CK]       in_dirname         out_filename.cf
 -I[NFLATE]    in_filename.data   out_filename
 -D[EFLATE]    in_filename        filename.data
 -E[XAMPLE]
 -BAT
 -P[ARSE]      in_filename        out_dirname
 -B[UILD]      in_dirname         out_filename


=)
5 SeiOkami
 
06.10.12
16:21
Еще вопросик. Я знаю, что можно выгрузить файлы (мне нужны модули) конфигурации строкой
ЗапуститьСистему("DESIGNER/F "+ ПутьКБазе + " /DumpConfigFiles " + """D:\1""" + " -Module");

Но:
1) он выгружает ВСЕ модули, а мне нужен один документ
2) для выгрузки необходимо закрыть конфигуратор.

Есть другие способы? Нужно получить модуль документа.
6 pumbaEO
 
06.10.12
16:25
(5)
1 он выгружает ВСЕ модули, а мне нужен один документ
1.1. бесплатных вариантов.
1.2. в не бесплатном снегопате можно.
2. для выгрузки необходимо закрыть конфигуратор.
сохрани конфигурацию в cf файл, на основании cf создай базу и выполняй выгрузку.
7 SeiOkami
 
06.10.12
16:30
(6)
Не совсем понял. Бесплатного варианта нет, так?
А на счет выгрузить в cf, то это еще дольше будет, если я программно выгружу все модули и, использовав нужный, удалю их.

Обработочка просто должна получить функцию\процедуру выбранного документа. Кроме выгрузки файлов вариантов это организовать нет?
8 pumbaEO
 
06.10.12
16:33
Кроме выгрузки файлов вариантов это организовать нет? - Нет.
Кроме как выгрузить модули конфигурации ты ничего не можешь.

p.s. платный снегопат позволяет получить значение любого (не закрытого) модуля из конфигуратора и сохранить его.
9 SeiOkami
 
06.10.12
16:41
Дело в том, что цель, в данном случае, не оправдывает средства) Думаю, слишком много заморочек и пользователю легче будет скопировать процедуру вручную)

pumbaEO, спасибо)


Как сделаю обработочку, выложу здесь ссылку. Может кому пригодиться, а кто может и совет даст дельный)
10 SeiOkami
 
06.10.12
16:42
По какой это логике mista выделяет текст в отдельный блок? =)
11 pumbaEO
 
06.10.12
16:51
(10) Только Богу известно (вдруг кто-то религиозно обидеться - извините).
(9) Я тебе уже приводил ссылку на универсальну консоль отчетов, там в одном из плагинов генерилась внешний отчет на основании схемы скд, так вот учти тебе еще надо будет uuid обработки поменять.
12 ДенисЧ
 
06.10.12
16:53
(11) не богу, а демону, а конкретно, Асмодею.
13 pumbaEO
 
06.10.12
17:44
(9) посмотри на http://devtool1c.ucoz.ru/load
ирПлатформа.СформироватьВнешнююОбработку();
14 SeiOkami
 
06.10.12
18:32
(13)

Я сделал так, что обработка редактирует модуль объекта и упаковует в новую внешнюю обработку. Но вот как редактировать макет (и добавить новый) я не втыкнул. И еще, как можно редактировать тип реквизита.

ирПлатформа.СформироватьВнешнююОбработку() - сижу разбираю код, но, мне кажется, что там только и редактирование модуля. А с этим уже всё ок)
15 pumbaEO
 
06.10.12
18:37
(14) Ого, как замахнулся - редактировать реквизиты :) . Если бы я умел, давно что нибудь интересное замутил. Насколько я знаю есть всего пару разработок такого плана и все они платные (даже так не показываются).

В шаблонную обработку добавь сколько тебе надо пустых макетов и тогда сможешь макет с необходимым типом заменить программно.
16 SeiOkami
 
06.10.12
18:44
(15)
Говорит, мол ошибка доступа к файлу(

{ВнешняяОбработка.ПомощникДляСозданияВнешнихПечатныхФорм_3.МодульОбъекта(43)}: Ошибка при вызове метода контекста (Записать)
   ФайлМакета.Записать(МассивФайлов.Получить(0).ПолноеИмя);    
по причине:
Ошибка доступа к файлу 'C:\Users\SeiOkami-PC\AppData\Local\Temp\SeiOkami\Temp\81e3021c-cfa8-414b-969b-38c398d77bce.0'


81e3021c-cfa8-414b-969b-38c398d77bce.0 - Это, насколько я понял, распакованный файл макета. Но, пытаясь его перезатереть как файл модуля, у меня выдает ошибку(
17 SeiOkami
 
06.10.12
23:03
После долгих мучений я реализовал желаемое =)

Как опубликуют, размещу здесь ссылку
18 SeiOkami
 
08.10.12
20:27
Может кому будет интересно: вот ради чего я долбил свой мозг =)
http://infostart.ru/public/155206/
19 pumbaEO
 
08.10.12
20:55
(18) и? А альтернативная ссылка где?
20 SeiOkami
 
08.10.12
20:58
21 SeiOkami
 
08.10.12
20:59
это, так сказать, бэта-версия =)
есть еще идеи, которые намерен реализовать
22 pumbaEO
 
08.10.12
21:11
(20) ну теперь и можно скачать .
23 SeiOkami
 
08.10.12
21:15
"инструкцию" описал на инфостарте
24 pumbaEO
 
08.10.12
21:26
(23) не делай так плиз
УстановитьВсякуюХрень, ЗамутитьПростойСпособ - очень уж глаза режет.

где упоминание в публикации, что использовал v8unpack?
25 SeiOkami
 
08.10.12
21:29
(24) а мне нравится. не для разбора же обработка, а для пользования =)

"где упоминание в публикации, что использовал v8unpack?"
И снова как-то не подумал(
исправлю
а на кого ссылаться? взял я из http://infostart.ru/public/106310/
или когось другого? не знаю, как принято =)
26 0xFFFFFF
 
08.10.12
21:33
(0) а что за задачи такие, где это может пригодиться? Ну просто интересно.
27 SeiOkami
 
08.10.12
21:36
(26), читай последние посты. Как-то так =)