Из Word в табличный документ

18.08.21

Разработка - Универсальные функции

Быстро и просто: текст, списки, таблицы. Готовый код

Началось с того, что возникла задача сделать средствами mxl вывод документа, который предоставили в виде MS Word. Поскольку перекидывать в макет всё это было нудно, и была вероятность ошибиться, я слегка автоматизировал процесс. Именно слегка, т.к. всё равно ещё надо разбить на секции, сделать для таблиц вывод содержимого вместо пустых ячеек, подставить конкретику в нужных абзацах, итд. Но трудоёмкость стала в разы меньше.

Сразу подчёркиваю: это не совсем готовый механизм, который можно сразу давать пользователю (хотя для относительно простых документов прокатит), это инструмент для разработчика, которому надо сделать "как в Ворде", при этом ни Ворда, ни ОпенОфиса на доступных ПК может вообще не быть, или если нужна гибкость обработки, которую возня с шаблоном не даёт. Чтобы не морочиться с СОМ-действиями, или если эксплуатация будет вообще не на винде и СОМ там не светит.

Сам механизм использует СОМ, в режиме чтения вытаскивая из документа самое основное. Получающийся табличный документ единый по разметке ширин областей, т.е. без сюрпризов (хотя, может, наоборот надо бы каждый абзац в свой формат).

Умеет абзацы с минимумом форматирования, простые и нумерованные списки, таблицы.

 
 Весь исполняемый код

 

В коде я также постарался указать потенциально нужные возможности (на будущее, если понадобится) и некоторые нюансы. Пока рассчитано на А4 и документ из одной "колонки", это наиболее частые случаи в практике. Картинки вытаскивать не стал, но при нужде можно докрутить. Возможно, потребуется "пристрелка" секций по высоте.

Работать будет на любых 8.2 и 8.3, и на сервере, и на клиенте. В приведённом примере клиентский код.

Естественно, это БАЯН. Такое наверняка делали, не могли не делать. И, конечно, через OpenXML и прочая. Но я не заморачивался, да и хмл этот временами подкидывает неочевидные сюрпризы...

Кому пригодится, по-быстрому наваять макет по документу, например - вот и хорошо.

Вступайте в нашу телеграмм-группу Инфостарт

Word в табличный документ mxl doc макет печатной формы COM-обмен с

См. также

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    5531    DeerCven    15    

57

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    46703    dimanich70    83    

165

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    6895    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    57925    atdonya    31    

68

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    8673    ke.92@mail.ru    17    

68

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    22904    YA_418728146    8    

174
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Дмитрий_DGR 20.08.21 11:27 Сейчас в теме
Получилось, большое спасибо, давно ждал такую обработку!
user1741387; +1 Ответить
2. gubanoff 63 23.08.21 13:45 Сейчас в теме
(0) Пожалуйста, добавьте готовую обработочку к статье для удобства
Spacer; unknown181538; +2 Ответить
3. Perfolenta 207 25.08.21 01:25 Сейчас в теме
Спасибо, работает... хотя, я пока только на простых документах проверил, но уже понятно, что полезная штука...
4. ekonoya 05.09.21 13:34 Сейчас в теме
Благодарю, Вы очень выручили
5. fixin 4322 08.02.22 15:10 Сейчас в теме
Спасибо, обернул в обработку, работает.
Правда в УФ пришлось убрать ОбработкаПрерыванияПользователя.
Результат не так уж и много полировать пришлось.
Есть свои артефакты, конечно, но куда ж без них.
6. unknown181538 163 05.10.22 03:02 Сейчас в теме
Падала из-за недопустимых символов XML - добавил замену - все конвертнулось. По первому впечатлению - прилично. Вот код, обернутый в обработку.
Прикрепленные файлы:
КонвертнутьWORD.epf
Spacer; Prad2002; kawaietz; baracuda; Breas; Ermigen; vanyek; Светлый ум; Ali_q; KoC_one; citkis; user591389_aska_rabota; graphbuh; assa; +14 Ответить
9. Dima1205 140 19.03.24 09:44 Сейчас в теме
Огромное спасибо
(6) Ради эксперимента конвернул формат не A4 (Закоментил код).По итогу могу сказать - справилась на 3-ку. Этого более чем достаточно.
7. webester 26 28.08.23 05:34 Сейчас в теме
(0)Огромное спасибо тебе. На первый взгляд работает вполне себе прилично.
8. ivprovotorov 62 13.12.23 09:32 Сейчас в теме
Огромное спасибо! Помогло справиться с нудной работой по переводу из формата Word
10. One 04.07.24 13:47 Сейчас в теме
Автору огромное спасибо!!! Столько труда на общую пользу. Ещё раз спасибо!!!
11. andrew_alen 15.08.24 16:16 Сейчас в теме
Вопрос вот как картинки перенести? Т.е. если в вордовском файле есть картинки - они то не переносятся в pdf.
Для отправки сообщения требуется регистрация/авторизация