Show/Hide Toolbars

Руководство администратора

Шаблоны файлов (docx)

Ссылки Назад Вверх Вперед

dev_icon Скоро эта страница будет выглядеть по-новому

term_icon Шаблоны печатных документов — это текстовые файлы Microsoft Word, которые наряду с обычным текстом содержат вставки — теги с параметрами.

warning_icon  Для работы с шаблонами документов необходим Microsoft Office не ниже версии 2007

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

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

Теги заключены в двойной знак решетки "##". В момент формирования текстового документа эти теги заменяются соответствующими значениями. Например, в файле-шаблоне может содержаться текст: "Документ № ##TaskId## от ##CreatedTask|DateFormat:dd.MM.yyyy##". В момент создания документа будет сформирован текст: "Документ № 111 от 10.10.2010".

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

Порядок создания шаблона

1. Нажмите на ссылку Сгенерировать шаблон.

cats_patterns_generate

Генерация шаблона файла

Будет сгенерирован файл, в котором будут присутствовать все основные и дополнительные параметры, которые доступны в категории и могут быть использованы в шаблоне (пример).

cats_patterns_2

Пример автоматически сгенерированного шаблона для категории "Анкеты кандидатов"

2. Используйте этот файл как основу для создания нового, своего шаблона.

cats_patterns_ex

Пример шаблона анкеты

3. Если в шаблоне используется смарт-выражение и шаблонизатор mustache, вы можете предварительно проверить результат, который будет возвращать смарт-выражение. Для этого перейдите по ссылке Проверить смарт-выражение.

ms_word_tags_check

Открыть окно проверки смарт-выражения

В открывшемся окне выберите смарт-выражение для проверки (1), укажите номер задачи, из которой нужно взять данные для проверки (2) и нажмите кнопку Обновить. В поле (3) вы увидите результат, возвращаемый смарт-выражением.

ms_word_tags_smart

Проверка смарт-выражения

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

cats_patterns_1

Загрузка нового шаблона

Вы можете открыть загруженный шаблон для просмотра (кнопка !eyeрядом с названием файла), скачать шаблон (например, чтобы отредактировать и загрузить снова) или создать доп. форму для использования шаблона (кнопка Создать доп.форму).

5. В пользовательском интерфейсе по шаблону будет сгенерирован файл с данными вместо тегов (пример итогового документа).

cats_patterns_ex1

Пример анкеты, сгенерированной по шаблону

Использование шаблонов в пользовательском интерфейсе

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

Чтобы сгенерировать файл docx по шаблону нужно:

1.На панели инструментов задачи в  подменю Документы выбрать Печать и экспорт.

2.В открывшемся окне нажать ссылку Сгенерировать по шаблону.

3.В открывшемся окне выбрать нужный шаблон.

С помощью доп. форм

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

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

С помощью ДП "Файл" в качестве источника шаблона

Если есть необходимость позволить пользователям самостоятельно создавать или редактировать шаблоны, то в качестве источника шаблона можно использовать значение ДП типа "Файл".

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

Cинтаксис

Общий синтаксис тегов: ##Task<ID задачи> <Имя параметра задачи>##.

Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Например, тег ##TaskId## вернет номер задачи, ##Task## текст задачи, ##StateDescr## статус задачи, ##CreatedTask## дату создания.

Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

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

Если же значение параметра содержит разметку (например, текст задачи, в настройках категории, которой разрешен html, или значение дополнительного параметра типа "Текст с форматированием"), то сохранится форматирование самого параметра, а настройки стилей, примененные в шаблоне, могут быть проигнорированы.

Модификаторы параметров записываются после имени параметра через знак |. Например,запись ##ExtParamNN|DateFormat:{format}## позволяет выводить дату в нужном формате.

Дата и время

Параметры типа "Дата" и "Дата и время" можно выводить в нужном формате, применяя модификатор DateFormat.

Синтаксис: ##<Параметр>|DateFormat:<формат даты>##

Инструкцию по возможным значениям формата даты можно получить на сайте MSDN.

Чтобы вывести дату прописью, используйте модификатор DateInWords.

Синтаксис: ##<Параметр>|DateInWords##

Кроме того, система принимает параметр NowTime, который вернет текущее время (время генерации файла по шаблону).

Пример записи

Результат

