Сайт под защитой
6 Настройки
Имя ФамилияВыйтиRU Помощь

Каталог Маркетплейс

Документы, Бизнес-процессы, Решения для Битрикс24

Рейтинг

0

Разработчик

Эм Си Арт

Дата добавления / изменения

06.07.2026

Версия

3.2.7

Кол-во установок / клиентов

500 - 999

Платный
19900 руб.

Модуль предназначен для быстрого решения шаблонных вопросов, связанных с подготовкой файлов.

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

Описание работы (пример).

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

Имена полей задаются в фигурных скобках латинскими буквами, например: {COMP_NAME}. Расположите поля с именами переменных в нужных местах файла-шаблона, сохраните.

Совет! При работе с MacOS желательно для создания шаблонов использовать MS Word для Windows.

Заполненный шаблон загрузить в систему. Сделать это можно двумя способами — загрузить на Диск в портале или в папку в административной части. Рассмотрим оба способа загрузки:

1. Зайдите в меню Диск, выберите нужную папку для шаблона и загрузите туда ваш файл-шаблон.

2. В административной части Битрикс зайдите в раздел Контент — Файлы и папки. Нажмите Загрузить файл — укажите путь к вашему шаблону.

В любом месте цепочке бизнес процесса добавьте активити «Генератор документов» (в системе он может обозначаться как Документ word из шаблона [mcart]):

Откройте настройки активити. В настройках действия Генератора прописываются поля, из которых будут браться данные для подстановки в переменные поля шаблона.

