0. 🅵🅾️🆇 399 24.07.18 15:24 Сейчас в теме

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

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

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

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


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

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

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

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

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

ЗЫ: есть еще подключаемая, самозаполняемая печатная форма по справкам по сотруднику.
Но код там местами не очень, поэтому выложить могу только обфусцированной, иначе мне будет слегка неуютно)
Прикрепленные файлы:
5. spy-83 184 26.07.18 09:20 Сейчас в теме
картинки из 1с можно вставить в макет word с помощью вашей обработки?
к примеру вывести основное изображение номенклатуры
6. 🅵🅾️🆇 26.07.18 09:36 Сейчас в теме
(5) Пока нельзя, но технически в этом нет ничего сложного.
Вордовский файл это по сути архив с xml файлами и вложениями.
Если вставить в шаблон картинку, то она окажется в отдельном каталоге и её можно будет заменить.
7. spy-83 184 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. 🅵🅾️🆇 399 30.10.18 11:32 Сейчас в теме
(11) Привет, насколько помню, можно подредактировать и сделать более удобно.
Насколько помню, это связано с тем, что редактируя макет Word в Word'е он вставляет туда кучу лишнего мусора и без неразрывного пробела, в некоторых случаях, слова могут слипаться.

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

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

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

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

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


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


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


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


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


А .docx появился в 2007 ворде, если не изменяет память.
2003 ворд - это уже прям раритет, вы в нем очень многое не сможете открыть)))
20. Xershi 624 11.06.19 13:58 Сейчас в теме
(19) название статьи конечно говорит, но чтобы не было лишних вопросов, как у меня допустим. Мало ли там просто букву убрать и заработает!
21. 🅵🅾️🆇 399 11.06.19 14:10 Сейчас в теме
(20) Добавил дополнительно заметочку в статью)
22. Xershi 624 11.06.19 14:47 Сейчас в теме
(21) если бегло читать статью внимание падает не на особенности, а на ваше слово "RED". Читающему что и зачем - это просто мусор))
Думаю стоит над акцентами поработать. Но как минимум одним вопросом меньше!
23. 🅵🅾️🆇 399 11.06.19 14:49 Сейчас в теме
(22) Здорово) Спасибо за фидбэк.
Возможно в будущем статьи будут правиться корпоративным редактором, ну или как минимум постараюсь выработать шаблон (пока еще в поиске себя).
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день