##CreatedTask|DateFormat:dd.MM.yyyy г., HH:mm##

26.05.2017 г., 13:44

##CreatedTask|DateInWords##

шестнадцатое декабря две тысячи семнадцатого года

##NowTime|DateFormat:dd.MM.yyyy##

11.12.2017

Числа и деньги

Для форматирования ДП типа число и деньги используется модификатор NumberFormat со строкой форматирования, которая может включать в себя различные символы. Самый простой способ форматирования — использование символов N или n для чисел или символов C или c для денег, после которых можно указать число знаков после запятой (если не указано — выводится так, как это число хранится в БД).

Пример записи

Результат вывода ДП типа "Число"со значением 99,9

##ExtParam123|NumberFormat:{0:N}##

99,9

##ExtParam123|NumberFormat:{0:N1}##

99,9

##ExtParam123|NumberFormat:{0:N3}##

99,900

##ExtParam123|NumberFormat:{0:C}##

99,9 ₽

##ExtParam123|NumberFormat:{0:C1}##

99,9 ₽

##ExtParam123|NumberFormat:{0:C3}##

99,900 ₽

Дополнение числа нулями и пробелами

Также для задания числового или денежного форматов можно использовать символы 0 или #. Если используется символ 0, то при отсутствии значения на данной позиции будет выведен 0, а если используется символ # — то при отсутствии значения не будет выведено ничего. Поскольку двойной знак решетки ## используется также для задания начала и конца строки форматирования, то чтобы различать эти варианты использования символа, одиночный # предваряется знаком \, вот так: \#.

Пример записи

Результат вывода ДП типа "Число"со значением 99

##ExtParam123|NumberFormat:{0:000}##

099

##ExtParam123|NumberFormat:{0:\#}##

99

Вывод дробной части

Для отделения дробной части используется точка. После нее указывается то количество символов 0 или \#, сколько знаков после запятой должно выводиться. Символ, который будет выведен на печать в качестве разделителя дробной части, определяется системными настройками.

Синтаксис: ##Параметр|NumberFormat:{0:0.00}##

Пример записи

Результат вывода ДП типа "Число"со значением 55,5

##ExtParam123|NumberFormat:{0:0.00}##

55,50

Разделение на разряды

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

Синтаксис: ##Параметр|NumberFormat:{0:0,0}##

Пример записи

Результат вывода ДП типа "Число"со значением 456789

##ExtParam123|NumberFormat:{0:0,0}##

456 789

Перечисленные выше возможности форматирования можно использовать и вместе:

Пример записи

Результат вывода ДП типа "Число"со значением 123456,78

##ExtParam123|NumberFormat:{0:0,0.00}##

или

##ExtParam123|NumberFormat:{0:\#,0.\#\#}##

123 456,78

Деньги

Параметры типа "Деньги" имеют дополнительный модификатор MoneyToString для вывода сумму прописью.

Синтаксис записи для вывода прописи на русском: ##<Параметр>|MoneyToString:<RUR/USD/EUR/Number>##.

Синтаксис записи для вывода прописи на английском: ##<Параметр>|MoneyToString:<RUR,ENG/USD,ENG/EUR,ENG/Number,ENG>##.

Модификатор MoneyToString:Number выведет сумму прописью без указания валюты.

Пример записи

Результат вывода ДП типа "Деньги"со значением 30 000 руб.

##ExtParam1516|MoneyToString:RUR##

Тридцать тысяч рублей 00 копеек

Модификатор MULTIPLY автоматически умножает сумму на указанный множитель (удобно, например, для расчета НДС).

Синтаксис записи: ##<Параметр>|MULTIPLY:<число>##.

Пример записи (расчет НДС 18%)

Результат вывода ДП типа "Деньги"со значением 30 000 руб.

##ExtParam1516|MULTIPLY:0,18##

5 400,00

Инструкцию по возможным значениям формата чисел можно получить на сайте MSDN.

Очистка HTML-форматирования больших текстов

В определенных случаях при выводе ДП типа "Большой текст с форматированием" надо игнорировать внутреннее HTML-форматирование текста. Для этого используется модификатор CLEAR_HTML. Он очищает всю разметку, а переносы строк (теги <br>) заменяет на "\r\n".

Синтаксис: ##<Параметр>|CLEAR_HTML##

