Шаблон документа, загружаемый в ELMA365, может содержать любой текст, переменные, функции, условия и циклы. Добавляя шаблон в бизнес-процесс, вы сможете связать поля из вашего шаблона с контекстными переменными процесса.
Переменные
Все переменные в шаблоне должны выглядеть следующим образом: {$имя_переменной}
. Имя переменной уникально и пишется латинскими буквами, например, {$kontragent}
. Такая переменная позволит подставить наименование контрагента при создании договора в бизнес-процессе.
начало внимание
Использование английских кавычек в шаблоне “ “ может привести к его некорректной работе.
конец внимание
Функции
Функции для работы со строчным типом данных
Эти функции позволяют выводить текст в разном формате.
Для примера в качестве переменной $stroka1
будем использовать фразу «Заказ оформлен».
UpperCase(<param1: строка>)
— переводит текст в верхний регистр.
начало примера
Пример:
{UpperCase({$stroka1})}
—> ЗАКАЗ ОФОРМЛЕН
конец примера
LowerCase(<param1: строка>)
— переводит текст в нижний регистр.
начало примера
Пример:
{LowerCase({$stroka1})}
—> заказ оформлен
конец примера
Capitalize(<param1: строка>)
— переводит первую букву первого слова в заглавную.
начало примера
Пример:
{Capitalize({$stroka1})}
—> Заказ оформлен
конец примера
Substr(<param1: строка>, <length: число>, <from: число>)
— обрезает текст в соответствии с указанным количеством символов.
начало примера
Пример:
{Substr({$stroka1}, 0, 3)}
—> Зак
{Substr({$stroka1}, 4)}
—> з оформлен
конец примера
Функция ToString()
Функция ToString
универсальна и позволяет выводить в документе следующие типы данных:
Подробнее про типы данных, используемые в ELMA365, читайте в статье «Типы данных в системе».
Число
Для этого типа данных используется следующий синтаксис: ToString(param1: число, <format: строка>, <locale: строка>)
.
Для примера в качестве $int1
будем использовать целое число 546.
начало примера
Пример:
{ToString({$int1})}
—> 546
конец примера
По умолчанию число выводится цифрами. Для того чтобы вывести число прописью, используйте формат astext
.
начало примера
Пример:
{ToString({$int1}, astext)}
—> пятьсот сорок шесть
конец примера
Чтобы вывести число прописью на другом языке, необходимо указать локаль. На данный момент доступны локали ru–RU
для русского языка и en–US
для английского языка, также в шаблонах можно использовать шорткаты ru
и en
соответственно.
начало примера
Пример:
{ToString({$int1}, astext, en–US)}
—> five hundred forty—six
конец примера
Обратите внимание, что дробные числа вывести прописью нельзя.
Строка
Строка позволяет отобразить в документе текстовую информацию.
Для этого типа данных используется следующий синтаксис: ToString(param1: строка)
.
Для примера возьмём $str1 = «отправлено на согласование»
.
начало примера
{ToString({$str1})}
—> отправлено на согласование
конец примера
Категория
Тип данных Категория используется для того, чтобы выбирать определённое значение из списка. Например, при выборе способа оплаты можно указать, производится оплата картой или наличными.
Для этого типа данных используется следующий синтаксис: ToString(param1: категория)
.
При создании контекстной переменной этого типа в процессе указывается её название и код. Укажите соответствующий код в функции ToString
, чтобы в документе, формируемом по шаблону, отобразилось название переменной.
Для примера в качестве переменной $enum1
возьмём оплату картой: { «code»: «karta», «name»: «картой» }
.
начало примера
Пример:
Оплата производится {ToString({$enum1})}
—> Оплата производится картой
конец примера
Также для типа данных Категория в шаблон можно вывести название и код категории без использования функции ToString
.
Начало примера
Пример:
Оплата производится {$enum1.name}
—> Оплата производится картой
Оплата производится {$enum1}
—> Оплата производится картой
Код используемой категории: {$enum1.code}
—> Код используемой категории: karta
Конец примера
Выбор «да/нет»
У этого типа данных два варианта: Да и Нет. Вы можете их переименовать, например, Согласовано и Не согласовано.
Для примера возьмём $bool1 = true
. Вариант Да (yesValue
) определён как Согласовано.
начало примера
Пример:
{ToString({$bool1})}
—> Согласовано
конец примера
Деньги
Вы можете вывести в документе денежную сумму в различном формате.
Для этого типа данных используется следующий синтаксис: ToString(param1: деньги, <format: string>, <locale: string>)
.
Доступны следующие значения format
:
начало примера
Пример:
short
—> 1005, 56 (разделитель тысячных и целой/дробной части соответствует локали)
sign
—> 1005, 56 RUB
full
—> 1005 рублей 56 копеек
astext
—> Одна тысяча пять рублей 56 копеек
wildcard
—> вы можете задать свой формат, например, {ToString({$money1}, «%i руб. %f коп.»)}
. В этом случае сумма отобразится следующим образом: 1005 руб. 56 коп. (%i
— целая часть, %f
— дробная часть)
конец примера
Вы также можете указать локаль. На данный момент доступны локали ru–RU
для русского языка и en–US
для английского языка, также в шаблонах можно использовать шорткаты ru
и en
соответственно.
начало примера
Пример:
{ToString({$money1}, full, en)}
—> 1 005 rubles 56 kopecks
конец примера
ФИО
Вы можете указать в документе фамилию, имя и отчество в нужном формате и падеже.
Для этого типа данных используется следующий синтаксис: ToString(param1: ФИО, <format: строка>, <case: строка>)
.
начало примера
Доступны следующие значения format
:
long
— будет указана фамилия, имя и отчество полностью (Сергеев Сергей Николаевич)
short
— будет указана фамилия и инициалы (Сергеев С. Н.)
конец примера
начало примера
Доступны следующие значения case
:
nominative
| именительный | И — именительный
genitive
| родительный | Р — родительный
dative
| дательный | Д — дательный
accusative
| винительный | В — винительный
instrumental
| творительный | Т — творительный
prepositional
| предложный | П — предложный
конец примера
Обратите внимание, функция максимально правильно склоняет имя в том случае, если указано отчество.
начало примера
Пример:
{ToString({$fio1})}
—> Сергеев Сергей Николаевич
{ToString({$fio1}, short)}
—> Сергеев С.Н.
{ToString({$fio1}, short, Р)}
—> Сергеева С.Н.
конец примера
Если вы хотите отдельно указать имя, фамилию или отчество, используйте значения, записанные в переменной типа Ф.И.О.: {$executor.fullname.firstname}
, {$executor.fullname.lastname}
, {$executor.fullname.middlename}
.
Телефон
Вы можете создать маску для ввода телефонного номера. Для этого используется следующий синтаксис: ToString({$phone1}, «+7–XXX–XXX–XX–XX»)
.
Телефонный номер заполняется цифрами слева направо. Для примера возьмём номер 89123456789.
начало примера
Пример:
{ToString({$phone1}, «+7—XXX—XXX—XX—XX»)}
—> +7–912–345–67–89
{ToString({$phone1}, «X—XXX—XXX—XX—XX»)}
—> 8–912–345–67–89
{ToString({$phone1}, «XX—XX—XX»)}
—> 45–67–89
конец примера
Дата/Время
Вы можете указать в шаблоне дату и время, например, дату поставки оборудования по договору. Для этого используется следующий синтаксис: ToString(param1: дата/время, <format: строка>, <locale: строка>)
.
У типа данных Дата/Время есть разные подтипы: Дата/Время, Дата, Время.
Без указания дополнительных аргументов в функции {ToString({$date1})}
данные в документе будут выглядеть следующим образом:
начало примера
Пример:
Дата/время — 09.04.2019 15:18:43
Дата — 09.04.2019
Время — 15:18:43
конец примера
При использовании в функции формата short
, например, {ToString({$date1}, short)}
, время указывается без уточнения секунд.
Если в функции задан формат long
, например, {ToString({$date1}, long)}
, время будет отображаться с секундами, а дата — с полным названием месяца:
начало примера
Пример:
Дата/время — 09.04.2019 19:18:43
конец примера
Вы также можете указать локаль. На данный момент доступны локали ru–RU
для русского языка и en–US
для английского языка. Также в шаблонах можно использовать шорткаты ru
и en
соответственно.
начало примера
Пример:
{ToString({$date1}, short, en–US)}
—> 4/11/19 7:15 am
конец примера
Обратите внимание, подтип Дата/Время учитывает временную зону компании и выводит дату с учётом этой зоны. Подтипы Дата и Время выводят абсолютные значения.
Для примера мы составили шаблон договора поставки и использовали в нём различные функции и переменные. Затем мы добавили его в бизнес-процесс и связали переменные из шаблона с переменными процесса. После того как пользователи заполняют эти переменные, а процесс доходит до шага Генерация по шаблону, в системе автоматически создаётся готовый договор. Файл с шаблоном, который использован в этом примере, вы можете скачать на свой компьютер. |
Функция DateTime()
Функция DateTime()
позволяет вывести в шаблоне дату и время с указанием формата даты и локали.
Синтаксис функции: DateTime(<формат:строка>,<переменная:дата\время>,<локаль>)
.
Например, вы можете указать дату и время создания элемента.
Начало примера
Пример:
{DateTime(«YYYY–MM–DD hh:mm:ss»,{$__createdAt},"ru_RU")}
—> 2021–01–21 08:30:56
Конец примера
Также при добавлении шаблона вы можете использовать в функции кавычки.
начало примера
Пример:
{DateTime('"DD" MMMM YYYY',{$__createdAt},"ru_RU")}
—> "31" августа 2023
{DateTime("«DD» MMMM YYYY",{$__createdAt},"ru_RU")}
—> «31» августа 2023
{DateTime(«'DD' MMMM YYYY»,{$__createdAt},"ru_RU")}
—> '31' августа 2023
конец примера
Вывод данных:
Локаль:
|
Функция Now
Чтобы подставить в шаблон текущую дату и время с учётом временной зоны, используйте функцию Now
.
Синтаксис функции: Now(<format: строка>, <locale: строка>, <timezone: строка>)
.
С различными значениями format
дата будет выводиться по-разному.
начало примера
Доступны следующие варианты:
date
—> дата (13.04.2019)
time
—> 15:34
timelong
—> 15:34:22
datelong
—> 13 апреля 2019 г.
short
(по умолчанию) —> 13.04.2019 15:34
конец примера
Для locale
доступны значения ru–RU
для русского языка и en–US
для английского языка.
Значение timezone
задаётся в формате Europe/Samara, America/Toronto.
начало примера
Примеры синтаксиса данной функции:
{Now(datelong, en-US)}
— длинная дата, en-US
{Now(datelong, en)}
— длинная дата en
{Now(date, en)}
— только дата en
{Now(datelong, ru-RU)}
— длинная дата ru-RU
{Now(datelong, ru)}
— длинная дата ru
{Now(date, ru)}
— только дата ru
{Now(time, ru)}
— только время ru
{Now(timelong, ru)}
— время с секундами ru
{Now(short, ru)}
— дата и время без секунд ru
конец примера
Функции для склонения по падежам
В системе доступны функции сервиса Морфер для склонения слов и словосочетаний в формате .docx.
FormatFio (ФорматФио)
Склоняет ФИО в нужном падеже и выводит в нужном формате, например, только имя и отчество.
Синтаксис функции: {FormatFio (<ФИО: строка>, <падеж: 1>, <фамилия: 2>)}
.
[1]: Падеж обозначается первой буквой или полным названием («и» или «именительный», «р» или «родительный» и т. д.)
[2]: Формат отображения ФИО. Допустимые форматы (указываются в кавычках, чередуются через пробел, указывается либо полная форма, либо сокращённая):
- «фамилия» или «ф.»
- «имя» или «и.»
- «отчество» или «о.»
начало примера
Пример:
Данные {FormatFio(«Иванов Иван Иванович»,р,«фамилия и. о.»)}
—> Данные Иванова И.И
конец примера
Incline (Просклонять)
Данная функция возвращает заданную строку в указанном падеже.
Синтаксис функции: {Incline(Просклонять) (<Выражение: строка>,<падеж: 1>,<признаки: 2>)}
.
[1]: Падеж обозначается первой буквой или полным названием («и» или «именительный», «р» или «родительный» и т.д.)
По умолчанию будет использоваться именительный.
[2]: Дополнительные признаки (комбинируются через пробел):
- фио (ф);
- мужской род (м);
- женский род (ж);
- нарицательное (н);
- одушевлённое (о);
- неодушевлённое (но)
начало примера
Пример:
{Просклонять('договор подряда',П,м но)}
—> договоре подряда
конец примера
InclineMany (ПросклонятьМнож)
Эта функция возвращает заданную строку в указанном падеже и во множественном числе. Параметры такие же, как у функции Incline.
начало примера
Пример:
{ПросклонятьМнож('договор подряда',П)}
—> о договорах подряда
конец примера
NumberToString (ЧислоВСтроку)
Данная функция возвращает указанное число в текстовом формате и в заданном падеже.
Синтаксис функции: {NumberToString(<Число>,<падеж: 1>,<единица измерения: 2>,<объем единицы измерения: 3>,<формат: 4>)}
.
Правила написание функции:
- параметры Падеж, Единица измерения и Формат отображения числа прописываются в кавычках — «»;
- параметры отделяются друг от друга запятой;
- единица измерения дробной части указывается с помощью вертикальной черты — |.
Параметры:
- [0]: Число для преобразования в строку.
- [1]: Падеж.
Прописывается с использованием кавычек, например, «И» или «Именительный», «Р» или «Родительный» и т. д. По умолчанию употребляется именительный падеж.
начало примера
Пример 1:
{NumberToString(5634,«П»)}
—> пяти тысячах шестистах тридцати четырех
конец примера
начало примера
Пример 2:
{NumberToString(5634.37,«Р»)}
—> пяти тысяч шестисот тридцати четырех целых тридцати семи сотых
конец примера
- [2]: Единицы измерения.
Прописывается с использованием кавычек. Допустимые форматы:
- НазваниеЦелойЧасти|НазваниеДробнойЧасти (пример: «рубль|копейка»)
- Только целая часть (пример: «рубль»)
начало примера
Пример 3:
{NumberToString(5850,«П»,«рубль»)}
—> пяти тысячах восьмистах пятидесяти рублях
конец примера
начало примера
Пример 4:
{NumberToString(5830.35,«Т»,«евро|евроцент»)}
—> пятью тысячами восьмьюстами тридцатью евро тридцатью пятью евроцентами
конец примера
- [3]: Объём единиц измерения.
Прописывается как число, по умолчанию используется 100.
- [4]: Формат отображения числа.
Прописывается с использованием кавычек. Может быть использован без указания параметра [3].
Допустимые значения:
- 0 — отображает только дробную часть числа.
- A или B (латиница) — идентификатор системного формата:
- A — {ПЦЧ} {НЦЧ} {ПДЧ} {НДЧ};
- B — {ПЦЧ} {НЦЧ} {ДЧ} {НДЧ}.
- Пользовательский шаблон отображения целой и дробной частей.
Ниже приведена расшифровка значений. Символ Ф нужно заменить на обозначение формата. Доступные форматы можно посмотреть в документации:- {ЦЧ} или {ЦелаяЧасть} — шаблон для отображения целой части числа;
- {ДЧ} или {ДробнаяЧасть} — шаблон для отображения дробной части числа;
- {ЦЧ:Ф} или {ЦелаяЧасть:Ф} — шаблон для отображения целой части числа с использованием формата отображения;
- {ДЧ:Ф} или {ДробнаяЧасть:Ф} — шаблон для отображения дробной части числа с использованием формата отображения;
- {ПЦЧ} или {ПрописьЦелойЧасти} — шаблон для отображения целой части числа прописью;
- {ПДЧ} или {ПрописьДробнойЧасти} — шаблон для отображения дробной части числа прописью;
- {НЦЧ} или {НаименованиеЦелойЧасти} — шаблон для отображения единиц измерения целой части числа;
- {НДЧ} или {НаименованиеДробнойЧасти} — шаблон для отображения единиц измерения дробной части числа.
начало примера
Пример 5:
{NumberToString(46.25,«И»,«ящик|мешок»,38,«{ЦЧ}({ПЦЧ}{НЦЧ}) примерно {ДЧ}({ПДЧ}{НДЧ}) и один контейнер»)}
—> 46 (сорок шесть ящиков) примерно 10 (десять мешков) и один контейнер
Примечание: .25 — это четверть. Мы указали, что в целом — 38 частей. 38\4 = 9.5 (округляется до 10)
конец примера
начало примера
Пример 6:
{NumberToString(12345.5,«Д»,«бочка|литр»,60,«{ЦЧ:N} ({ПЦЧ} {НЦЧ}) и {ДЧ} ({ПДЧ} {НДЧ})»)}
—> 12,345.000 (двенадцати тысячам трёмстам сорока пяти бочкам) и 30 (тридцати литрам)
Примечание: В значении {ЦЧ:N} :N — это формат отображения. Данный формат обозначает, что всегда необходимо показывать дробную часть в числе, но, так как в функции дробная часть отделяется, после запятой будут идти нули.
конец примера
ChangeKind (ИзменитьРод)
Данная функция позволяет изменить род прилагательного.
Синтаксис функции: {ChangeKind(<прилагательное в именительном падеже мужского рода: строка>,<род: 1>)}
.
Параметры:
[1]: Род и число, в которые нужно преобразовать.
Допустимые значения (в скобках даны сокращённые варианты):
- мужской род (м, муж);
- женский род (ж, жен);
- средний род (с, ср);
- множественное число (мн, множ)
начало примера
Пример 1:
{ChangeKind(спокойный,жен)}
—> спокойная
конец примера
начало примера
Пример 2:
{ChangeKind(спокойный,мн)}
—> спокойные
конец примера
GetPartOfFullName (Фио)
Функция позволяет получить полное имя или его часть. Синтаксис функции: {Фио(<ФИО:строка>,<часть ФИО:1>)}
.
[1]: Часть ФИО. Допустимые значения (в скобках даны сокращённые варианты):
- фамилия (ф)
- имя (и)
- отчество (о)
- полноеимя (полн)
начало примера
Пример:
{Фио('Пушкин Александр Сергеевич',о)}
—> Сергеевич
конец примера
AnotherGenderSecondName (ФамилияПротивоположногоПола)
Функция позволяет получить фамилию противоположного пола.
Синтаксис функции: {ФамилияПротивоположногоПола(<фамилия:строка>)}
.
начало примера
Пример:
{ФамилияПротивоположногоПола(Петров)}
—> Петрова
конец примера
Функция Barcode
Чтобы закодировать строку приложения и добавить её в документ в виде штрихкода, используйте функцию Barcode
. Например, таким образом можно сгенерировать штрихкод для регистрационного номера договора или другого уникального номера документа. В дальнейшем с помощью штрихкода можно будет сопоставить документ на бумажном носителе и электронную копию.
Взаимодействие ELMA365 с ПО для считывания штрихкодов осуществляется через модули интеграции. Подробнее о них можно прочитать в статьях «Готовые модули» и в справке по публичному API ELMA365.
Генерация штрихкода доступна для форматов Word и Excel.
Синтаксис функции: GenerateBarcode(<text: строка:1>, <format: формат кода:2>, <высота сгенерированного штрихкода в пикселях>)
. Высота в пикселях — не обязательный параметр.
[1]: строка зависит от формата, указываемого во втором параметре.
[2]: возможные форматы штрихкодов и требования к строке:
- QR Code — любая строка;
- EAN-8 — строка из 7 цифр или 8 цифр, где последняя будет контрольная;
- EAN-13 — строка из 12 цифр или 13 цифр, где последняя будет контрольная.
начало внимание
Если при использовании форматов EAN контрольная сумма не была указана, она добавится автоматически. Для корректной работы сканер штрихкодов следует настроить на работу с данными форматами.
конец внимание
Мы рекомендуем использовать формат QR Code, так как он не имеет таких строгих ограничений, как форматы EAN.
Для примера возьмём строку $numberstring = «5901234123457»
. Она подойдёт для формата QR Code и EAN-13.
начало примера
Пример:
{GenerateBarcode({$numberstring}, "QR Code", "125" )}
{GenerateBarcode({$numberstring}, "EAN-13", "125" )}
конец примера
Для формата EAN-8 в строке должно быть не больше 8 цифр: $numberstring = «59012341»
.
Если в шаблоне одна и та же строка используется для генерации QR-кода два раза, но при этом указывается разный размер, то в обоих случаях сгенерируется QR-код одинакового размера.
Функция JobPosition
Эта функция используется для получения должности пользователя.
Синтаксис функции: JobPosition(<переменная:пользователь>, <формат:строка>)
.
Вы можете использовать переменную «first»
для передачи первой должности, и переменную «all»
— для всех должностей пользователя.
начало примера
Пример:
{JobPosition({$__createdBy},«all»)}
—> функция передаст все должности пользователя, записанного в поле Автор.
конец примера
Функция ExtText
В случае, если для настройки шаблона системных функций недостаточно, вы можете создать пользовательскую функцию ExtText
. Функция позволяет вызывать методы API, описанные в пользовательских модулях, и применять их к генерируемому шаблону.
Например, вы можете создать функцию вставки вотермарки, которая будет размещать на документе текст или изображение.
Синтаксис функции: {ExtText("id модуля", "адрес метода")}
, где:
- id модуля — символы из URL модуля, идущие после /ext_. Например, если URL модуля mycompany.elma365.ru/admin/extensions/ext_12ab-1212, в функцию нужно вставить 12ab-1212;
- адрес метода — значение поля Адрес из таблицы, расположенной на вкладке Методы API в настройках модуля.
Если в теле запроса в модуле используются дополнительные параметры, значения для них указываются в функции ExtText
через запятую после обязательных параметров. Обратите внимание, значения будут присваиваться параметрам в том порядке, в котором они объявлены в теле запроса метода.
начало примера
Пример:
{ExtText("12ab-1212", "watermark", {$number}, "Текст для примера")}
—> функция запустит метод watermark и передаст в него значение переменной $number
из бизнес-процесса, в котором настраивается шаблон, а также указанную строку Текст для примера.
конец примера
Условия
В зависимости от условия, в документе можно вывести тот или иной текст.
Условие начинается с оператора {if <условие>}
и заканчивается оператором {end}
. <условие>
— это любое условие, например, {$имя_переменной} = «Да»}
.
Обратите внимание, что для переменных типа Выбор «да/нет» нужно указывать значения из поля Варианты. По умолчанию это Да и Нет.
Можно использовать условия трёх видов:
начало примера
Пример 1:
{if {$user_name} = «Петров Илья»} С уважением, Петров Илья {end}
конец примера
начало примера
Пример 2:
{if {$week.day} = «Пятница»}
До свидания, хороших выходных!
{else}
До свидания!
{end}
конец примера
начало примера
Пример 3:
{if {$bool} <> «Нет»} Этот текст должен быть виден {end}
конец примера
Условные операторы
При написании условий вы можете использовать следующие операторы:
- = — равно;
- <> — не равно;
- > — больше;
- >= — больше или равно;
- < — меньше;
- <= — меньше или равно.
Логические операторы OR и AND
Для создания сложных условий можно использовать операторы OR
и AND
, которые позволяют задавать несколько условий в виде одной конструкции.
При использовании OR
достаточно, чтобы выполнилось хотя бы одно из указанных условий.
начало примера
Пример:
{if {$trip.location_type} = «Гостиница» OR {$trip.location_type} = «Квартира принимающей стороны»}
{$business_trip_request.city}
{end}
конец примера
При использовании AND
нужно, чтобы выполнялись все перечисленные условия.
начало примера
Пример:
{if {$item.price} < 5000 AND {$item.isAvailable}}
{$item.name}
{end}
конец примера
Условия с логическими операторами OR
и AND
можно комбинировать, используя скобки.
начало примера
Пример:
{if ({$business_trip_request.location_type} = «Гостиница» OR {$ business_trip_request.location_type} = «Квартира принимающей стороны») AND ({$business_trip_request.price} < 5000)}
{$business_trip_request.city}
{end}
конец примера
Цикл for
Цикл for
используется для того, чтобы отобразить в документе список, например, несколько товаров один за другим.
начало примера
Пример:
{ for fr in {$tovar} }
заказан товар — {$fr}
{end}
конец примера
При загрузке шаблона в систему и извлечении цикла for
из документа, поле для переменной будет определено как список.
For для приложений
Цикл for
можно использовать, чтобы отображать данные из приложения.
начало примера
Пример:
{for fr in {$appListField} }
Приложение — {$fr}, с именем {$fr.__name} на сумму {$fr.money}
{end}
конец примера
Такой же цикл позволяет записать данные приложения в таблицу.
начало примера
Пример:
{for fr in {$appListField} }
{$fr} |
{$fr.__name} |
{$fr.money} |
{end}
конец примера
начало внимание
При работе с приложениями названия полей в шаблоне следует указывать без префикса data
.
конец внимание
For для таблиц
Для корректной работы цикла при загрузке шаблона в систему укажите тип данных Таблица для переменной в цикле.
Если вам нужно выгрузить в документ данные из таблицы ELMA365, например, список товаров с указанием их количества и стоимости, заполненный в процессе обработки заказа, вы можете использовать шаблон в формате .xlsx.
начало внимание
При работе с таблицами в шаблоне перед именами полей нужно ставить префикс row.data
.
конец внимание
Настраивая шаблон, используйте цикл for
и укажите переменную процесса, в которой хранятся данные таблицы.
При создании шаблона в файле формата .xlsx команды for
и end
должны быть в первом столбце таблицы, иначе введённый текст отобразится некорректно. Далее вам нужно указать в шаблоне коды соответствующих полей приложения.
Например, для колонки, в которой будет отображаться стоимость, укажем {$row.data.item_price}
, где item_price
это код поля Стоимость. Команда row.data
обращается к элементу в цикле и позволяет заполнить в документе столько строк, сколько заполнено в таблице в ELMA365.
Шаблон документа формата .xlsx для таблицы, в которой указан товар, его стоимость, количество и итоговая сумма к оплате, может выглядеть следующим образом:
Шаблон для таблицы в файле формата .docx
Чтобы генерировать таблицу по шаблону в файле формата .docx:
- Отделите первую строку таблицы с помощью опции Разделить таблицу.
- В появившейся пустой строке объявите цикл
for
. - Настройте шаблон в таблице, указав переменные из контекста бизнес-процесса.
- Под таблицей закройте цикл командой
end
.
Например, шаблон для таблицы в документе может выглядеть следующим образом:
Вывести порядковый номер в таблице
С помощью цикла for
можно выводить в шаблоне таблицы порядковый номер строки. Для этого используется префикс row.data
и системное свойство __index
.
Например, шаблон для таблицы с номером строки, названием товара и его стоимостью можно создать следующим образом: