Переменные в тексте: различия между версиями

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


== '''ИначеЕСЛИ''' ==
== '''ИначеЕСЛИ''' ==
С помощью этого синтаксиса можно собрать более сложную конструкцию с условиями:
Поможет собрать более сложную конструкцию с условиями:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">

Версия от 15:25, 9 января 2023

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


Навигация


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

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

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

bHwxQU.png


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

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

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

Примеры

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


ЕСЛИ

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

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


Конструкцию необходимо добавлять одной строкой без пробелов и переносов:

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

Пример

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


Результат:

VIP-КЛИЕНТ


ИначеЕСЛИ

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

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


Конструкцию необходимо добавлять одной строкой без пробелов и переносов:

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

Пример

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


Результат:

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


ДЛЯКАЖДОГО

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

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


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


Конструкцию необходимо добавлять одной строкой без пробелов и переносов:

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

Пример

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


Результат:

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


Результат:

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

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

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


Перейти