Информация о пользователях

Для вывода информации из карточки пользователя используются теги вида:

##User<ID> <Параметр>##

либо

##<Макрокод> <Параметр>##

где <ID> — ID пользователя, <Параметр> — параметр, который необходимо вывести (все доступные параметры можно посмотреть, сгенерировав образец шаблона для конкретной категории).

<Макрокод> — на текущий момент доступны два макрокода: RespUser соответствует ответственному исполнителю и OwnerUser – заказчику задачи.

Примеры

##User1234 DisplayName##

##OwnerUser CellPhone##

Для вывода информации из ДП "Выбор пользователей" используйте циклический вывод абзацами или в таблицу.

ДП Lookup

Теги для дополнительных параметров типа Lookup имеют вид:

##Lookup1234## 

где 1234 — это идентификатор ДП типа Lookup.

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

##Lookup1234 <Тег параметра задачи>##

где "Тег параметра задачи" – это один из тегов, предназначенных для вывода основных или дополнительных параметров задачи или ее комментариев.

Для дополнительных параметров типа Lookup доступен любой тип вложенности ссылок, т.е. вы можете извлечь в документ параметр задачи, на которую ссылается ДП типа Lookup задачи, на которую ссылается ДП типа Lookup задачи и т.д. до бесконечности.

Пример записи

Результат

##Lookup1234 Task##

текст задачи, на которую ссылается ДП Lookup с ID=1234 в текущей задаче

##Lookup1234 ExtParam56##

значение ДП с ID=56 из задачи, на которую ссылается ДП Lookup с ID=1234 в текущей задаче

##Lookup123 Lookup456 Task##

вложенные ссылки:

тег обращается к задаче, на которую ссылается ДП Lookup с ID=123 в текущей задаче; в ней отыскивает ДП Lookup с ID=456, обращается к задаче, на которую ссылается этот ДП, и извлекает ее текст

Комментарии

Для вывода комментариев в порядке от более ранних к более поздним используется тег ##Comments##.

Для вывода комментариев в порядке от более поздних к более ранним — тег ##Comments_reverse##.

Язык комментариев соответствует языку интерфейса пользователя (см. Мультиязычность и локализация).

Обращение к значениям параметров конкретных задач

Для извлечения значений основных или дополнительных параметров конкретных задач используется тег ##Task##.

Синтаксис: ##Task<ID задачи> <Имя параметра задачи>##.

Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории.

Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Пример записи

Результат

##Task123456 CreatedTask##

дата создания задачи с номером 123456

##Task123456 ExtParam99##

значение ДП с ID=99 из задачи с номером 123456

Изображения

Для вставки в шаблон изображений используйте тег ##EpFile##.

Синтаксис: ##EpFile<ID ДП файл с изображением>##.

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

Синтаксис: ##EpFile<ID ДП файл с изображением>|MAXSIZE:<width>,<height>##.

Пример записи

Результат

##EpFile2222##

вставит в документ изображение из файла в ДП с ID=2222

##EpFile2222|MAXSIZE:640,480##

вставит в документ изображение из файла в ДП с ID=2222; если изображение будет больше чем 640*480px, то оно будет пропорционально уменьшено

Штрих-коды и QR-коды

Для вставки в документ штрих-кодов и QR-кодов используется тег ##BAR##.

Синтаксис: ##<Имя параметра> BAR_<вид штрих-кода>##

где <Имя параметра> – наименование основного или дополнительного параметра, значение которого будет зашито в штрих- или QR-код,

<вид штрих-кода> определяет, штрих-код вставляется или QR-код. Возможные значения этого параметра: qrcode и Code128a.

Пример записи

Результат

##ExtParam1234 BAR_Code128a##

сгенерирует штрих-код, соответствующий значению дополнительного параметра с ID=1234

##ExtParam1234 BAR_qrcode##

сгенерирует QR-код, соответствующий значению дополнительного параметра с ID=1234

Блоки "Используется"

Блоки "Используется" вставляются в генерируемый по шаблону документ как группа таблиц. Набор отображаемых в таблицах столбцов зависит от настроек блока в категории.

Эти теги имеют вид:

##TaskUsedAsEp123## — таблицы содержат только активные записи

##TaskUsedAsEp123_all## — таблицы содержат все записи, как при нажатии кнопки Все записи в блоке используется на главной форме задачи

