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

Материал из Planfix
Перейти к: навигация, поиск

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


Навигация


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

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

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

bHwxQU.png


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

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

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

Примеры

Цена со скидкой: %%%{{Задача.Цена}}*0.8%%%
Работы будут окончены через %%%РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d")%%% %%%МНОЖЕСТВЕННОЕЧИСЛО(РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d");"день"; "дня"; "дней")%%%

Важно

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


ЕСЛИ

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

%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%

Пример

%%$ЕСЛИ({{Задача.Сумма заказа}} > 100000)$%%
VIP-КЛИЕНТ
%%$КОНЕЦБЛОКА$%%


Результат:

VIP-КЛИЕНТ


ИНАЧЕ

Используется только вместе с ЕСЛИ. Когда условие в ЕСЛИ не будет истинным, отобразится текст из части блока ИНАЧЕ.

%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕ$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%

Пример

%%$ЕСЛИ({{Задача.Счет №}}="")$%%
Не заполнено поле [Счет №]
%%$ИНАЧЕ$%%
Нужное поле задачи заполнено! :)
%%$КОНЕЦБЛОКА$%%


Результат:

  • Если поле будет не заполнено — выведется сообщение «Не заполнено поле [Счет №]».
  • Если поле будет заполнено — выведется сообщение «Нужное поле задачи заполнено! :)».


ИНАЧЕЕСЛИ

Поможет собрать более сложную конструкцию с условиями:

%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕ$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%


Обратите внимание

  • Последнее ИНАЧЕ — не обязательная часть блока.

Пример

%%$ЕСЛИ({{Задача.Счет №}}="")$%%
Не заполнено поле [Счет №]
%%$ИНАЧЕЕСЛИ({{Задача.УПД №}}="")$%%
Не заполнено поле [УПД №]
%%$ИНАЧЕЕСЛИ({{Задача.Контракт №}}="")$%%
Не заполнено поле [Контракт №]
%%$ИНАЧЕ$%%
Все поля задачи заполнены, ты молодец! :)
%%$КОНЕЦБЛОКА$%%


Результат:

  • Если все три поля будут не заполнены — выведется только первое сообщение «Не заполнено поле [Счет №]», остальные будут пропущены.
  • Если поля «Счет №» и «УПД №» будут заполнены, а поле «Контракт №» — нет, тогда отобразится соответствующая строка «Не заполнено поле [Контракт №]».


ДЛЯКАЖДОГО

Когда переменная представляет собой список значений, например {{Задача.Подзадачи}} или {{Задача.Исполнитель}}, и вам необходимо вывести информацию для каждого значения — используйте следующий синтаксис:

%%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%


Важно: в этой части конструкции — %%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%% — обязательно указывайте переменную первого уровня, т.е. {{Задача.Подзадачи}} или {{Задача.Исполнитель}} и никак иначе.


Пример

%%$ДЛЯКАЖДОГО({{Задача.Исполнитель}};"<br>")$%%

{{Задача.Исполнитель}} - {{Задача.Исполнитель.Должность}}
%%$КОНЕЦБЛОКА$%%


Результат:

Анастасия Приходько - Дизайнер
Вася Пятёрочкин - Разработчик
Катя Смирнова - СЕО
%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"<br>")$%%

{{Задача.Подзадачи.Номер}} - {{Задача.Подзадачи.Название}}
%%$КОНЕЦБЛОКА$%%


Результат:

2119 - Черновая отделка
2120 - Предчистовая отделка
2121 - Чистовая отделка


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

Cинтаксис:

%%$ДЛЯКАЖДОГО(Переменная;Разделитель;Условие_БЕЗ_Если)$%%
  ТЕКСТ
%%$КОНЕЦБЛОКА$%%


%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"";{{Задача.Подзадачи."Сумма контракта (у.е.)"}}>1000))$%%
{{Задача.Подзадачи.Контрагент}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}}
%%$КОНЕЦБЛОКА$%%


Результат

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

ООО Восход, 1500
ООО Рассвет, 1700
ООО Заря, 2500


Блок ЕСЛИ внутри блока ДЛЯКАЖДОГО

Cинтаксис:

%%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%%
  ТЕКСТ
  %%$ЕСЛИ(Логическая формула)$%%
    ТЕКСТ
  %%$КОНЕЦБЛОКА$%%
  ТЕКСТ
%%$КОНЕЦБЛОКА$%%


%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}})$%%%%$ЕСЛИ({{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет")$%%
{{Задача.Подзадачи.Контрагент}}, {{Задача.Подзадачи.Контрагент.ИНН}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}} {{Задача.Подзадачи.Валюта.Символ}}
%%$КОНЕЦБЛОКА$%%%%$КОНЕЦБЛОКА$%%


Результат:

ООО Восход, 5689845987654, 1500 $
ООО Рассвет, 5689845125699, 1700 $
ООО Заря, 5689845589674, 2500 $
ООО Свет, 5689845235689, 500 $

ТАБЛИЦА

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

%%$ТАБЛИЦА(Переменная)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%

Пример

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

Заказ №{{Задача.Номер}}

%%$ТАБЛИЦА({{Аналитика.Услуга}})$%%

{{Аналитика.Услуга.Название услуги}} {{Аналитика.Услуга.Сумма}}

%%$КОНЕЦБЛОКА$%%

Общая сумма заказа: %%%ТЕКСТ(СУММА({{Аналитика.Услуга.Сумма}});",.2f")+МНОЖЕСТВЕННОЕЧИСЛО(СУММА({{Аналитика.Услуга.Сумма}}); " рубль"; " рубля"; " рублей")%%%


Результат:

Заказ №2118

Графический дизайн 1 600,00
Программирование 3 000,00
Разработка ТЗ 300,00

Общая сумма заказа: 4 900,00 рублей


Пример с шапкой и итогом

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

%%$ТАБЛИЦА(Переменная;0;0)$%%
Таблица, нарисованная с помощью редактора ПланФикса
%%$КОНЕЦБЛОКА$%%

Пример:

%%$ТАБЛИЦА({{Аналитика.Услуга}};1;1)$%%

Название Стоимость
{{Аналитика.Услуга.Порядковый номер записи}} {{Аналитика.Услуга.Название услуги}} {{Аналитика.Услуга.Сумма}}
Итог %%%Сумма({{Аналитика.Услуга.Сумма}})%%%

%%$КОНЕЦБЛОКА$%%


Результат:

Название Стоимость
1 Разработка ТЗ 1 000,00
2 Программирование 3 705,00
3 Графический дизайн 1 035,00
4 Тестирование 690,00
Итог 6430

Цифры, выделенные красным цветом, указывают на то, сколько строк в начале и в конце таблицы использовать в шапке и итогах.

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

Для того, чтобы использовать две строки в шапке таблицы, укажите это так — (2;1).

Пример:

%%$ТАБЛИЦА({{Аналитика.Услуга}};2;1)$%%

Набор услуг
Название Стоимость
{{Аналитика.Услуга.Порядковый номер записи}} {{Аналитика.Услуга.Название услуги}} {{Аналитика.Услуга.Сумма}}
Итог %%%Сумма({{Аналитика.Услуга.Сумма}})%%%

%%$КОНЕЦБЛОКА$%%


Результат:

Набор услуг
Название Стоимость
1 Разработка ТЗ 1 000,00
2 Программирование 3 705,00
3 Графический дизайн 1 035,00
4 Тестирование 690,00
Итог 6430


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

%%$ТАБЛИЦА(Переменная;0;0;Условие_БЕЗ_если)$%%
Таблица, нарисованная с помощью редактора ПланФикса
%%$КОНЕЦБЛОКА$%%


%%$ТАБЛИЦА({{Задача.Подзадачи}};1;0;{{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет")$%%

Контрагент ИНН Сумма контракта
{{Задача.Подзадачи.Контрагент}} {{Задача.Подзадачи.Контрагент.ИНН}} {{Задача.Подзадачи."Сумма контракта (у.е.)"}}{{Задача.Подзадачи.Валюта.Символ}}

%%$КОНЕЦБЛОКА$%%


Результат:

Контрагент ИНН Сумма контракта
ООО Восход 5689845987654 1500$
ООО Рассвет 5689845125699 1700$
ООО Заря 5689845589674 2500$
ООО Свет 5689845235689 500$

Чтобы добавить в таблицу шапку, нажмите на нее правой кнопкой мыши и выберите Cтрока - Вставить строку сверху:

TVTmXD.png


Важно

В ТАБЛИЦАХ на данный момент не поддерживается вложенность конструкций, таким образом блок ЕСЛИ внутри ТАБЛИЦЫ работать не будет. Временное решение — использовать блок ТАБЛИЦА с функцией ЕСЛИ, то есть вместо блока «%%$ЕСЛИ» использовать функцию «%%%ЕСЛИ».


ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками

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

  • Извлеките данные в инфоблоки:
  • Затем воспользуйтесь следующим синтаксисом:

%%$ДЛЯКАЖДОГО({{Инфоблок.!строка}};Разделитель)$%%
{{Инфоблок.!строка.Имя инфоблока}}
%%$КОНЕЦБЛОКА$%%

%%$ТАБЛИЦА({{Инфоблок.!строка}})$%%
{{Инфоблок.!строка.Имя инфоблока}}
%%$КОНЕЦБЛОКА$%%


Пример

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

%%$ТАБЛИЦА({{Инфоблок.!строка}})$%%

{{Инфоблок.!строка.Товар}} {{Инфоблок.!строка.Цена}}

%%$КОНЕЦБЛОКА$%%


Результат:

Карандаш 150,00
Ручка 200,00
Тетрадь 100,00


Перейти