Рассмотрим подробнее поля настроек Генератора:

  • Заголовок — имя данного активити. Это особенно удобно, если их несколько в цепочке бизнес-процесса. В этом случае созданные файлы с результатом будут иметь разные имена, заданные вами в настройках каждого активити;
  • галочку «Обрабатывать поля в формате Merge Field» проставлять НЕ нужно;
  • Путь к шаблону документа — путь к загруженному файлу с шаблоном. Например: /generator/template.docx или 523, где 523 – ID файла на диске. Если в поле прописаны буквы — модуль распознаёт путь, если цифры — находит файл с таким ID;
  • Путь к сохраняемому файлу и имя — путь и название для сохраняемого файла с выходными данными и расширением .docx. Вы можете прописать здесь полный путь к файлу и формат его названия, а можете указать только название, указав путь к файлу в полях ниже. Пример заполнения: /generator/kp_{=System:Date}.docx (в данном случае имя файла будет содержать буквы kp, знак подчеркивания и текущую дату. Если вы указываете только формат названия выходного файла, например: kp_{=System:Date}.docx, то заполните нижеследующие поля:
  • ID диска — ID диска, на который нужно сохранить файл результата. Как посмотреть ID диска, указано ниже.
  • ID папки на диске — ID папки, в которую нужно поместить файл результата. Как посмотреть ID папки, указано ниже.
  • Далее нужно добавить правила для замены переменных в шаблонном файле на данные. Для подстановки в переменные шаблонного файла в настройках действия нужно прописать правила с указанием имени переменной и имени поля, из которого будут браться данные. В левой части прописывается имя переменной в шаблоне, а в правой части — имя поля, откуда нужно взять данные. Имя поля указывается в фигурных скобках. Поле данных можно выбрать из списка, нажав на кнопку с многоточием около поля.

Внимание! Если поле документа является списком, то к правилу стоит добавить _printable. Если не выводятся другие типы полей, также попробуйте использовать приставку _printable.

Например: вместо {=Document:PROPERTY_TIP_OPLATY} укажите {=Document:PROPERTY_TIP_OPLATY_printable}.

После заполнения всех полей Генератора, нажмите кнопку «Сохранить». Затем сохраните изменения, внесенные в бизнес-процесс (кнопка внизу).

Как посмотреть ID диска.

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

Как посмотреть ID папки.

Зайдите в меню Диск, выберите нужную вам папку. Рядом с названием вы увидите поле с её ID. Если такого поля нет, зайдите в настройки и добавьте отображение этого поля.

Как вывести список строк с переходом на новую строку.

Ответ: Нужно пользоваться специальными xml тегами.

Например, воспользоваться таким тегом <w:br/>.

То есть подставляемая строка должна иметь вид:

Пункт1<w:br/>Пункт2<w:br/>Пункт3

Как добавить ссылку на сгенерированный файл

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

Для этого можно воспользоваться значением Ссылка для скачивания документа активити Документ Word из шаблона в Дополнительные результаты.

Ссылку можно вывести в Сообщениях Живой ленты, прописав следующие значения:

1.      Вывод через тег: [url={=A14775_64625_42428_11813:Path}] ссылка [/url], где {=A14775_64625_42428_11813:Path}-выбирается через вставку значения в дополнительных результатах значение активити «Ссылка для скачивания документов»

Выводится кликабельное слово «ссылка», при нажатии на которое скачивается сгенерированный документ.

2.      Вывод через системную переменную: {=System:HostUrl}{=A14775_64625_42428_11813:Path}, где

{=A14775_64625_42428_11813:Path}-выбирается через вставку значения в дополнительных результатах значение активити «Ссылка для скачивания документов»

               

Выводится ссылка вида :

https://название портала/disk/downloadFile/...81%29.docx

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

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

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

[id] => Array

         

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

[fio] => Array

…

[city] => Array

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

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

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

           

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

LIST={=Variable:hostlist}

Сохраните настройки генератора.

Внимание! Если поле документа является списком, то к правилу стоит добавить _printable. Если не выводятся другие типы полей, также попробуйте использовать приставку _printable.

Например: вместо {=Document:PROPERTY_TIP_OPLATY} укажите {=Document:PROPERTY_TIP_OPLATY_printable}

Пример PHP-кода:

$rootA = $this->GetRootActivity();

$table_list=array (

"id" => array (1,2,3),

"fio" => array ("Иванов Иван Иванович", "Петров Петр Петрович", "Сидоров Сидр Сидорович"),

"city" => array ("Челябинск", "Владивосток", "Пермь")

);

$table_str=serialize($table_list);

$rootA->SetVariable("hostlist",$table_str);

Скриншоты Обновления Поддержка Установка
Скриншоты

Другие решения разработчика

Отзывы



Вячеслав Карпов 04.07.2024 00:47
После обновления до php 8.1 решение стало работать нестабильно. Если поставить паузу выполнения перед ним, то процесс зависает и документ не формируется. Может кто нибудь сталкивался? как решить?

"ТС" ООО 24.03.2022 08:52
Возможно ли в генераторе документов сделать так что бы таблица со значениями создавалась только в том случае если поля для заполнения этой таблицы заполнены, а если они пустые, то в документе таблицы не будет?

Александр Силуянов 11.11.2020 13:56
Не знаю, будет ли нужна информация, но символ "&" вызывает ошибку открытия документа.
Если будет фикс, было бы круто!

Екатерина Русина 04.12.2019 14:54
Иван, добрый день. Я уточнила информацию. Для подстановки текста с переносами, нужно нужно пользоваться специальными xml тегами.
Например, воспользоваться таким тегом <w:br/>.
То есть подставляемая строка должна иметь вид:
Пункт1<w:br/>Пункт2<w:br/>Пункт3

Екатерина Русина 05.11.2019 11:19
Иван, добрый день! Спасибо за замечание, внесем в список доработок.

Иван 17.09.2019 11:22
Переменную типа "Многострочный текст" переносит в документ в одну строку, без переносов. Исправьте, пожалуйста.

Артем Сизов 27.11.2017 12:13
Хотелось бы увидеть в дальнейшем возможность склонения фамилий и имен пользователей.
Возможность трансляции цифр в текст.
Это будет удобно при использовании модуля для автоматизации создания готового текста служебных записок.

Валерий Ефремов 20.11.2017 15:33
Bitrix24 коробка.
BitrixEnv 7.1
При установке выдаёт ошибку STP0|mcart.gendoc (1.7.0)


Эта установка предназначена для разработки на базе продукта "1С-Битрикс: Управление сайтом". Она не должна использоваться в качестве рабочего (боевого) сайта.