Перейти к содержимому

Переменные в тексте

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

Навигация

Переменные хранят значения: например, число, строку или данные другого типа. Переменные используются в:

  • Названии задачи (в шаблоне задачи или при создании задачи)
  • Описании задачи (в шаблоне задачи или при создании задачи)
  • Шаблонах писем
  • Действиях сценариев, кнопках, входящих вебхуках, правилах обработки писем для задач:
    • Отправить HTTP-запрос
    • Отправить SMS
    • Написать в WhatsApp
    • Написать в Instagram
  • Массовых действиях, сценариях, кнопках, входящих вебхуках, правилах обработки писем для задач:
    • Изменить название
    • Изменить описание
    • Добавить комментарий
    • Задать значение поля (для полей типа «Текст»)


Чтобы добавить переменную в текст, например в описание задачи, нажмите ссылку «различные переменные» (1), создайте переменную и добавьте её в текст нужного поля в шаблоне задачи (2):

vBmUi1.jpg

Вычисления с переменными

Иногда недостаточно вставить значение переменной в текст: нужно также выполнить вычисления со значениями переменных или обработать полученную строку. Для этого используется следующий синтаксис:

%%%ТЕКСТ ФОРМУЛЫ%%%

Примеры

Цена со скидкой: %%%{{Task.Price}}*0.8%%%
Работа будет завершена через %%%DATEDIF(NOW(); {{Task.Completion Date}}; "d")%%% %%%MULTIPLE(DATEDIF(NOW(); {{Task.Completion Date}}; "d");"day"; "days")%%%

Важно

  • Текст формулы должен быть записан в одну строку, его нельзя разрывать. Иными словами, нельзя переносить формулу на следующую строку нажатием клавиши Enter.
  • Форматирование переменных в формуле недопустимо: например, нельзя выделять их полужирным шрифтом или курсивом.
  • Если нужно выделить результат формулы полужирным шрифтом, примените форматирование ко всей формуле вместе с результатом.

IF

Чтобы вставить текст в зависимости от значений переменных (условий), используйте следующий синтаксис:

%%$IF(Логическая формула)$%%
ТЕКСТ
%%$ENDBLOCK$%%

Пример

%%$IF({{Task.Order Amount}} > 100000)$%%
VIP-КЛИЕНТ
%%$ENDBLOCK$%%


Результат:

VIP-КЛИЕНТ

ELSE

ELSE используется только вместе с IF. Если условие в IF не выполняется, отображается текст из части блока ELSE.

%%$IF(Логическая формула)$%%
ТЕКСТ
%%$ELSE$%%
ТЕКСТ
%%$ENDBLOCK$%%

Пример

%%$IF({{Task. Invoice №}}="")$%%
Поле [Invoice №] не заполнено
%%$ELSE$%%
Обязательное поле задачи заполнено! :)
%%$ENDBLOCK$%%


Результат:

  • Если поле не заполнено, отобразится сообщение «Поле [Invoice №] не заполнено».
  • Если поле заполнено, отобразится сообщение «Обязательное поле задачи заполнено! :)».

ELSEIF

Помогает создавать более сложные выражения с условиями:

%%$IF(Логическая формула)$%%
ТЕКСТ
%%$ELSEIF(Логическая формула)$%%
ТЕКСТ
%%$ELSEIF(Логическая формула)$%%
ТЕКСТ
%%$ELSE$%%
ТЕКСТ
%%$ENDBLOCK$%%


Примечание

  • Последняя часть блока — ELSE — необязательна.

Пример

%%$IF({{Task.Invoice Number}}="")$%%
Поле [Invoice Number] не заполнено
%%$ELSEIF({{Task.UPD Number}}="")$%%
Поле [UPD Number] не заполнено
%%$ELSEIF({{Task.Contract Number}}="")$%%
Поле [Contract Number] не заполнено
%%$ELSE$%%
Все поля задачи заполнены, вы молодец! :)
%%$ENDBLOCK$%%


Результат:

  • Если все три поля не заполнены, отобразится только первое сообщение «Поле [Invoice Number] не заполнено», остальные будут пропущены.
  • Если поля «Invoice Number» и «UPD Number» заполнены, а поле «Contract Number» — нет, отобразится соответствующее сообщение «Поле [Contract Number] не заполнено».

FOREACH

Если переменная представляет собой список значений, например {{Task.Subtasks}} или {{Task.Assignee}}, и нужно отобразить информацию для каждого значения, используйте следующий синтаксис:

%%$FOREACH(Переменная;Разделитель)$%%
ТЕКСТ
%%$ENDBLOCK$%%


Важно: в этой части выражения — %%$FOREACH(Переменная;Разделитель)$%% — обязательно укажите переменную первого уровня, то есть {{Task.Subtasks}} или {{Task.Assignee}}, и ничего больше.

Пример

%%$FOREACH({{Task.Assignee}};"<br>")$%%{{Task.Assignee}} - {{Task.Assignee.Position}}%%$ENDBLOCK$%%


Результат:

Линда Мартинес — дизайнер
Джеймс Дэвис — разработчик
Мэри Браун — генеральный директор
%%$FOREACH({{Task.Subtasks}};"<br>")$%%{{Task.Subtasks.Number}} - {{Task.Subtasks.Name}}%%$ENDBLOCK$%%


Результат:

2119 — черновая отделка
2120 — предчистовая отделка
2121 — финальные штрихи