где 123 – это идентификатор блока "Используется". Значение идентификатора блока можно посмотреть в настройках категории.

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

Подписи

Варианты выгрузки и параметры подписей

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

В системе поддерживаются следующие варианты выгрузки подписей:

1. Полная история подписей: SIGNATURES_HISTORY.

Такой тип выгрузки поддерживает следующие параметры:

Наименование

Тег

Тип выводимого значения

Пример

Псевдоним того пользователя, чья подпись запрошена

SignatureNick

Строка

СуперИван

Должность того пользователя, чья подпись запрошена

AcceptantOrgUnit

Строка

Руководитель отдела

Псевдоним пользователя, запрашивающего подпись

UserName

Строка

СуперПетр

Дата и время запроса подписи

InitializeDate

Дата и время

16.05.2012 14:56:14

Причина запроса подписи

Reason

Строка

Требуется ваша подпись

Причина отклонения или утверждения подписи

AcceptDeclineReason

Строка

Запрос отклонен

Статус подписи

SignatureStateDescr

Строка

Ожидает подписи

Название подписи

SignatureDescription

Строка

Генеральный директор

Дата и время подписания

SignDate

Дата и время

17.11.2011 17:40:15

Активность подписи

IsActive

Булево

True\False

ID подписи

SignatureID

Число

123

ID подписи, запрошенной в конкретной задаче (в специальной таблице в БД)

TaskSignatureID

Число

4567

Тип вынесенной резолюции

ResolutionType

Строка

Подписать с замечаниями

2. Слепок всех подписей в текущих состояниях: SIGNATURES_FINAL.

Такой тип выгрузки поддерживает те же параметры, что и тип SIGNATURES_HISTORY.                                                        

3. Список активных запрошенных подписей: SIGNATURES_ACTIVEREQUESTS.

Такой тип выгрузки поддерживает следующие параметры:

Наименование

Тег

Тип выводимого значения

Пример

Дата и время запроса подписи

InitializeDate

Дата и время

13.05.2011 15:54

Причина запроса подписи

Reason

Строка

Утвердите документ

Название подписи

SignatureDescription

Строка

Финансовый директор

Запрашивать причину подписи

RequestReasonOnAccept

Булево

True\False

Является ли выгружающий задачу по шаблону пользователь акцептантом

IsAcceptant

Булево

True\False

ID подписи, запрошенной в конкретной задаче (в специальной таблице в БД)

TaskSignatureID

Число

1234

Есть ли право удалять подпись

HasDeleteRight

Булево

True\False

ID подписи

SignatureID

Число

123

Срок, в течение которого необходимо принять или отклонить акцепт (дней)

MaxTimeToSign

Число

3

4. Динамические подписи: SIGNATURES_DYNAMIC.

Такой тип выгрузки поддерживает следующие параметры:

Наименование

Тег

Тип выводимого значения

Пример

ID подписи

SignatureID

Число

123

Название подписи

Description

Строка

Финансовый директор

5. Подписи, необходимые для выполнения следующего шага: SIGNATURES_NEXTSTEP.

Такой тип выгрузки поддерживает следующие параметры:

Наименование

Тег

Тип выводимого значения

Пример

Порядковый номер подписи

SignatureOrder

Число

1

Название подписи

Description

Строка

Финансовый директор

6. Необязательные подписи: SIGNATURES_UNREQUIRED.

Такой тип выгрузки поддерживает следующие параметры:

Наименование

Тег

Тип выводимого значения

Пример

ID подписи

SignatureID

Число

123

Запрашивать причину подписи

RequestReasonOnAccept

Булево

True\False

Название подписи

Description

Строка

Финансовый директор

ID пользователя, назначенного акцептантом по умолчанию. Если акцептант по умолчанию не назначен, то -1

UserID

Число

456

Должность того пользователя, чья подпись запрошена

AcceptantOrgUnit

Строка

Руководитель отдела

7. Акцептованные подписи: SIGNATURES_ACCEPTED.

Такой тип выгрузки поддерживает те же параметры, что и тип SIGNATURES_HISTORY..

Отдельная подпись

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

##Sign<ID подписи>_<Параметр подписи>##

где <ID подписи> – числовой идентификатор нужной подписи,

