|
|
|
Сложные печатные формы | ☑ | ||
|---|---|---|---|---|
|
0
MistaEr
02.11.23
✎
11:14
|
Добрый день! Заказчик предоставляет шаблоны печатных форм в формате ворд. Через макет mxl, посчитали слишком сложно реализовать. Так и сделали, создаем Новый COMОбъект("Word.Application"), заменяем параметры, удаляем ненужные закладки и строки таблиц, выводим картинки. Работает не быстро. Какие еще есть варианты разработки сложных печатных форм, прошу поделиться.
|
|||
|
1
Волшебник
02.11.23
✎
11:16
|
MXL побыстрее будет, сделайте над собой усилие
|
|||
|
2
vicof
02.11.23
✎
11:18
|
Для начала посмотреть, что именно небыстро.
|
|||
|
3
PLUT
гуру
02.11.23
✎
11:35
|
(0) убыстрить можно, если не использовать COMОбъект
а работать напрямую с XML шаблона печатных форм в формате ворд ДД = РеквизитФормыВЗначение("Объект").ПолучитьМакет(ИмяМакета);
Чтение = Новый ЧтениеДанных(ДД);
БуферДД = Чтение.ПрочитатьВБуферДвоичныхДанных();
Поток = Новый ПотокВПамяти(БуферДД);
Каталог = КаталогВременныхФайлов() + "ШляпаКакаято";
СоздатьКаталог(Каталог);
ЗИП = Новый ЧтениеZipФайла(Поток);
ЗИП.ИзвлечьВсе(Каталог, РежимВосстановленияПутейФайловZIP.Восстанавливать);
ЗИП.Закрыть();
Поток.Закрыть();
Чтение.Закрыть();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(Каталог + "\word\document.xml");
Построитель = Новый ПостроительDOM;
Док = Построитель.Прочитать(ЧтениеXML);
ЧтениеXML.Закрыть();
Разыменователь = Новый РазыменовательПространствИменDOM(Док);
ВыражениеXPath = Док.СоздатьВыражениеXPath(...
...тут какие-то магические заклинания 1С по замене параметров, удалению ненужных закладок и строк таблиц и выводу картинки...
//Сохранение результата
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(Каталог + "\word\document.xml");
ЗаписьDOM.Записать(Док, ЗаписьXML);
ЗаписьXML.Закрыть();
Поток = Новый ПотокВПамяти();
ЗаписьZIP = Новый ЗаписьZipФайла(Поток,,,МетодСжатияZIP.Сжатие);
ЗаписьZIP.Добавить(Каталог + "\*.*", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
ЗаписьZIP.Записать();
ДД = Поток.ЗакрытьИПолучитьДвоичныеДанные();
АдресВременногоХранилища = ПоместитьВоВременноеХранилище(ДД, УникальныйИдентификатор);
УдалитьФайлы(Каталог);
|
|||
|
4
arsik
гуру
02.11.23
✎
11:39
|
(3) В БСП есть примеры внешних печатных форм в ворде. Там все просто
|
|||
|
5
d4rkmesa
02.11.23
✎
11:47
|
(0) ActiveDocument, в типовых есть примеры.
|
|||
|
6
PLUT
гуру
02.11.23
✎
11:48
|
(4) просто, но не быстро :)
например, шаблон на 30 страниц с туевой хучей параметров для замены выводится на печать минут 10... после магии из (3) - примерно секунд 10 |
|||
|
7
Волшебник
02.11.23
✎
11:50
|
(3) 🔥 Решение — огонь!
|
|||
|
8
PLUT
гуру
02.11.23
✎
15:43
|
(7) мопед не мой, но оказался полезным
не помню, чем вдохновлялся, возможно это оно: https://infostart.ru/1c/articles/590918/ |
|||
|
9
d4rkmesa
02.11.23
✎
11:53
|
(0) "Через макет mxl, посчитали слишком сложно реализовать"
Если в макетах данные идут построчно, то реализовать можно в табличный документ, я встречал не так часто формы, которые особенно муторно рисовать. |
|||
|
10
arsik
гуру
02.11.23
✎
11:57
|
Через форматированный документ еще можно
|
|||
|
11
Масянька
02.11.23
✎
12:03
|
(6) 10 секунд так уж много (для 30 страниц). Хотят красоты - пусть ждут.
|
|||
|
12
Масянька
02.11.23
✎
12:04
|
(9) А выделение жирным (например) одного слова (параметра) в строке - как в mxl?
|
|||
|
13
Donkey_hot
02.11.23
✎
12:07
|
(12) Вроде обещали с 23-й платформы... Сам не проверял.
|
|||
|
14
PLUT
гуру
02.11.23
✎
12:07
|
(11) а 10 минут что-то не хотят ждать
"ваша программа не работает!" |
|||
|
15
PLUT
гуру
02.11.23
✎
12:10
|
(14) ну можно котиков вывести как вариант, чтобы нескучно было
|
|||
|
16
MistaEr
02.11.23
✎
12:24
|
(3) Спасибо, будем изучать)
|
|||
|
17
Gucci76
02.11.23
✎
13:10
|
Как правило первая печатная форма в ВОРДе делается долго, но следующая в разы быстрее формируется
|
|||
|
18
d4rkmesa
02.11.23
✎
13:16
|
(12) На новой платформе через форматированную строку, но могут быть нюансы. )
|
|||
|
19
Федя Тяпкин
02.11.23
✎
15:36
|
(3) спасибо. утащил в закладки.
|
|||
|
20
PLUT
гуру
02.11.23
✎
15:43
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |