Технические данные
- Опубликовано:
- 03.03.2017
- Обновлено:
- 18.01.2024
- Версия:
- 3.2.6
- Установлено:
- 500 - 999 раз
- Подходящие редакции:
- «Корпоративный портал», «Энтерпрайз», «Интернет-магазин + CRM»
- Адаптивность:
- Нет
- Поддержка Композита:
- Нет
- Совместимо с Сайты24
- Нет
- Совместимо с PHP 8.1
- Да
Пользовательское соглашение
Описание
Модуль предназначен для быстрого решения шаблонных вопросов, связанных с подготовкой файлов.
Генератор документов формирует файлы с расширением .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);
3.2.7 (18.01.2024) (beta) |
|
3.2.6 (14.08.2023) |
|
3.2.5 (27.06.2023) |
|
3.2.4 (21.06.2023) |
|
3.2.3 (15.06.2023) |
|
3.2.2 (23.03.2023) |
|
3.2.1 (06.03.2023) |
|
3.2.0 () |
|
3.1.1 (23.03.2023) |
|
3.1.0 (12.05.2022) | Добавлен перехват ошибки, если загружен битый шаблон исправлена работа с таблицами |
3.0.5 (26.02.2021) | Исправления для Битрикс: Управления сайтом |
3.0.4 (20.02.2021) | Добавлены языковые файлы для украинского ящыка. |
3.0.3 (17.02.2021) | Исправление ошибки отсутствия текущего пользователя. |
3.0.2 () | |
3.0.1 (12.03.2020) | Метки в двойных фигурных скобках игнорируются |
3.0.0 (01.01.1970) | Добавлена возможность вставлять метки в двойных фигурных скобках |
2.0.0 (11.09.2020) | Добавлена поддержка БУСа |
1.14.10 (18.02.2020) | Добавлена обработка html текста Добавлен перехват ошибки, если загружен битый шаблон |
1.14.9 (06.01.2020) | Добавлена обработка html текста Добавлен перехват ошибки, если загружен битый шаблон |
1.14.8 (24.01.2019) | Добавлена обработка html в переменной |
1.14.6 (11.10.2019) | Добавлены проверки на наличие шаблонного файла и поступление входных данных в активити |
1.14.5 (30.09.2019) | В настройки активити возвращено поле для транслитерации цифр в текст |
1.14.4 (13.09.2019) | Исправлено: - модуль больше не продолжает работать после того, как истек демо период |
1.14.3 (20.03.2019) | Добавлена обработка длинных имен файлов |
1.14.2 (17.01.2019) | Проверяем корректность имени сохраняемого файла, при необходимости - приводим к корректному, а также проверяем на длину имя сохраняемого файла. Если длина выше 255 - ошибку в лог |
1.14.1 (03.12.2018) | Проверяем корректность имени сохраняемого файла, при необходимости - приводим к корректному |
1.14.0 (29.11.2018) | Добавлена возможность загрузки картинок со стороннего сервера |
1.13.2 (30.08.2018) | Изменен диалог выбора папки для сохранения |
1.13.1 (20.07.2018) | Изменен диалог выбора папки для сохранения |
1.12.2 (15.05.2018) | Добавлена обработка путей к шаблонам из облака |
1.12.0 (09.04.2018) | Added header and footer processing |
1.11.0 (31.01.2018) | добавлено поле для перевода транслитерации цифр в текст |
1.10.0 (28.11.2017) | добавлены английские lang-файлы. |
1.9.0 (07.11.2017) | Во вставляемы текст добавлено html - декодирование, для обработки не корректного текста - с различными спецсимволами |
1.8.1 (03.10.2017) | Во вставляемы текст добавлено html - декодирование, для обработки не корректного текста - с различными спецсимволами |
1.8.0 (19.09.2017) | Добавлены переводы для немецкого языка |
1.7.1 (06.09.2017) | 1. Добавлена проверка - если путь к файлу не начинается со слеша - обрабатывается корректно 2. Если указан ID папки на диске - то ID диска не учитывается 3. Добавлена совместимость с предыдущими версиями класса PHPWord |
1.7.0 (31.08.2017) | 1. Добавлена проверка - если путь к файлу не начинается со слеша - обрабатывается корректно 2. Если указан ID папки на диске - то ID диска не учитывается 3. Добавлена совместимость с предыдущими версиями класса PHPWord |
1.6.1 (30.08.2017) | 1. Добавлена проверка - если путь к файлу не начинается со слеша - обрабатывается корректно 2. Если указан ID папки на диске - то ID диска не учитывается 3. Добавлена совместимость с предыдущими версиями класса PHPWord |
1.5.0 (31.07.2017) | Теперь вместо пути к файлу-шаблону, можно поставить ID файла на диске - обработает с одинаковым успехом. |
1.4.0 (20.07.2017) | Добавлена вставка картинок в таблицу |
1.3.0 (26.04.2017) | Адаптировано к кодировке 1251 |
1.2.2 (03.04.2017) | Адаптировано к кодировке 1251 |
1. Скачайте решение на Маркетплейсе.
2. Укажите путь для установки, нажмите Установить.
3. В административной части Битрикс нажмите Загрузить, затем Установить.
4. После окончания установки в Дизайнере бизнес-процессов появится новое действие – Генератор документов (в системе он может обозначаться как Документ word из шаблона [mcart]).
Внимание! Для корректной работы модуля в настройках php нужно включить расширения zip, xmlwriter и dom.
zip
если расширение php-zip не установлено, то устанавливаем
yum install php70*zip
если расширение уже установлено, то нужно подключить его в файле /etc/php.d/40-zip.ini, прописав там:
; Enable ZIP extension module
extension=zip.so //либо другой путь к zip.so (можно найти поиском), например extension=/opt/remi/php70/root/lib64/php/modules/zip.so
xmlwriter и dom
В папке /etc/php.d/ нужно перенести содержимое файла
20-xmlwriter.ini.disabled в 20-xmlwriter.ini
20-dom.ini.disabled в 20-dom.ini
Не забудьте перезагрузить веб-сервер и проверить применение настроек через phpinfo -i
Обратите внимание! Наши решения разработаны для сайтов/порталов с кодировкой UTF-8.
Модуль работает с версиями битрикса от 23.300.
Либо на сайте через форму "Оставить заявку": http://www.mcart.ru/support/
(рабочие дни с 10 до 19 по Москве)
+7(812) 309-78-93 Санкт-Петербург
+7(499) 703-44-96 Москва
+442039361455 Лондон
19042709971 США
Читать о решении на сайте разработчика
Приложение для облачного Битрикс24