Подключаемые печатные формы с .DOCX макетом без Word'а

0. 487 24.07.18 15:24 Сейчас в теме
Данная обработка является подключаемой печатной формой в docx, своего рода шаблоном для удобного и быстрого выпуска новых печатных форм на основе docx макета.
При этом не требуется установленный word.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. newold2 123 25.07.18 12:31 Сейчас в теме
1 стартмани - это бесплатно?
2. 🅵🅾️🆇 25.07.18 12:36 Сейчас в теме
(1) Вы пропустили в публиции следующий абзац:
UPD: К сожалению Инфостарт не дает бесплатно выложить обработку, поэтому прикрепляю листинг (ну или напишите мне):


И вы всегда можете написать мне, Я обязательно отвечу, если в телегу - то практически моментально :3
Адрес в профиле, редактор не позволил мне прикрепить бесплатно и указать контактные данные.
Также инфостарт не разрешает давать линк на гитхаб :c
pavelpribytkin96; jONES1979; +2 Ответить
9. jONES1979 15.08.18 08:35 Сейчас в теме
Здравствуйте!
А этот проект есть на гитхаб? Можно ссылку или идентификатор для поиска?
10. 🅵🅾️🆇 15.08.18 11:58 Сейчас в теме
(9) Привет. Да, есть.
Ссылки на гит тут, вроде как, запрещено прикреплять.
Но в отдельный репозиторий не выносил, а также никак не могу заставить себя выкладывать на гит именно исходный код, а не бинарники.

Давайте попробуем так, оставлю свой никнейм: PlugFox
И некий относительный путь: ones/Обработки и отчеты/Обработки/RMR СоглашениеОНеразглашенииИнформации.epf

Если что - всегда отвечу в личку.
pavelpribytkin96; jONES1979; +2 Ответить
3. newold2 123 25.07.18 17:53 Сейчас в теме
Каюсь, извиняюсь - действительно пропустил. Подход понравился, сам делал нечто подобное.
4. 🅵🅾️🆇 25.07.18 18:10 Сейчас в теме
(3) Можете написать в личку - обязательно поделюсь)
Если есть желание поучаствовать - с радостью приму помощь, нереализованный фичи и улучшения описал в статье.

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

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

ЗЫ: есть еще подключаемая, самозаполняемая печатная форма по справкам по сотруднику.
Но код там местами не очень, поэтому выложить могу только обфусцированной, иначе мне будет слегка неуютно)
Прикрепленные файлы:
5. spy-83 190 26.07.18 09:20 Сейчас в теме
картинки из 1с можно вставить в макет word с помощью вашей обработки?
к примеру вывести основное изображение номенклатуры
6. 🅵🅾️🆇 26.07.18 09:36 Сейчас в теме
(5) Пока нельзя, но технически в этом нет ничего сложного.
Вордовский файл это по сути архив с xml файлами и вложениями.
Если вставить в шаблон картинку, то она окажется в отдельном каталоге и её можно будет заменить.
7. spy-83 190 26.07.18 10:07 Сейчас в теме
если выводить таблицу из 1с, то заранее неизвестно количество строк, значит заранее не получится вставить саму картинку.
8. 🅵🅾️🆇 26.07.18 10:40 Сейчас в теме
(7)
заранее неизвестно количество строк

Исходные файлы xml ворда толком ничем не отличаются от html документа.
Вы же не будете утверждать, что невозможно сверстать веб страничку в 1с?)

заранее не получится вставить саму картинку

Ну как вы обычно выводите картинки в табличный документ?
Вы вставляете некую заготовку, а потом заменяете её на нужное изображение.

Так и здесь. При разархивировании docx получаете изображение которое вставили в документ шаблоном ранее.
Просто заменяете его на двоичные данные из вашего справочника номенклатур/файлов.

Вообще xml документы имеют ссылки между собой и вполне ясно говорят, что и как они подключают.
Если тут есть гуру XDTO - то в теории можно будет научить 1с'ку читать ворд довольно изящно.

Я с радостью бы это все сделал, но у меня очень много другой работы, поэтому данный функционал мной будет реализован в удобной для использования форме, как только это потребуется по работе.
11. Sanek_159 1 30.10.18 11:29 Сейчас в теме
Добрый день.

Подскажите, в обработке при замене параметров и их разделения используется неразрывный пробел. Можно как то сделать обычный пробел?
Если в Процедуре "ЗаполнитьПараметрМакета" где устанавливается "ПараметрМакета" заменить Символы.НПП на " " (пробел), то параметры все открываются слитно с соседними словами.

Неразрывный пробел не подходит, т.к. параметров может быть много и ворд распределяет текст не корректно.
12. 🅵🅾️🆇 487 30.10.18 11:32 Сейчас в теме
(11) Привет, насколько помню, можно подредактировать и сделать более удобно.
Насколько помню, это связано с тем, что редактируя макет Word в Word'е он вставляет туда кучу лишнего мусора и без неразрывного пробела, в некоторых случаях, слова могут слипаться.

Я постараюсь сделать более удобно в дальнейшем, но не в ближайшее время, тк сильно загружен, да еще и пишу огромную статью про inline webhook telegram бота.
13. 🅵🅾️🆇 487 15.11.18 18:12 Сейчас в теме
Исправил "исчезновение" пробелов рядом с переменными
Оно возникало от того, что пропадали пробелы в содержимом "w:r/w:t[@xml:space='preserve']" блоков.

Пример модуля обработки:
http://git.pfx.pw/snippets/1

Обратите внимание на область Работа_с_word
и в частности на добавленную функцию: ЗаполнитьПробелы()
и закоменченное добавление неразрывных пробелов в функции ЗаполнитьПараметрМакета()
14. sytkosa 119 11.06.19 12:52 Сейчас в теме
(13) Привет. Можете пере выложить решение проблемы "исчезновение пробелов".

Заранее спасибо
15. 🅵🅾️🆇 487 11.06.19 13:03 Сейчас в теме
(14) gist.github.com
Перевыложил.
На домашнем сервере, просто, перешел с gitlab на gitea)
pavelpribytkin96; +1 Ответить
16. Xershi 1135 11.06.19 13:08 Сейчас в теме
Интересное решение.
Было бы неплохо, если бы вы выделили описание алгоритма работы формирования файла ворда жирным или отдельным пунктом.
А то пока все не прочитал, не понял, что вы тут сделали!

Структуру ворда сами разбирали?
А если нужен устаревший формат?
17. 🅵🅾️🆇 487 11.06.19 13:13 Сейчас в теме
(16)
Было бы неплохо, если бы вы выделили описание алгоритма работы формирования файла ворда жирным или отдельным пунктом.
А то пока все не прочитал, не понял, что вы тут сделали!


К сожалению крайне не хватает времени на публикации.
Да и сейчас я все больше "готовлю" внешние печатные формы с помощью своего другого макета, все автоматизировано и конвеерно.
Может следующая статья будет про это + полуавтоматическое подключение и обновление печатных форм в куче конфигураций одним батником)


Структуру ворда сами разбирали?
А если нужен устаревший формат?


Да, сам, это просто xml, парсю его с помощью XPath выражений.
.doc - не xml, он в корне отличается, это бинарный формат. Сделать нативно средствами 1с тоже можно, но мне явно не до этого сейчас)
pavelpribytkin96; +1 Ответить
18. Xershi 1135 11.06.19 13:17 Сейчас в теме
(17) ясно, тогда тоже стоит написать про это в ограничениях. Т.к. клиенты разные бывают, стоит устаревший ворд и новый ставить либо нет софта, либо админа.
19. 🅵🅾️🆇 487 11.06.19 13:18 Сейчас в теме
(18)
ясно, тогда тоже стоит написать про это в ограничениях. Т.к. клиенты разные выбают, стоит устаревший ворд и новый ставить либо нет софта, либо админа.


Название статьи, внезапно:
Подключаемые печатные формы с .DOCX макетом без Word'а


А .docx появился в 2007 ворде, если не изменяет память.
2003 ворд - это уже прям раритет, вы в нем очень многое не сможете открыть)))
pavelpribytkin96; +1 Ответить
20. Xershi 1135 11.06.19 13:58 Сейчас в теме
(19) название статьи конечно говорит, но чтобы не было лишних вопросов, как у меня допустим. Мало ли там просто букву убрать и заработает!
21. 🅵🅾️🆇 487 11.06.19 14:10 Сейчас в теме
(20) Добавил дополнительно заметочку в статью)
pavelpribytkin96; Xershi; +2 Ответить
22. Xershi 1135 11.06.19 14:47 Сейчас в теме
(21) если бегло читать статью внимание падает не на особенности, а на ваше слово "RED". Читающему что и зачем - это просто мусор))
Думаю стоит над акцентами поработать. Но как минимум одним вопросом меньше!
23. 🅵🅾️🆇 487 11.06.19 14:49 Сейчас в теме
(22) Здорово) Спасибо за фидбэк.
Возможно в будущем статьи будут правиться корпоративным редактором, ну или как минимум постараюсь выработать шаблон (пока еще в поиске себя).
29. sergik_nsk 141 15.05.20 13:22 Сейчас в теме
(19) Разобрал код поподробней, оказалось что 1. выделение фоном влечет привязку к разбору xml в данном представленном контексте только для конкретной версии Word, например для 2007 года не работает, а ведь разбор это ключевой момент всей задумки. Возможно если взять в качестве поиска не фон, а например спец шрифт, будет стабильней работать.
30. 🅵🅾️🆇 487 15.05.20 13:32 Сейчас в теме
(29) Там все разбирается.
Параметры после править не надо в ворде, иначе "мусора" натыкает.
Ну и опять же, вы вольны оформить форк и сделать все как хотите, лицензия MiT вам это полностью позволяет)
24. AlexAdm 60 29.11.19 07:38 Сейчас в теме
Добрый день. Заинтересовала данная обработка, можете поделиться?
25. 🅵🅾️🆇 487 29.11.19 12:28 Сейчас в теме
(24) plugfox@gmail.com
telegram: @plugfox
pavelpribytkin96; +1 Ответить
26. nayd 9 27.02.20 11:28 Сейчас в теме
Чего-то не хватает в сниппете модуля объекта (в функции daСклонение())

	Пока _ПозЧастиСтроки  0 И СтрДлина(_ТаблицаСлова[_ТаблицаСлова.Количество() - 1].Регистр) > 1 Тогда
			_ТаблицаСлова[_ТаблицаСлова.Количество() - 1].Тег = "."; 
		КонецЕсли;


27. 🅵🅾️🆇 487 27.02.20 11:30 Сейчас в теме
(26) Сейчас вынужден отказаться от такой прекрасной функции как daСклонение. Тк она использует "Вычислить".
Но недавно завезли склонение платформой (еще не проверял на адекватность).
28. sergik_nsk 141 14.05.20 15:19 Сейчас в теме
Посмотрел. Много в коде на мой взгляд лишних данных, может для универсальности, в целом описано понятно, за вклад и за труд плюс однозначно.
31. sergik_nsk 141 15.05.20 13:33 Сейчас в теме
(30) это в 2019 офисе
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:szCs w:val="24" />
<w:highlight w:val="yellow" />
</w:rPr>
<w:t>_______</w:t>

это в 2007
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:szCs w:val="24" />
<w:shd w:val="clear" w:color="auto" w:fill="FF0000" />
</w:rPr>
<w:t>Номер</w:t>
Оставьте свое сообщение
Вопросы с вознаграждением