<Параметр подписи> – название параметра, например SignatureDescription.

Пример записи

Результат

##Sign111_SignatureDescription##

Название подписи с ID=111, например:

Финансовый директор

Циклический вывод списка подписей, таблиц блока "Используется" и доп. параметров типа "Выбор нескольких задач из категории"

Циклический вывод абзацами

Для вывода таблицы текстовыми абзацами используются открывающий и закрывающий теги ##STARTLOOP## и ##ENDLOOP##, и циклический тег ##LOOP##.

Каждая запись с тегом ##LOOP## будет заменяться на значение указанного в ней параметра задачи, ссылающейся на текущую.

Между тегами ##STARTLOOP## и ##ENDLOOP## можно использовать произвольный текст.

Для каждой задачи, удовлетворяющей заданному в цикле условию, в документе создается отдельный абзац.

warning_icon Открывающий тег ##STARTLOOP## и закрывающий тег ##ENDLOOP## должны находиться в пределах одного абзаца (без разрывов строк)

ДП "Выбор пользователей"

Синтаксис:

##STARTLOOP<ID цикла> ##USERS_EP<ID параметра>## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

где <ID цикла> – числовой идентификатор цикла, уникальный в пределах шаблона,

<ID параметра> – ID ДП "Выбор пользователей",

<Имя параметра> – параметр, который необходимо вывести (все доступные параметры можно посмотреть, сгенерировав образец шаблона для конкретной категории).

Пример:

##STARTLOOP1 USERS_EP123## ##LOOP1_ITEM DisplayName## ##ENDLOOP1##

ДП "Адресаты Email"

Синтаксис:

##STARTLOOP<ID цикла> ##ADDRESSES_EP<ID параметра>## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

где <ID цикла> – числовой идентификатор цикла, уникальный в пределах шаблона,

<ID параметра> – ID ДП "Адресаты Email",

<Имя параметра> — Email.

ДП "Выбор нескольких задач из категории"

Синтаксис:

##STARTLOOP<ID цикла> TASKSELECT_EP<ID параметра>## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

где <ID цикла> – числовой идентификатор цикла, уникальный в пределах шаблона,

<ID параметра> – ID ДП "Выбор нескольких задач из категории"

<Имя параметра> – тег, обозначающий один из основных или дополнительных параметров задачи. Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Пример:

##STARTLOOP1 TASKSELECT_EP123## ##LOOP1_ITEM TaskText## ##ENDLOOP1##

Блок "Используется"

Синтаксис:

##STARTLOOP<ID цикла> USED_EP<ID ссылки>_SUBCAT<ID категории>## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

где <ID цикла> – числовой идентификатор цикла, уникальный в пределах шаблона,

<ID ссылки> – ID дополнительного параметра типа Lookup, который ссылается на текущую задачу,

<ID категории> – ID категории, из которой берутся ссылающиеся задачи,

<Имя параметра> – тег, обозначающий один из основных или дополнительных параметров задачи. Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Пример:

##STARTLOOP1 USED_EP99_SUBCAT36## ##LOOP1_ITEM ExtParam17## ##LOOP1_ITEM ExtParam18## ##LOOP1_ITEM ExtParam19##  ##ENDLOOP1##

Подписи

Синтаксис:

##STARTLOOP<ID цикла> <Тип подписи>## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

где <ID цикла> – числовой идентификатор цикла, уникальный в пределах шаблона,

<Тип подписи> – вариант выгрузки подписей,

<Имя параметра> – тег, обозначающий один из параметров подписи.

Пример:

##STARTLOOP1 ## ##LOOP1_ITEM SignatureNick##  ##LOOP1_ITEM SignatureStateDescr## ##LOOP1_ITEM ResolutionType##  ##ENDLOOP1##

Подзадачи и связанные задачи

Для вывода подзадач используется тег SUBTASKS, для вывода связанных задач — тег LINKEDTASKS. Для обоих тегов доступно обращение ко всем основным и дополнительным параметрам задач.

Синтаксис:

##STARTLOOP<ID цикла> SUBTASKS## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

##STARTLOOP<ID цикла> LINKEDTASKS## ##LOOP<ID цикла>_ITEM <Имя параметра>## … ##ENDLOOP<ID цикла>##

где <ID цикла> — числовой идентификатор цикла, уникальный в пределах шаблона,

<Имя параметра> — основной или дополнительный параметр задачи. Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Циклический вывод в таблицу

Для вывода массива значений в таблицу используется циклический тег ##LOOPROW##.

Для объекта, по которому строится циклический вывод, можно назначить псевдоном с помощью модификатора AS: ##LOOPROW USED_EP11_SUBCAT22 AS T1 ...##

Для вывода массива значений в таблицу с группировкой используется модификатор GROUP BY: ##LOOPROW GROUP BY <атрибут>##.

Для условного вывода массива значений в таблицу используется модификатор WHERE: ##LOOPROW WHERE <атрибут>=<значение>##.

В качестве атрибута для группировки и условного вывода можно использовать любой параметр объекта, по которому строится циклический вывод. Например, для блока "Используется":

##LOOPROW USED_EP11_SUBCAT22 AS T1 WHERE T1.Task =’БИ 1’ GROUP BY Task## ##LOOP_ITEM Task## 

Порядок настройки

Для вывода значений в таблицу выполните следующие действия:

1. Создайте в шаблоне таблицу с одной строкой и необходимым количеством столбцов.

2. В первый столбец первой строки введите необходимым образом модифицированный тег ##LOOPROW##.

3. В каждый столбец таблицы добавьте теги ##LOOP_ITEM## для тех параметров, которые вы хотите отображать в этом столбце.

4. При генерации документа по шаблону строки будут наращиваться вниз в соответствии с количеством подписей или записей в таблице блока "Используется".

ДП "Выбор пользователей"

Синтаксис:

##LOOPROW USERS_EP<ID параметра>## ##LOOP_ITEM <Имя параметра>## … 

где <ID параметра> – ID ДП "Выбор пользователей",

<Имя параметра> – параметр, который необходимо вывести (все доступные параметры можно посмотреть, сгенерировав образец шаблона для конкретной категории).

Пример табличного вывода ДП "Выбор пользователей"

ДП "Адресаты Email"

Синтаксис:

##LOOPROW ##ADDRESSES_EP<ID параметра>## ##LOOP_ITEM <Имя параметра>## … 

где <ID параметра> – ID ДП "Адресаты Email",

<Имя параметра> — Email.

ДП "Выбор нескольких задач из категории"

Синтаксис:

##LOOPROW TASKSELECT_EP<ID параметра>## ##LOOP_ITEM <Имя параметра>## …

где <ID параметра> – ID дополнительного параметра типа "Выбор нескольких задач из категории",

<Имя параметра> – тег, обозначающий один из основных или дополнительных параметров задачи. Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Пример табличного вывода ДП "Выбор нескольких задач из категории"

Блок "Используется"

Если блок "Используется" берет данные из таблицы, то используется синтаксис:

##LOOPROW USED_EP<ID ссылки>_SUBCAT<ID категории>## ##LOOP_ITEM <Имя параметра>## …

где <ID ссылки> — ID дополнительного параметра типа "Lookup-поле", который ссылается на текущую задачу,

<ID категории> — ID категории, из которой берутся ссылающиеся задачи,

<Имя параметра> — тег, обозначающий один из основных или дополнительных параметров задачи. Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Если блок "Используется" берет данные из смарт-фильтра, то используется синтаксис:

##LOOPROW TASKSELECT_SMARTFILTERID_<id_smart_filter>##

где <id_smart_filter> — идентификатор смарт-фильтра.

Если блок "Используется" берет данные из SQL View, то используется синтаксис:

##LOOPROW TASKSELECT_SQL_<имя_SQL_view>##

где <имя_SQL_view> — имя сохраненной SQL View.        

Подписи

Синтаксис:

##LOOPROW <Тип подписи>## ##LOOP_ITEM <Имя параметра>## … 

где <Тип подписи> – один из вариантов выгрузки,

<Имя параметра> – тег, обозначающий один из параметров подписи.

Пример табличного вывода списка запрошенных подписей

Подзадачи и связанные задачи

Для вывода подзадач используется тег SUBTASKS, для вывода связанных задач — тег LINKEDTASKS. Для обоих тегов доступно обращение ко всем основным и дополнительным параметрам задач.

Синтаксис:

##LOOPROW SUBTASKS## ##LOOP_ITEM Task## …

##LOOPROW LINKEDTASKS## ##LOOP_ITEM <Имя параметра>## …

где <Имя параметра> — основной или дополнительный параметр задачи. Основные параметры можно посмотреть, сгенерировав шаблон для конкретной категории. Дополнительные параметры вставляются в виде тегов вида ##ExtParam1234##, где 1234 обозначает уникальный идентификатор ДП.

Индексация записей при циклическом выводе

В строках или абзацах, повторяемых в цикле, можно выводить порядковый номер текущего элемента (начиная с 1) при помощи тега ##LOOP_ITEM COUNTER##.

Пример

##STARTLOOP1 TABLE_EP1234## ##LOOP1_ITEM COUNTER## ##LOOP1_ITEM COLUMN567## ##ENDLOOP1##

Сортировка записей при циклическом выводе

Сортировка записей по одному из полей может производиться с помощью тегов LOOPROW и STARTLOOP. Порядок сортировки указывается после имени объекта в цикле.

Вывод абзацами, тег STARTLOOP

Синтаксис:

##STARTLOOP<ID цикла> <Тег объекта>|<Поле для сортировки>:<Порядок сортировки>## ##LOOP<ID цикла>_ITEM## … ##ENDLOOP<ID цикла>##

где  <Тег объекта> — один из допустимых для циклического перебора тегов (TABLE_EP, USERS_EP, SIGNATURES_FINAL и пр.);

<Поле для сортировки> — одно из полей, доступных в объекте для вывода;

<Порядок сортировки> — одно из двух значений: ASC – сортировка по возрастанию, DESC – сортировка по убыванию.

Пример печати абзацами

Печать списка пользователей из ДП с ID=2472, отсортированного по отображаемому имени пользователя в убывающем порядке.

##STARTLOOP3 USERS_EP2472|DisplayName:DESC## ##LOOP3_ITEM DisplayName## \ ##LOOP3_ITEM Email## \ ##LOOP3_ITEM Gender## ##ENDLOOP3##

Вывод в таблицу, тег LOOPROW

Синтаксис:

##LOOPROW <Тег объекта>|<Поле для сортировки>:<Порядок сортировки>## ##LOOP_ITEM## …

где  <Тег объекта> — один из допустимых для циклического перебора тегов (TABLE_EP, USERS_EP, SIGNATURES_FINAL и пр.);

<Поле для сортировки> — одно из полей, доступных в объекте для вывода;

<Порядок сортировки> — одно из двух значений: ASC – сортировка по возрастанию, DESC – сортировка по убыванию.

Пример печати таблицы

Печать списка подписей в задаче, отсортированного по причине запроса в возрастающем порядке.

Кто запросил подпись

У кого запрошена подпись

Причина запроса подписи

##LOOPROW

SIGNATURES_FINAL|Reason:ASC##

##LOOP_ITEM UserName##

##LOOP_ITEM SignatureNick##

##LOOP_ITEM Reason##

Циклический вывод ДП "Таблица"

Для вывода ДП "Таблица" используется тег TABLE_EP11, где 11 — это ID ДП "Таблица".

Для обращения к значениям колонок используется тег COLUMN22, где 22 — идентификатор колонки ДП "Таблица" (список идентификаторов доступен в настройках ДП).

Таблицам можно назначать псевдонимы с помощью модификатора AS. Тогда к колонкам таблицы можно обращаться, используя этот псевдоним: ##LOOPROW TABLE_EP99 AS T...##.

Пример вывода ДП "Таблица"

Группировка

При выводе таблицы можно группировать строки по значению какого-то столбца с помощью модификатора GROUP BY: ##LOOPROW TABLE_EP1 GROUP BY COLUMN123## , где 1 — это ID ДП "Таблица", а 123 — это ID столбца группировки.

warning_icon При выводе с группировкой фактически выполняются два цикла — внешний цикл по группирующим колонкам и внутренний цикл по всем строкам таблицы. Поэтому обращение к группирующим колонкам для внешнего цикла идет без названия таблицы (в примере ниже выделено красным цветом), для внутреннего цикла — с названием таблицы "через точку" (выделено синим цветом).

Пример вывода таблицы с группировкой

Условный вывод внутри цикла