Пример с условием

Синтаксис:

%%$FOREACH(Переменная;Разделитель;Условие_БЕЗ_If)$%%
ТЕКСТ
%%$ENDBLOCK$%%

%%$FOREACH({{Task.Subtasks}};"";{{Task.Subtasks."Contract Amount ($)"}}>1000))$%%
{{Task.Subtasks.Counterparty}}, сумма договора {{Task.Subtasks."Contract Amount ($)"}}
%%$ENDBLOCK$%%


Результат

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

ООО «Санрайз», 1500

ООО «Сансет», 1700

ООО «Доун», 2500

Блок ELSE внутри блока FOREACH

Синтаксис:

%%$FOREACH(Переменная;Разделитель)$%%
ТЕКСТ
 %%$IF(Логическая формула)$%%
ТЕКСТ
 %%$ENDBLOCK$%%
ТЕКСТ
%%$ENDBLOCK$%%

%%$FOREACH({{Task.Subtasks}})$%%%%$IF({{Task.Subtasks.Status}}="TKP added to calculation")$%%
{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.TIN}}, сумма договора {{Task.Subtasks."Contract Amount"}} {{Task.Subtasks.Currency.Symbol}}
%%$ENDBLOCK$%%%%$ENDBLOCK$%%


Результат:

ООО «Санрайз», 5689845987654, 1500 $
ООО «Сансет», 5689845125699, 1700 $
ООО «Доун», 5689845589674, 2500 $
ООО «Лайт», 5689845235689, 500 $

TABLE

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

%%$TABLE(Переменная)$%%
ТЕКСТ
%%$ENDBLOCK$%%

Пример

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

Заказ №{{Task.Number}}

%%$TABLE({{Data tag.Service}})$%%

{{Data tag.Service.Service Name}} {{Data tag.Service.Amount}}

%%$ENDBLOCK$%%

Общая сумма заказа: %%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%


Результат:

Заказ №2118

Графический дизайн 1 600.00
Программирование 3 000.00
Разработка ТЗ 300.00

Общая сумма заказа: 4 900.00 долларов

Пример с заголовком и итоговой строкой

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

%%$TABLE(Переменная;0;0)$%%
Таблица, созданная с помощью редактора Planfix
%%$ENDBLOCK$%%

Пример: %%$TABLE({{Data Tag.Service}};1;1)$%%

№ Название Цена
{{Data tag.Service.Record Number}} {{Data tag.Service.Service Name}} {{Data tag.Service.Amount}}
Итого %%%SUM({{Data tag.Service.Amount}})%%%

%%$ENDBLOCK$%%


Результат:

№ Название Цена
1 Разработка ТЗ 1 000.00
2 Программирование 3 705.00
3 Графический дизайн 1 035.00
4 Тестирование 690.00
Итого 6430

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

Например, числа (1;1) в примере выше означают, что одна строка в начале будет использована для заголовка таблицы, а одна строка в конце — для итогов.

Чтобы использовать в заголовке таблицы две строки, укажите параметры так: (2;1).

Пример: %%$TABLE({{Data tag .Service}};2;1)$%%

Набор услуг
№ Название Цена
{{Data tag.Service.Record Number}} {{Data tag.Service.Service Name}} {{Data tag.Service.Amount}}
Итого %%%SUM({{Data tag.Service.Amount}})%%%

%%$ENDBLOCK$%%


Результат:

Набор услуг
№ Название Цена
1 Разработка ТЗ 1 000.00
2 Программирование 3 705.00
3 Графический дизайн 1 035.00
4 Тестирование 690.00
Итого 6430

Пример с условием

%%$TABLE(Переменная;0;0;Условие_БЕЗ_If)$%%
Таблица, созданная с помощью редактора Planfix
%%$ENDBLOCK$%%


%%$TABLE({{Task.Subtasks}};1;0;{{Task.Subtasks.Status}}="TKP added to calculation")$%%

Контрагент ИНН Сумма договора
{{Task.Subtasks.Counterparty}} {{Task.Subtasks.Counterparty.TIN}} {{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}}

%%$ENDBLOCK$%%


Результат:

Контрагент ИНН Сумма договора
ООО «Санрайз» 5689845987654 1500$
ООО «Сансет» 5689845125699 1700$
ООО «Доун» 5689845589674 2500$
ООО «Лайт» 5689845235689 500$


Чтобы добавить заголовок в таблицу, щёлкните по ней правой кнопкой мыши и выберите Строка — Вставить строку выше:

Pvy4PR.jpg

FOREACH и TABLE с инфоблоками

При разборе письма или обработке HTTP-запроса можно получить несколько строк данных и добавить их в виде структурированного текста или таблицы:

%%$FOREACH({{Infoblock.!row}};Разделитель)$%%
{{Infoblock.!row.Infoblock name}}
%%$ENDBLOCK$%%

%%$TABLE({{Infoblock.!row}})$%%
{{Infoblock.!row.Infoblock name}}
%%$ENDBLOCK$%%


Пример

Извлечём данные в инфоблоки «Товар» и «Цена» и добавим их в таблицу:

%%$TABLE({{Infoblock.!row}})$%%

{{Infoblock.!string.Product}} {{Infoblock.!string.Price}}

%%$ENDBLOCK$%%


Результат:

Карандаш 1,00
Ручка 2,00
Блокнот 10,00


Перейти