Переменные в тексте: различия между версиями
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 165 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{#seo: | {{#seo: | ||
|title= | |title=Переменные в тексте | ||
|titlemode=append | |titlemode=append | ||
|keywords=планфикс, переменные, шаблон задачи, шаблон документа | |keywords=планфикс, переменные, шаблон задачи, шаблон документа, использование переменных, переменные в тексте, текст с переменными, для каждого, длякаждого, если, иначе, иначе если, иначеесли, таблица | ||
|description=Использование переменных в тексте | |description=Использование переменных в тексте | ||
}} | }} | ||
Переменные хранят в себе какое-то значение, например, число, строку или другой тип данных. Переменные | <div style="background:#ffbaba;padding:10px;border:1px solid #ff9b9b;">Эта справочная статья не относится к шаблонам документов. Как использовать переменные в шаблонах документов читайте [[Переменные в шаблонах документов |здесь]].</div> | ||
* | |||
* | |||
* | == Навигация == | ||
* | *[[#Вычисления над переменными |Вычисления над переменными]] | ||
*[[#ЕСЛИ |ЕСЛИ]] | |||
*[[#ИНАЧЕ |ИНАЧЕ]] | |||
*[[#ИНАЧЕЕСЛИ |ИНАЧЕЕСЛИ]] | |||
*[[#ДЛЯКАЖДОГО |ДЛЯКАЖДОГО]] | |||
*[[#ТАБЛИЦА |ТАБЛИЦА]] | |||
*[[#ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками |ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками]] | |||
Переменные хранят в себе какое-то значение, например, число, строку или другой тип данных. Переменные используются в: | |||
*Названии задачи (в шаблоне задач или при создании задачи) | |||
*Описании задачи (в шаблоне задач или при создании задачи) | |||
*Шаблонах писем | |||
*Действиях сценариев, кнопок, входящих вебхуков, правилах для задач по почте: | |||
**Послать HTTP-запрос | **Послать HTTP-запрос | ||
**Отправить SMS | **Отправить SMS | ||
**Написать в WhatsApp | **Написать в WhatsApp | ||
**Написать в Instagram | **Написать в Instagram | ||
* | *Изменениях задач массовыми действиями, сценариями, кнопками, входящими вебхуками, правилами для задач по почте: | ||
**Изменить название | **Изменить название | ||
**Изменить описание | **Изменить описание | ||
Строка 33: | Строка 46: | ||
<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;"><nowiki>Цена со скидкой: %%%{{Задача.Цена}}*0.8%%%</nowiki></div> | <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;"><nowiki>Цена со скидкой: %%%{{Задача.Цена}}*0.8%%%</nowiki></div> | ||
<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;"><nowiki>Работы будут окончены через %%%РАЗНДАТ( | <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;"><nowiki>Работы будут окончены через %%%РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d")%%% %%%МНОЖЕСТВЕННОЕЧИСЛО(РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d");"день"; "дня"; "дней")%%%</nowiki></div> | ||
=== Важно === | |||
*Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter. | |||
*Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом. | |||
*Если результат формулы необходимо выделить жирным, то применяйте форматирование сразу ко всей формуле вместе с процентами. | |||
Строка 40: | Строка 58: | ||
<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;">%%$<span style="color:green">ЕСЛИ(</span><span style="color:blue">Логическая формула</span><span style="color:green">)</span>$%%<br><span style="color:red">'''ТЕКСТ'''</span><br>%%$<span style="color:green">КОНЕЦБЛОКА</span>$%% | <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;">%%$<span style="color:green">ЕСЛИ(</span><span style="color:blue">Логическая формула</span><span style="color:green">)</span>$%%<br><span style="color:red">'''ТЕКСТ'''</span><br>%%$<span style="color:green">КОНЕЦБЛОКА</span>$%% | ||
</div> | |||
=== Пример === | |||
<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;"> | |||
%%$ЕСЛИ(<nowiki>{{Задача.Сумма заказа}}</nowiki> > 100000)$%%<br> | |||
VIP-КЛИЕНТ<br> | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат''': | |||
VIP-КЛИЕНТ</div> | |||
%%$ЕСЛИ(Логическая формула)$%%ТЕКСТ%%$КОНЕЦБЛОКА$%%</div> | == '''ИНАЧЕ''' == | ||
Используется только вместе с ЕСЛИ. Когда условие в ЕСЛИ не будет истинным, отобразится текст из части блока ИНАЧЕ. | |||
<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;"> | |||
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br> | |||
<span style="color:red">ТЕКСТ</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> | |||
<span style="color:red">ТЕКСТ</span><br> | |||
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%% | |||
</div> | |||
=== Пример === | === Пример === | ||
<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;"> | ||
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.Счет №}}=""</nowiki></span>)$%%<br> | |||
<span style="color:red">Не заполнено поле [Счет №]</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> | |||
<span style="color:red">Нужное поле задачи заполнено! :)</span><br> | |||
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%% | |||
'''Результат''': | '''Результат''': | ||
*Если поле будет не заполнено — выведется сообщение «Не заполнено поле [Счет №]». | |||
*Если поле будет заполнено — выведется сообщение «Нужное поле задачи заполнено! :)». | |||
</div> | |||
== '''ИНАЧЕЕСЛИ''' == | |||
Поможет собрать более сложную конструкцию с условиями: | |||
<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;"> | |||
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br> | |||
<span style="color:red">ТЕКСТ</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br> | |||
<span style="color:red">ТЕКСТ</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br> | |||
<span style="color:red">ТЕКСТ</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> | |||
<span style="color:red">ТЕКСТ</span><br> | |||
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%% | |||
'''Обратите внимание'''<br> | |||
*Последнее <span style="color:#ef18c7">ИНАЧЕ</span> — не обязательная часть блока. | |||
</div> | |||
=== Пример === | |||
<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;"> | |||
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.Счет №}}=""</nowiki></span>)$%%<br> | |||
<span style="color:red">Не заполнено поле [Счет №]</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.УПД №}}=""</nowiki></span>)$%%<br> | |||
<span style="color:red">Не заполнено поле [УПД №]</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.Контракт №}}=""</nowiki></span>)$%%<br> | |||
<span style="color:red">Не заполнено поле [Контракт №]</span><br> | |||
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> | |||
<span style="color:red">Все поля задачи заполнены, ты молодец! :)</span><br> | |||
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%% | |||
'''Результат''': | |||
*Если все три поля будут не заполнены — выведется только первое сообщение «Не заполнено поле [Счет №]», остальные будут пропущены. | |||
*Если поля «Счет №» и «УПД №» будут заполнены, а поле «Контракт №» — нет, тогда отобразится соответствующая строка «Не заполнено поле [Контракт №]».</div> | |||
Строка 58: | Строка 140: | ||
Когда переменная представляет собой список значений, например <nowiki>{{Задача.Подзадачи}}</nowiki> или <nowiki>{{Задача.Исполнитель}}</nowiki>, и вам необходимо вывести информацию для каждого значения — используйте следующий синтаксис: | Когда переменная представляет собой список значений, например <nowiki>{{Задача.Подзадачи}}</nowiki> или <nowiki>{{Задача.Исполнитель}}</nowiki>, и вам необходимо вывести информацию для каждого значения — используйте следующий синтаксис: | ||
<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;">%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%%<br>'''<span style="color:red;"> | <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;">%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%%<br>'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%% | ||
'''Важно''': в этой части конструкции — %%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%% — обязательно указывайте переменную первого уровня, т.е. <nowiki>{{Задача.Подзадачи}}</nowiki> или <nowiki>{{Задача.Исполнитель}}</nowiki> и никак иначе. | |||
</div> | |||
=== Пример === | |||
<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;"><nowiki>%%$ДЛЯКАЖДОГО({{Задача.Исполнитель}};"<br>")$%%</nowiki><br> | |||
<nowiki>{{Задача.Исполнитель}} - {{Задача.Исполнитель.Должность}}</nowiki><br> | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат''': | |||
Анастасия Приходько - Дизайнер<br>Вася Пятёрочкин - Разработчик<br>Катя Смирнова - СЕО</div> | |||
<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;"><nowiki>%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"<br>")$%%</nowiki><br> | |||
<nowiki>{{Задача.Подзадачи.Номер}} - {{Задача.Подзадачи.Название}}</nowiki><br> | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат''': | |||
2119 - Черновая отделка<br>2120 - Предчистовая отделка<br>2121 - Чистовая отделка</div> | |||
=== Пример с условием === | |||
<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;">'''Cинтаксис:''' | |||
%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>;<span style="color:blue;">Условие_БЕЗ_Если</span>)</span>$%%<br> '''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%% | |||
%%$ДЛЯКАЖДОГО(<nowiki>{{Задача.Подзадачи}}</nowiki>;"";<nowiki>{{Задача.Подзадачи."Сумма контракта (у.е.)"}}</nowiki>>1000))$%%<br> | |||
<nowiki>{{Задача.Подзадачи.Контрагент}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}}</nowiki><br> | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат''' | |||
Из всего списка контрагентов, отобразаться только те, у кого сумма контракта более 1000: | |||
ООО Восход, 1500<br> | |||
ООО Рассвет, 1700<br> | |||
ООО Заря, 2500<br> | |||
</div> | |||
=== Блок ЕСЛИ внутри блока ДЛЯКАЖДОГО === | |||
<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;">'''Cинтаксис:''' | |||
%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%%<br> '''<span style="color:red;">ТЕКСТ</span>'''<br> %%$<span style="color:green;">ЕСЛИ(</span><span style="color:blue;">Логическая формула</span><span style="color:green;">)</span>$%%<br> <span style="color:red;">ТЕКСТ</span><br> %%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%<br> '''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%% | |||
%%$ДЛЯКАЖДОГО(<nowiki>{{Задача.Подзадачи}}</nowiki>)$%%%%$ЕСЛИ(<nowiki>{{Задача.Подзадачи.Статус}}</nowiki>="ТКП добавлен в расчет")$%%<br> | |||
<nowiki>{{Задача.Подзадачи.Контрагент}}, {{Задача.Подзадачи.Контрагент.ИНН}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}} {{Задача.Подзадачи.Валюта.Символ}}</nowiki><br> | |||
%%$КОНЕЦБЛОКА$%%%%$КОНЕЦБЛОКА$%% | |||
'''Результат''': | |||
ООО Восход, 5689845987654, 1500 $<br> | |||
ООО Рассвет, 5689845125699, 1700 $<br> | |||
ООО Заря, 5689845589674, 2500 $<br> | |||
ООО Свет, 5689845235689, 500 $ | |||
</div> | |||
== '''ТАБЛИЦА''' == | |||
Если переменная представляет собой список значений, и вам необходимо вывести информацию для каждого значения в виде таблицы — используйте следующий синтаксис: | |||
<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;">%%$<span style="color:green;">ТАБЛИЦА(<span style="color:blue;">Переменная</span>)</span>$%%<br>'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%</div> | |||
=== Пример === | |||
Пример показывает, как из добавленной в задачу аналитики вычленить только нужные блоки и отправить эту информацию клиенту в виде таблицы. Таблица добавляется через панель редактора: | |||
<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;"> | |||
Заказ №<nowiki>{{Задача.Номер}}</nowiki> | |||
%%$ | <nowiki>%%$ТАБЛИЦА({{Аналитика.Услуга}})$%%</nowiki> | ||
{| class="wikitable" | |||
|<nowiki>{{Аналитика.Услуга.Название услуги}}</nowiki> | |||
|<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki> | |||
|} | |||
%%$КОНЕЦБЛОКА$%% | |||
Общая сумма заказа: | |||
<nowiki>%%%ТЕКСТ(СУММА({{Аналитика.Услуга.Сумма}});",.2f")+МНОЖЕСТВЕННОЕЧИСЛО(СУММА({{Аналитика.Услуга.Сумма}}); " рубль"; " рубля"; " рублей")%%%</nowiki> | |||
=== | |||
<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;">< | Заказ №2118 | ||
{| class="wikitable" | |||
|Графический дизайн | |||
|1 600,00 | |||
|- | |||
|Программирование | |||
|3 000,00 | |||
|- | |||
|Разработка ТЗ | |||
|300,00 | |||
|- | |||
|} | |||
Общая сумма заказа: 4 900,00 рублей | |||
</div> | |||
=== Пример с шапкой и итогом === | |||
Для того, чтобы вывести в таблице шапку или строку итогов используйте в синтаксисе следующие параметры: | |||
<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;">%%$ТАБЛИЦА(Переменная;<span style="color:red;">0</span>;<span style="color:red;">0</span>)$%%<br>Таблица, нарисованная с помощью редактора ПланФикса<br>%%$КОНЕЦБЛОКА$%%</div> | |||
<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;"> | |||
'''Пример:''' | |||
%%$ТАБЛИЦА(<nowiki>{{Аналитика.Услуга}}</nowiki>;<span style="color:red;">1</span>;<span style="color:red;">1</span>)$%%<br> | |||
{| class="wikitable" | |||
! № | |||
! Название | |||
! Стоимость | |||
|- | |||
|<nowiki>{{Аналитика.Услуга.Порядковый номер записи}}</nowiki> | |||
|<nowiki>{{Аналитика.Услуга.Название услуги}}</nowiki> | |||
|<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki> | |||
|- | |||
|colspan="2"|Итог | |||
|%%%Сумма(<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>)%%% | |||
|- | |||
|} | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат:''' | |||
{| class="wikitable" | |||
! № | |||
! Название | |||
! Стоимость | |||
|- | |||
|1 | |||
|Разработка ТЗ | |||
|1 000,00 | |||
|- | |||
|2 | |||
|Программирование | |||
|3 705,00 | |||
|- | |||
|3 | |||
|Графический дизайн | |||
|1 035,00 | |||
|- | |||
|4 | |||
|Тестирование | |||
|690,00 | |||
|- | |||
|colspan="2"|Итог | |||
|6430 | |||
|} | |||
</div> | |||
Цифры, выделенные <span style="color:red;">красным цветом</span>, указывают на то, сколько строк в начале и в конце таблицы использовать в шапке и итогах. | |||
Так, в примере выше указаны цифры (<span style="color:red;">1</span>;<span style="color:red;">1</span>) — это означает, что одна строка в начале будет использована для шапки таблицы и одна строка в конце будет использована для итогов таблицы. | |||
Для того, чтобы использовать две строки в шапке таблицы, укажите это так — (<span style="color:red;">2</span>;<span style="color:red;">1</span>). | |||
<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;"> | |||
'''Пример:''' | |||
%%$ТАБЛИЦА(<nowiki>{{Аналитика.Услуга}}</nowiki>;<span style="color:red;">2</span>;<span style="color:red;">1</span>)$%%<br> | |||
{| class="wikitable" | |||
!colspan="3"|Набор услуг | |||
|- | |||
! № | |||
! Название | |||
! Стоимость | |||
|- | |||
|<nowiki>{{Аналитика.Услуга.Порядковый номер записи}}</nowiki> | |||
|<nowiki>{{Аналитика.Услуга.Название услуги}}</nowiki> | |||
|<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki> | |||
|- | |||
|colspan="2"|Итог | |||
|%%%Сумма(<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>)%%% | |||
|- | |||
|} | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат:''' | |||
{| class="wikitable" | |||
!colspan="3"|Набор услуг | |||
|- | |||
! № | |||
! Название | |||
! Стоимость | |||
|- | |||
|1 | |||
|Разработка ТЗ | |||
|1 000,00 | |||
|- | |||
|2 | |||
|Программирование | |||
|3 705,00 | |||
|- | |||
|3 | |||
|Графический дизайн | |||
|1 035,00 | |||
|- | |||
|4 | |||
|Тестирование | |||
|690,00 | |||
|- | |||
|colspan="2"|Итог | |||
|6430 | |||
|} | |||
</div> | |||
=== Пример с условием === | |||
<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;"> | |||
%%$<span style="color:green;">ТАБЛИЦА(</span><span style="color:blue;">Переменная;0;0;Условие_БЕЗ_если</span><span style="color:green;">)</span>$%%<br> | |||
<span style="color:red;">Таблица, нарисованная с помощью редактора ПланФикса</span><br> | |||
%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%% | |||
%%$ТАБЛИЦА(<nowiki>{{Задача.Подзадачи}}</nowiki>;1;0;<nowiki>{{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет"</nowiki>)$%%<br> | |||
{| class="wikitable" | |||
! Контрагент | |||
! ИНН | |||
! Сумма контракта | |||
|- | |||
|<nowiki>{{Задача.Подзадачи.Контрагент}}</nowiki> | |||
|<nowiki>{{Задача.Подзадачи.Контрагент.ИНН}}</nowiki> | |||
|<nowiki>{{Задача.Подзадачи."Сумма контракта (у.е.)"}}{{Задача.Подзадачи.Валюта.Символ}}</nowiki> | |||
|- | |||
|} | |||
%%$КОНЕЦБЛОКА$%% | |||
'''Результат:''' | |||
{| class="wikitable" | |||
! Контрагент | |||
! ИНН | |||
! Сумма контракта | |||
|- | |||
|ООО Восход | |||
|5689845987654 | |||
|1500$ | |||
|- | |||
|ООО Рассвет | |||
|5689845125699 | |||
|1700$ | |||
|- | |||
|ООО Заря | |||
|5689845589674 | |||
|2500$ | |||
|- | |||
|ООО Свет | |||
|5689845235689 | |||
|500$ | |||
|- | |||
|} | |||
</div> | |||
Чтобы добавить в таблицу шапку, нажмите на нее правой кнопкой мыши и выберите '''Cтрока''' - '''Вставить строку сверху''': | |||
https://p.pfx.so/pf/3R/TVTmXD.png | |||
== '''ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками''' == | |||
При разборе письма или ответа на HTTP-запрос вы получаете несколько строк данных и хотите добавить их в комментарий в виде структурированного текста или таблицы: | |||
*Извлеките данные в инфоблоки: | |||
**[[JSONPath |из JSON]] | |||
**[[Извлечение данных из таблиц в письмах |из HTML-таблицы]] | |||
*Затем воспользуйтесь следующим синтаксисом: | |||
<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;"> | |||
%%$<span style="color:green;">ДЛЯКАЖДОГО(</span><span style="color:blue;"><nowiki>{{Инфоблок.!строка}}</nowiki></span>;<span style="color:blue;">Разделитель</span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Инфоблок.!строка.Имя инфоблока}}</nowiki></span><br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%% | |||
%%$<span style="color:green;">ТАБЛИЦА(</span><span style="color:blue;"><nowiki>{{Инфоблок.!строка}}</nowiki></span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Инфоблок.!строка.Имя инфоблока}}</nowiki></span><br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%% | |||
</div> | |||
=== Пример === | |||
Извлечём данные в инфоблоки «Товар» и «Цена» и добавим их в таблицу: | |||
<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;"> | |||
%%$ТАБЛИЦА(<nowiki>{{Инфоблок.!строка}}</nowiki>)$%% | |||
{| class="wikitable" | |||
|<nowiki>{{Инфоблок.!строка.Товар}}</nowiki> | |||
|<nowiki>{{Инфоблок.!строка.Цена}}</nowiki> | |||
|} | |||
%%$КОНЕЦБЛОКА$%% | |||
= | '''Результат:''' | ||
{| class="wikitable" | |||
|Карандаш | |||
|150,00 | |||
|- | |||
|Ручка | |||
|200,00 | |||
|- | |||
|Тетрадь | |||
|100,00 | |||
|- | |||
|} | |||
</div> | |||
Текущая версия от 05:31, 24 июля 2024
Навигация
- Вычисления над переменными
- ЕСЛИ
- ИНАЧЕ
- ИНАЧЕЕСЛИ
- ДЛЯКАЖДОГО
- ТАБЛИЦА
- ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками
Переменные хранят в себе какое-то значение, например, число, строку или другой тип данных. Переменные используются в:
- Названии задачи (в шаблоне задач или при создании задачи)
- Описании задачи (в шаблоне задач или при создании задачи)
- Шаблонах писем
- Действиях сценариев, кнопок, входящих вебхуков, правилах для задач по почте:
- Послать HTTP-запрос
- Отправить SMS
- Написать в WhatsApp
- Написать в Instagram
- Изменениях задач массовыми действиями, сценариями, кнопками, входящими вебхуками, правилами для задач по почте:
- Изменить название
- Изменить описание
- Добавить комментарий
- Установить значение поля (для полей типа «Текст»)
Для того, чтобы добавить переменную в текст, например в описание задачи, перейдите по ссылке «различные переменные» (1), сформируйте переменную и добавьте её в текст нужного поля шаблона задачи (2):
Вычисления над переменными
Иногда простой вставки значения переменной в текст бывает недостаточно, а вам необходимо предварительно произвести вычисления над значениями в переменных или обработать полученную в ней строку. Для таких действий используйте следующий синтаксис:
%%%ТЕКСТ ФОРМУЛЫ%%%
Примеры
Важно
- Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter.
- Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
- Если результат формулы необходимо выделить жирным, то применяйте форматирование сразу ко всей формуле вместе с процентами.
ЕСЛИ
Для вставки текста в зависимости от значений переменных (условия) используется следующий синтаксис:
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
Пример
%%$ЕСЛИ({{Задача.Сумма заказа}} > 100000)$%%
VIP-КЛИЕНТ
%%$КОНЕЦБЛОКА$%%
Результат:
ИНАЧЕ
Используется только вместе с ЕСЛИ. Когда условие в ЕСЛИ не будет истинным, отобразится текст из части блока ИНАЧЕ.
%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕ$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
Пример
%%$ЕСЛИ({{Задача.Счет №}}="")$%%
Не заполнено поле [Счет №]
%%$ИНАЧЕ$%%
Нужное поле задачи заполнено! :)
%%$КОНЕЦБЛОКА$%%
Результат:
- Если поле будет не заполнено — выведется сообщение «Не заполнено поле [Счет №]».
- Если поле будет заполнено — выведется сообщение «Нужное поле задачи заполнено! :)».
ИНАЧЕЕСЛИ
Поможет собрать более сложную конструкцию с условиями:
%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕ$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
Обратите внимание
- Последнее ИНАЧЕ — не обязательная часть блока.
Пример
%%$ЕСЛИ({{Задача.Счет №}}="")$%%
Не заполнено поле [Счет №]
%%$ИНАЧЕЕСЛИ({{Задача.УПД №}}="")$%%
Не заполнено поле [УПД №]
%%$ИНАЧЕЕСЛИ({{Задача.Контракт №}}="")$%%
Не заполнено поле [Контракт №]
%%$ИНАЧЕ$%%
Все поля задачи заполнены, ты молодец! :)
%%$КОНЕЦБЛОКА$%%
Результат:
- Если все три поля будут не заполнены — выведется только первое сообщение «Не заполнено поле [Счет №]», остальные будут пропущены.
- Если поля «Счет №» и «УПД №» будут заполнены, а поле «Контракт №» — нет, тогда отобразится соответствующая строка «Не заполнено поле [Контракт №]».
ДЛЯКАЖДОГО
Когда переменная представляет собой список значений, например {{Задача.Подзадачи}} или {{Задача.Исполнитель}}, и вам необходимо вывести информацию для каждого значения — используйте следующий синтаксис:
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
Важно: в этой части конструкции — %%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%% — обязательно указывайте переменную первого уровня, т.е. {{Задача.Подзадачи}} или {{Задача.Исполнитель}} и никак иначе.
Пример
{{Задача.Исполнитель}} - {{Задача.Исполнитель.Должность}}
%%$КОНЕЦБЛОКА$%%
Результат:
Вася Пятёрочкин - Разработчик
Катя Смирнова - СЕО
{{Задача.Подзадачи.Номер}} - {{Задача.Подзадачи.Название}}
%%$КОНЕЦБЛОКА$%%
Результат:
2120 - Предчистовая отделка
2121 - Чистовая отделка
Пример с условием
%%$ДЛЯКАЖДОГО(Переменная;Разделитель;Условие_БЕЗ_Если)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"";{{Задача.Подзадачи."Сумма контракта (у.е.)"}}>1000))$%%
{{Задача.Подзадачи.Контрагент}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}}
%%$КОНЕЦБЛОКА$%%
Результат
Из всего списка контрагентов, отобразаться только те, у кого сумма контракта более 1000:
ООО Восход, 1500
ООО Рассвет, 1700
ООО Заря, 2500
Блок ЕСЛИ внутри блока ДЛЯКАЖДОГО
%%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%%
ТЕКСТ
%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}})$%%%%$ЕСЛИ({{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет")$%%
{{Задача.Подзадачи.Контрагент}}, {{Задача.Подзадачи.Контрагент.ИНН}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}} {{Задача.Подзадачи.Валюта.Символ}}
%%$КОНЕЦБЛОКА$%%%%$КОНЕЦБЛОКА$%%
Результат:
ООО Восход, 5689845987654, 1500 $
ООО Рассвет, 5689845125699, 1700 $
ООО Заря, 5689845589674, 2500 $
ООО Свет, 5689845235689, 500 $
ТАБЛИЦА
Если переменная представляет собой список значений, и вам необходимо вывести информацию для каждого значения в виде таблицы — используйте следующий синтаксис:
ТЕКСТ
%%$КОНЕЦБЛОКА$%%
Пример
Пример показывает, как из добавленной в задачу аналитики вычленить только нужные блоки и отправить эту информацию клиенту в виде таблицы. Таблица добавляется через панель редактора:
Заказ №{{Задача.Номер}}
%%$ТАБЛИЦА({{Аналитика.Услуга}})$%%
{{Аналитика.Услуга.Название услуги}} | {{Аналитика.Услуга.Сумма}} |
%%$КОНЕЦБЛОКА$%%
Общая сумма заказа: %%%ТЕКСТ(СУММА({{Аналитика.Услуга.Сумма}});",.2f")+МНОЖЕСТВЕННОЕЧИСЛО(СУММА({{Аналитика.Услуга.Сумма}}); " рубль"; " рубля"; " рублей")%%%
Результат:
Заказ №2118
Графический дизайн | 1 600,00 |
Программирование | 3 000,00 |
Разработка ТЗ | 300,00 |
Общая сумма заказа: 4 900,00 рублей
Пример с шапкой и итогом
Для того, чтобы вывести в таблице шапку или строку итогов используйте в синтаксисе следующие параметры:
Таблица, нарисованная с помощью редактора ПланФикса
%%$КОНЕЦБЛОКА$%%
Пример:
%%$ТАБЛИЦА({{Аналитика.Услуга}};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трока - Вставить строку сверху:
ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками
При разборе письма или ответа на HTTP-запрос вы получаете несколько строк данных и хотите добавить их в комментарий в виде структурированного текста или таблицы:
- Извлеките данные в инфоблоки:
- Затем воспользуйтесь следующим синтаксисом:
%%$ДЛЯКАЖДОГО({{Инфоблок.!строка}};Разделитель)$%%
{{Инфоблок.!строка.Имя инфоблока}}
%%$КОНЕЦБЛОКА$%%
%%$ТАБЛИЦА({{Инфоблок.!строка}})$%%
{{Инфоблок.!строка.Имя инфоблока}}
%%$КОНЕЦБЛОКА$%%
Пример
Извлечём данные в инфоблоки «Товар» и «Цена» и добавим их в таблицу:
%%$ТАБЛИЦА({{Инфоблок.!строка}})$%%
{{Инфоблок.!строка.Товар}} | {{Инфоблок.!строка.Цена}} |
%%$КОНЕЦБЛОКА$%%
Результат:
Карандаш | 150,00 |
Ручка | 200,00 |
Тетрадь | 100,00 |