|
Изменение docx как XML в 1С КА mszsuz, Гипервизор, RVN, Garykom, shuhard, p-soft, elka302, serpentt, K1RSAN, zenik, kittystark, DemonShinji2, dergreche
| ☑ | ||
|---|---|---|---|---|
|
0
K1RSAN
13.10.26
✎
12:11
|
В общем появилась задача заполнить параметры в документе Word данными из 1С.
Решил попробовать решить НЕ ЧЕРЕЗ Ком объект, вдруг на сервере не будет офиса. Нашел вариант, что можно распаковать docx и получить внутри файл XML и обработать его. Для заполнения обычных параметров всё понятно (хотя деление на XML порой неадекватно по полям). Но надо ещё заполнить таблицу с товарами, количество строк может меняться. И возник вопрос, как это реализовать. Кто-нибудь пробовал? Где можно посмотреть? |
|||
|
1
RomanYS
13.10.26
✎
12:21
|
(0) БСП же, в демо базе всё есть
|
|||
|
2
Garykom
гуру
13.10.26
✎
12:53
|
(0) Было, делал такое
В ДО 2.1 требовалось, даже целый модуль в итоге наваял Поищу |
|||
|
3
Garykom
гуру
14.10.26
✎
10:15
|
(2)+ Нашел, но код не могу выкладывать
Суть все делалось да методом xml-инъекции https://infostart.ru/1c/articles/590918/ Только не своя работа с файлом docx (по сути архива zip где внутри xml) А через методы конфы, внедрение в них с доработкой ДО 2.1 взятой из комментов https://infostart.ru/1c/articles/259510/ И допом наваял свой общий модуль, где функции/процедуры Для удобного создания нужной xml-инъекции для таблицы с нужным числом колонок, установкой текста шапки с указанием шрифтов, размеров и т.д. И добавлением строк в эту таблицу так же заполнением нужными данными с нужными стилями, форматами На выходе готовая строка таблицы - кусок xml для передачи в БСП |
|||
|
4
Garykom
гуру
13.10.26
✎
13:11
|
(3)+ Для выяснения "что вставлять" банально создавал пустой файлик word, делал как надо, записывал
И затем изучал что внутри docx Конечно word сильно замудренно сам добавляет, много лишнего, можно упрощать xml и сильно |
|||
|
5
K1RSAN
13.10.26
✎
13:19
|
(3) Примерно так и пытаюсь, только вот ХЗ, как таблицу сделать, там все колонки разной ширины и т.д.
Плюс внизу итоговые строки, которые есть объединение нескольких колонок. |
|||
|
6
K1RSAN
13.10.26
✎
13:20
|
Пробовал продублировать уже существующую строну, но там же надо найти место куда вставить, не находит
|
|||
|
7
Garykom
гуру
13.10.26
✎
13:25
|
(5) (6) Я ж написал
Создай пустой файлик ворда, сделай нужную табличку в нем в самом ворде, сохрани Затем добавь еще строчку, снова сохрани И сравни между файликами что поменялось Не надо искать нужное место для вставки одной строки таблицы Надо готовить и вставлять целиком таблицу, вместо параметра/метки в шаблоне docx |
|||
|
8
K1RSAN
13.10.26
✎
13:25
|
(7) Теперь понял, спасибо
|
|||
|
9
K1RSAN
13.10.26
✎
14:17
|
(7) Спасибо, получилось
|
|||
|
10
K1RSAN
14.10.26
✎
10:09
|
Всё, спасибо
В принципе этот вариант интереснее и быстрее, чем через Ком объект открывать, база клиентская или серверная, ещё открывается окно Ворд и пока заменяются закладки - желательно ничего не нажимать, а то собьется и т.д. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |