Генератор документов для коробочного Битрикс24
 
Генератор документов для коробочного Битрикс24
28.06.2017 20:00:00
Модули
327
Генератор документов - это активити для Дизайнера бизнес-процессов, позволяющее формировать файлы с расширением .docx на основе шаблона.

Быстрое решение шаблонного вопроса

ava1.jpg

Многие пользователи Битрикс применяют в своей ежедневной работе Дизайнер бизнес процессов. Шаблонные бизнес-процессы весьма облегчили работу, но формирование однотипных файлов вручную после отработки бизнес-процесса все равно затягивало время выполнения поставленной задачи. Например, такие типовые документы как коммерческое предложение или договор, приходилось вручную наполнять повторяющимися данными — названия компаний, фамилии сотрудников, реквизиты и т.п.
Заполнение таких документов — еще не самое трудоемкое занятие, а вот вставка таблиц с множественными полями и столбцами — это уже задача посложнее.

Цель

ziel01.jpg

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

Трудности в ходе реализации

question.jpg
Приступая к разработке, мы попробовали использовать класс для работы с шаблоном «подложкой» с переменной, но этого оказалось недостаточно, так как в переменную можно было поместить только текстовые данные без табуляции и форматирования. То есть таблицу можно было создать, только изначально обозначив количество строк и столбцов.

А требовалось создать универсальный инструмент, который бы самостоятельно создавал нужное количество строк и столбцов, в зависимости от объема выходных данных бизнес-процесса.

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

Решение

idea.png
В результате мы разработали новое действие для Дизайнера бизнес-процессов — «Генератор документов», который формирует файлы с расширением .docx на основе созданного пользователем шаблона, а типовые данные вроде реквизитов, фамилий, сумм или таблиц с картинками автоматически подставляются в поля шаблона после запуска бизнес-процесса.

Описание работы модуля (пример)

После установки «Генератор документов» появляется в Дизайнере бизнес-процессов:

bp designer ru.JPG
Предварительно нужно создать документ с расширением .docx, который будет шаблоном для генерации файлов. В нем нужно задать имена полей для подстановки.
Пример:
doc ru var.jpg

variable ru.png
Заполненный шаблон загрузить в папку upload: в административной части Битрикс зайдите в раздел Контент Файлы и папки — upload. Нажмите Добавить — Добавить файл — укажите путь к вашему шаблону:
31-07-2017 15-14-26.jpg
В настройках действия Генератора прописываются поля, из которых будут браться данные для подстановки в переменные поля шаблона.
set of gen on ru.JPG
  • в поле «Заголовок» — имя действия. Это особенно удобно, если их несколько в цепочке бизнес-процесса. В этом случае созданные файлы с результатом будут иметь разные имена, заданные вами в настройках каждого действия;
  • путь к загруженному файлу с шаблоном. Например: /upload/Ozn.docx или 523, где 523 – ID файла на диске. Если в поле прописаны буквы — модуль распознаёт путь, если цифры — находит файл с таким ID;
  • путь и название для сохраняемого файла с выходными данными и расширением .docx, например: /upload/Oznakomlen_{=Document:CREATED_BY_PRINTABLE}.docx (в данном случае имя файла будет содержать слово Oznakomlen и знак подчеркивания _, а также имя пользователя, от имени которого создан файл-результат);

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

ID диска вы можете посмотреть следующим образом: в административной части Битрикс зайдите в Настройки — Таблицы — выберите в списке таблицу b_disk_storage, найдите нужный вам диск по его названию и посмотрите в соответствующей графе его ID:
31-07-2017 14-57-56.jpg


Если вы хотите сгенерировать в выходном файле таблицу произвольного размера, то вам необходимо:

1. Составить макет будущей таблицы в шаблонном файле. В данном примере ITEMS — это поле, которое нужно будет указать в настройках генератора для обращения к строковым данным массива, после точки указывается название колонки. Так, в поле Items.num будут помещены данные из массива Items[num] построчно. В данном примере — это порядковый номер товара в таблице:
array.jpg

2. Сформировать массив. Он должен иметь следующий вид:

[id] => Array

Далее построчно перечисляются все поля массива в формате:

[name] => Array

[price] => Array

Количество значений в столбцах должно быть одинаковым, иначе таблица будет сформирована некорректно.

3Сериализовать массив:

serialize(ваш_массив);

Допустим, массив был сериализован в переменную table_items. В таком случае, настройка параметров Генератора будет выглядеть следующим образом:

set_array.png


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

Результат
res.jpg

Значительно сокращено время составления документов! Также исключен человеческий фактор, ведь при заполнении множества однотипных документов легко допустить ошибку. А когда данные берутся автоматически из системы, это исключено.

Эм Си Арт знает, как сделать Вашу работу более эффективной!
ok.png


Попробовать решение: http://marketplace.1c-bitrix.ru/solutions/mcart.gendoc/

comments powered by Disqus