При выводе таблицы можно отбирать строки по значению какого-то столбца с помощью модификатора WHERE: ##LOOPROW TABLE_EP99 WHERE COLUMN123="значение"## , где 99 — это ID ДП "Таблица", а 123 — это ID столбца.

Пример вывода таблицы с условием внутри цикла

Вложенные циклы по двум таблицам

Если в категории используются два ДП "Таблица" или нужен сложный вывод по одной таблице, можно использовать вложенные циклы.

Пример вывода двух таблиц с вложенным циклом

Колонки Lookup

Для вывода колонки типа Lookup используется тег ##LookupCOLUMN123 <Тег параметра задачи>##

Например:

##LookupCOLUMN123 ExtParam456## 

##LookupCOLUMN123 EpFile789## 

где 123 – идентификатор lookup-колонки, 456 — идентификатор нужного ДП в категории, на которую ссылается lookup, а 789 — идентификатор ДП "Файл" в категории, на которую ссылается lookup.

Также возможно обращение к основным параметрам задачи, на которую ссылается lookup-колонка, в соответствии с общим синтаксисом (например, ##LookupCOLUMN123 TaskId## или ##LookupCOLUMN123 Task##).

Пример вывода в таблицу

Колонки с изображениями

Для вывода колонок с изображениями используется модификатор Image: ##LOOP_ITEM COLUMN123|Image##

Если необходимо ограничить максимальные размеры изображения, их можно перечислить через двоеточие после модификатора Image, через запятую (аналогично модификатору MAXSIZE).

Пример вывода в таблицу

Вывод таблицы в виде абзацев

Синтаксис: ##STARTLOOP TABLE_EP11## ##LOOP_ITEM COLUMN22## ##ENDLOOP##

Пример вывода строк таблицы в виде абзацев

Условный вывод

Чтобы настроить вывод поля в зависимости от выполнения определенных условий, используется модификатор IF.

Синтаксис: ##<Поле>|IF=<выражение>##

Если значение выражения равно значению поля, то абзац выводится, в противном случае весь абзац игнорируется.

Пример записи

Результат

##ExtParam1234|IF=Иванов##  Директор

Если в данной задаче в ДП с ID=1234 записано значение "Иванов", то будет выведена строка

Должность:  Директор

иначе не будет выведено ничего

Смарт-выражения и смарт-скрипты

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

Синтаксис:

##SMART<smartexpressionid>##

##SMARTSCRIPT<smartscriptid>##

Пример записи

Результат

##SMART1234##

Строка, возвращаемая смарт-выражением с ID=1234

##SMARTSCRIPT9876##

Строка, возвращаемая смарт-скриптом с ID=9876

ID смарт-выражения можно посмотреть в категории на вкладке SMART или в разделе Общие SMART.

ID смарт-скрипта можно посмотреть в адресной строке при редактировании этого смарт-скрипта.

Поддержка mustache

В шаблоне печатных документов можно использовать элементы шаблонизатора mustache и с его помощью выводить параметры задач или результаты смарт-выражений.

Ниже приведены примеры использования элементов mustache, где XXXX — ID смарт-выражения. ID смарт-выражения можно посмотреть в категории на вкладке SMART или в разделе Общие SMART.

Пример записи

Результат

{{smartXXXX}}

Скалярное значение, возвращаемое смарт-выражением

{{FormatDateTime smartXXXX format="dd MM yyyy"}}

Дата, возвращаемая смарт-выражением, в формате 30.12.2020

{{#smartXXXX}}
   {{TaskID}}: {{Description}}
{{/smartXXXX}}

Циклический вывод номеров и текстов задач из списка, возвращаемого смарт-выражением

{{smartXXXX}}{{^TaskID}}Нет номера задачи{{/TaskID}}{{#TaskID}}{{TaskID}}{{/TaskID}}{{/smartXXXX}}

Условный вывод: номер задачи, если он есть, или сообщение "Нет номера задачи", если номера нет

Стили

{{#smartXXXX}}
  {{Style="Bold" CreatedTime}}
{{/smartXXXX}}

Значение выделено жирным шрифтом

{{#smartXXXX}}
  {{Style="Italic" CreatedTime}}
{{/smartXXXX}}

Значение выделено курсивом

{{#smartXXXX}}
  {{Style="Underlined" CreatedTime}}
{{/smartXXXX}}

Значение подчеркнуто

Полезные ссылки