Змінні в тексті: відмінності між версіями
Aliona (обговорення | внесок) Немає опису редагування |
Немає опису редагування |
||
| (Не показана 1 проміжна версія ще одного користувача) | |||
| Рядок 2: | Рядок 2: | ||
|title=Змінні в тексті | |title=Змінні в тексті | ||
|titlemode=append | |titlemode=append | ||
|keywords= | |keywords=planfix, variables, task template, document template, using variables, variables in text, text with variables, for each, foreach, if, else, elseif, table | ||
|description=Використання змінних | |description=Використання змінних у тексті | ||
}} | }} | ||
<div style="background:#ffbaba;padding:10px;border:1px solid #ff9b9b;">Ця довідкова стаття не стосується шаблонів документів. Читайте, як використовувати змінні в шаблонах документів [[Змінні в шаблонах документів|тут]].</div> | |||
== Навігація == | == Навігація == | ||
*[[# | *[[#Calculations with variables|Обчислення зі змінними]] | ||
*[[#IF|IF]] | *[[#IF|IF]] | ||
*[[#ELSE |ELSE]] | *[[#ELSE|ELSE]] | ||
*[[#ELSEIF|ELSEIF]] | *[[#ELSEIF|ELSEIF]] | ||
*[[#FOREACH|FOREACH]] | *[[#FOREACH|FOREACH]] | ||
*[[#TABLE|TABLE]] | *[[#TABLE|TABLE]] | ||
*[[#FOREACH | *[[#FOREACH and TABLE with infoblocks|FOREACH та TABLE з інфоблоками]] | ||
Змінні зберігають | Змінні зберігають деяке значення, наприклад число, рядок або інший тип даних. Змінні використовуються в: | ||
*Назві завдання (у шаблоні завдання або при створенні завдання) | *Назві завдання (у шаблоні завдання або при створенні завдання) | ||
*Описі завдання (у шаблоні завдання або при створенні завдання) | *Описі завдання (у шаблоні завдання або при створенні завдання) | ||
*Шаблонах | *Шаблонах електронної пошти | ||
*Діях сценаріїв, | *Діях сценаріїв, кнопках, вхідних вебхуках, правилах пошти для завдань: | ||
** | **Send HTTP request | ||
** | **Send SMS | ||
** | **Write to WhatsApp | ||
** | **Write to Instagram | ||
* | *Масових діях, сценаріях, кнопках, вхідних вебхуках, правилах пошти для завдань: | ||
** | **Change name | ||
** | **Change description | ||
** | **Add comment | ||
** | **Set field value (для полів типу "Text") | ||
Щоб додати змінну в текст, наприклад, в опис завдання, натисніть на посилання «different variables» (1), створіть змінну і додайте її в текст потрібного поля в шаблоні завдання (2): | |||
https://s.pfx.so/pf/FX/vBmUi1.jpg | |||
== '''Обчислення зі змінними''' == | |||
Іноді буває недостатньо просто вставити значення змінної в текст — потрібно ще й виконати обчислення зі значеннями змінних або обробити отриманий рядок. Для таких дій використовується наступний синтаксис: | |||
%%%'''FORMULA TEXT'''%%% | |||
=== Приклади === | === Приклади === | ||
<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>Discounted price: %%%{{Task.Price}}*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>Work will be completed in %%%DATEDIF(NOW(); {{Task.Completion Date}}; "d")%%% %%%MULTIPLE(DATEDIF(NOW(); {{Task.Completion Date}}; "d");"day"; "days")%%%</nowiki></div> | |||
=== Важливо === | === Важливо === | ||
*Текст формули | *Текст формули повинен бути записаний в одному рядку і не може бути розбитий. Іншими словами, формулу не можна перенести в наступний рядок клавішею Enter. | ||
* | *Змінні у формулі не можна форматувати (наприклад, зробити напівжирним або курсивом). | ||
*Якщо результат формули | *Якщо потрібно виділити результат формули напівжирним, застосуйте форматування до всієї формули разом із результатом. | ||
== '''IF''' == | |||
Щоб вставляти текст залежно від значень змінних (умов), використовуйте наступний синтаксис: | |||
== '''IF''' == | |||
<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">IF(</span><span style="color:blue">Logical formula</span><span style="color:green">)</span>$%%<br><span style="color:red">'''TEXT'''</span><br>%%$<span style="color:green">ENDBLOCK</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;"> | ||
%%$IF(<nowiki>{{Task.Order Amount}}</nowiki> > 100000)$%%<br> | |||
VIP CUSTOMER<br> | |||
%%$ENDBLOCK$%% | |||
'''Результат''': | '''Результат''': | ||
VIP | VIP CUSTOMER</div> | ||
== '''ELSE''' == | == '''ELSE''' == | ||
'''ELSE''' використовується тільки разом з IF. Коли умова в IF не виконується, відображається текст з частини ELSE блоку. | |||
<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">IF</span>(<span style="color:blue"> | %%$<span style="color:green">IF</span>(<span style="color:blue">Logical formula</span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">TEXT</span><br> | ||
%%$<span style="color:#ef18c7">ELSE</span>$%%<br> | %%$<span style="color:#ef18c7">ELSE</span>$%%<br> | ||
<span style="color:red"> | <span style="color:red">TEXT</span><br> | ||
%%$<span style="color:green">ENDBLOCK</span>$%% | %%$<span style="color:green">ENDBLOCK</span>$%% | ||
</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;"> | <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">IF</span>(<span style="color:blue"><nowiki>{{Task. | %%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task. Invoice №}}=""</nowiki></span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">The field [Invoice №] is not filled in</span><br> | ||
%%$<span style="color:#ef18c7">ELSE</span>$%%<br> | %%$<span style="color:#ef18c7">ELSE</span>$%%<br> | ||
<span style="color:red"> | <span style="color:red">The required task field is filled in! :)</span><br> | ||
%%$<span style="color:green">ENDBLOCK</span>$%% | %%$<span style="color:green">ENDBLOCK</span>$%% | ||
| Рядок 100: | Рядок 84: | ||
'''Результат''': | '''Результат''': | ||
*Якщо поле буде | *Якщо поле не заповнене, буде відображено повідомлення "The field [Invoice №] is not filled in". | ||
*Якщо поле буде | *Якщо поле заповнене, буде відображено повідомлення "The required task field is filled in! :)". | ||
</div> | </div> | ||
== '''ELSEIF''' == | == '''ELSEIF''' == | ||
Допомагає створити більш складний вираз з умовами: | |||
<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">IF</span>(<span style="color:blue"> | %%$<span style="color:green">IF</span>(<span style="color:blue">Logical formula</span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">TEXT</span><br> | ||
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"> | %%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue">Logical formula</span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">TEXT</span><br> | ||
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"> | %%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue">Logical formula</span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">TEXT</span><br> | ||
%%$<span style="color:#ef18c7">ELSE</span>$%%<br> | %%$<span style="color:#ef18c7">ELSE</span>$%%<br> | ||
<span style="color:red"> | <span style="color:red">TEXT</span><br> | ||
%%$<span style="color:green">ENDBLOCK</span>$%% | %%$<span style="color:green">ENDBLOCK</span>$%% | ||
''' | '''Примітка'''<br> | ||
* | *Останній блок <span style="color:#ef18c7">ELSE</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">IF</span>(<span style="color:blue"><nowiki>{{Task. | %%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task.Invoice Number}}=""</nowiki></span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">The field [Invoice Number] is not filled in</span><br> | ||
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task. | %%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.UPD Number}}=""</nowiki></span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">The field [UPD Number] is not filled in</span><br> | ||
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task. | %%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.Contract Number}}=""</nowiki></span>)$%%<br> | ||
<span style="color:red"> | <span style="color:red">The field [Contract Number] is not filled in</span><br> | ||
%%$<span style="color:#ef18c7">ELSE</span>$%%<br> | %%$<span style="color:#ef18c7">ELSE</span>$%%<br> | ||
<span style="color:red"> | <span style="color:red">All task fields are filled in, you're awesome! :)</span><br> | ||
%%$<span style="color:green">ENDBLOCK</span>$%% | %%$<span style="color:green">ENDBLOCK</span>$%% | ||
| Рядок 140: | Рядок 121: | ||
'''Результат''': | '''Результат''': | ||
*Якщо | *Якщо усі три поля не заповнені, буде відображено тільки перше повідомлення "The field [Invoice Number] is not filled in", решта пропуститься. | ||
*Якщо поля | *Якщо поля "Invoice Number" і "UPD Number" заповнені, але поле "Contract Number" не заповнене, тоді буде показано відповідне повідомлення "The field [Contract Number] is not filled in".</div> | ||
== '''FOREACH''' == | == '''FOREACH''' == | ||
Коли змінна представляє | Коли змінна представляє список значень, наприклад <nowiki>{{Task.Subtasks}}</nowiki> або <nowiki>{{Task.Assignee}}</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;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%%<br>'''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%% | |||
%%$FOREACH( | |||
'''Важливо''': у цій частині виразу — %%$<span style="color:green;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%% — обов'язково вказуйте змінну першого рівня, тобто <nowiki>{{Task.Subtasks}}</nowiki> або <nowiki>{{Task.Assignee}}</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>%%$FOREACH({{Task.Assignee}};"<br>")$%%</nowiki><nowiki>{{Task.Assignee}} - {{Task.Assignee.Position}}</nowiki>%%$ENDBLOCK$%% | <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>%%$FOREACH({{Task.Assignee}};"<br>")$%%</nowiki><nowiki>{{Task.Assignee}} - {{Task.Assignee.Position}}</nowiki>%%$ENDBLOCK$%% | ||
'''Результат''': | '''Результат''': | ||
linda Martinez - Designer<br>Jamse Davis - Developer<br>Mary Brown - CEO</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>%%$FOREACH({{Task.Subtasks}};"<br>")$%%</nowiki><nowiki>{{Task.Subtasks.Number}} - {{Task.Subtasks.Name}}</nowiki>%%$ENDBLOCK$%% | <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>%%$FOREACH({{Task.Subtasks}};"<br>")$%%</nowiki><nowiki>{{Task.Subtasks.Number}} - {{Task.Subtasks.Name}}</nowiki>%%$ENDBLOCK$%% | ||
| Рядок 170: | Рядок 144: | ||
'''Результат''': | '''Результат''': | ||
2119 - | 2119 - Rough finish<br>2120 - Sub-final finishing<br>2121 - Final touches</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;">FOREACH(<span style="color:blue;"> | %%$<span style="color:green;">FOREACH(<span | ||
style="color:blue;">Variable</span>;<span | |||
style="color:blue;">Delimiter</span>;<span | |||
style="color:blue;">Condition_WITHOUT_If</span>)</span>$%%<br> '''<span style="color:red;">TEXT</span>'''<br>%%$<span | |||
style="color:green;">ENDBLOCK</span>$%% | |||
%%$FOREACH(<nowiki>{{Task.Subtasks}}</nowiki>;"";<nowiki>{{Task.Subtasks."Contract Amount ($)"}}</nowiki>>1000))$%%<br> | |||
<nowiki>{{Task.Subtasks.Counterparty}}, contract amount {{Task.Subtasks."Contract Amount ($)"}}</nowiki><br> | |||
%%$ENDBLOCK$%% | |||
'''Результат''' | |||
З усього списку контрагентів будуть показані тільки ті, у яких сума контракту більше 1000: | |||
LLC Sunrise, 1500<br> | |||
LLC Sunset, 1700<br> | |||
LLC Dawn, 2500<br> | |||
</div> | </div> | ||
=== ELSE всередині FOREACH === | |||
=== | |||
<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;">FOREACH(<span style="color:blue;"> | %%$<span style="color:green;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%%<br> '''<span style="color:red;">TEXT</span>'''<br> %%$<span style="color:green;">IF(</span><span style="color:blue;">Logical formula</span><span style="color:green;">)</span>$%%<br> <span style="color:red;">TEXT</span><br> %%$<span style="color:green;">ENDBLOCK</span>$%%<br> '''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%% | ||
%%$FOREACH(<nowiki>{{Task.Subtasks}}</nowiki>)$%%%%$IF(<nowiki>{{Task.Subtasks.Status}}</nowiki>=" | %%$FOREACH(<nowiki>{{Task.Subtasks}}</nowiki>)$%%%%$IF(<nowiki>{{Task.Subtasks.Status}}</nowiki>="TKP added to calculation")$%%<br> | ||
<nowiki>{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty. | <nowiki>{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.TIN}}, contract amount {{Task.Subtasks."Contract Amount"}} {{Task.Subtasks.Currency.Symbol}}</nowiki><br> | ||
%%$ENDBLOCK$%%%%$ENDBLOCK$%% | %%$ENDBLOCK$%%%%$ENDBLOCK$%% | ||
| Рядок 207: | Рядок 184: | ||
'''Результат''': | '''Результат''': | ||
LLC Sunrise, 5689845987654, 1500 $<br> | |||
LLC Sunset, 5689845125699, 1700 $<br> | |||
LLC Dawn, 5689845589674, 2500 $<br> | |||
LLC Light, 5689845235689, 500 $ | |||
</div> | </div> | ||
== '''TABLE''' == | == '''TABLE''' == | ||
Якщо змінна представляє | Якщо змінна представляє список значень і потрібно показати інформацію для кожного значення у вигляді таблиці, використовуйте наступний синтаксис: | ||
=== Приклад | <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;">TABLE(<span style="color:blue;">Variable</span>)</span>$%%<br>'''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%</div> | ||
Приклад показує, як | == Приклад == | ||
Приклад показує, як витягти тільки потрібні блоки з доданого Аналітичного тегу (Data tag) у завданні і відправити цю інформацію клієнту у вигляді таблиці. Таблицю додають за допомогою редактора Planfix: | |||
<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;"> | ||
Order №<nowiki>{{Task.Number}}</nowiki> | |||
<nowiki>%%$TABLE({{Data tag. | <nowiki>%%$TABLE({{Data tag.Service}})$%%</nowiki> | ||
{| class="wikitable" | {| class="wikitable" | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Service Name}}</nowiki> | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Amount}}</nowiki> | ||
|} | |} | ||
%%$ENDBLOCK$%% | %%$ENDBLOCK$%% | ||
Total order amount: | |||
<nowiki>%%% | <nowiki>%%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%</nowiki> | ||
'''Результат''' | '''Результат:''' | ||
Order №2118 | |||
{| class="wikitable" | {| class="wikitable" | ||
| | |Graphic design | ||
|1 600 | |1 600.00 | ||
|- | |- | ||
| | |Programming | ||
|3 000 | |3 000.00 | ||
|- | |- | ||
| | |Development of TA | ||
|300 | |300.00 | ||
|- | |- | ||
|} | |} | ||
Total order amount: 4 900.00 dollars | |||
</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;">%%$TABLE(Variable;<span style="color:red;">0</span>;<span style="color:red;">0</span>)$%%<br>Таблиця намальована за допомогою редактора Planfix<br>%%$ENDBLOCK$%%</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;">%%$TABLE( | |||
<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;"> | ||
%%$TABLE(<nowiki>{{Data | '''Приклад:''' | ||
%%$TABLE(<nowiki>{{Data Tag.Service}}</nowiki>;<span style="color:red;">1</span>;<span style="color:red;">1</span>)$%%<br> | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! # | ||
! | ! Name | ||
! | ! Price | ||
|- | |- | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Record Number}}</nowiki> | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Service Name}}</nowiki> | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Amount}}</nowiki> | ||
|- | |- | ||
|colspan="2"| | |colspan="2"|Total | ||
|%%%SUM(<nowiki>{{Data tag. | |%%%SUM(<nowiki>{{Data tag.Service.Amount}}</nowiki>)%%% | ||
|- | |- | ||
|} | |} | ||
| Рядок 281: | Рядок 256: | ||
{| class="wikitable" | {| class="wikitable" | ||
! | ! # | ||
! | ! Name | ||
! | ! Price | ||
|- | |- | ||
|1 | |1 | ||
| | |Development of TA | ||
|1 000 | |1 000.00 | ||
|- | |- | ||
|2 | |2 | ||
| | |Programming | ||
|3 705 | |3 705.00 | ||
|- | |- | ||
|3 | |3 | ||
| | |Graphic design | ||
|1 035 | |1 035.00 | ||
|- | |- | ||
|4 | |4 | ||
| | |Testing | ||
|690 | |690.00 | ||
|- | |- | ||
|colspan="2"| | |colspan="2"|Total | ||
|6430 | |6430 | ||
|} | |} | ||
</div> | </div> | ||
Цифри, виділені | Цифри, виділені червоним, показують, скільки рядків використовувати у заголовку та підсумках. | ||
Наприклад, числа (<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;"> | |||
'''Приклад:''' | '''Приклад:''' | ||
%%$TABLE(<nowiki>{{Data tag .Service}}</nowiki>;<span style="color:red;">2</span>;<span style="color:red;">1</span>)$%%<br> | |||
%%$TABLE(<nowiki>{{Data tag. | |||
{| class="wikitable" | {| class="wikitable" | ||
!colspan="3"| | !colspan="3"|Set of services | ||
|- | |- | ||
! | ! # | ||
! | ! Name | ||
! | ! Price | ||
|- | |- | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Record Number}}</nowiki> | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Service Name}}</nowiki> | ||
|<nowiki>{{Data tag. | |<nowiki>{{Data tag.Service.Amount}}</nowiki> | ||
|- | |- | ||
|colspan="2"| | |colspan="2"|Total | ||
|%%% | |%%%SUM(<nowiki>{{Data tag.Service.Amount}}</nowiki>)%%% | ||
|- | |- | ||
|} | |} | ||
%%$ENDBLOCK$%% | %%$ENDBLOCK$%% | ||
'''Результат:''' | '''Результат:''' | ||
{| class="wikitable" | {| class="wikitable" | ||
!colspan="3"| | !colspan="3"|Set of services | ||
|- | |- | ||
! | ! # | ||
! | ! Name | ||
! | ! Price | ||
|- | |- | ||
|1 | |1 | ||
| | |Development of TA | ||
|1 000 | |1 000.00 | ||
|- | |- | ||
|2 | |2 | ||
| | |Programming | ||
|3 705 | |3 705.00 | ||
|- | |- | ||
|3 | |3 | ||
| | |Graphic design | ||
|1 035 | |1 035.00 | ||
|- | |- | ||
|4 | |4 | ||
| | |Testing | ||
|690 | |690.00 | ||
|- | |- | ||
|colspan="2"| | |colspan="2"|Total | ||
|6430 | |6430 | ||
|} | |} | ||
</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;"> | <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;">TABLE(</span><span style="color:blue;"> | %%$<span style="color:green;">TABLE(</span><span style="color:blue;">Variable;0;0;Condition_WITHOUT_If</span><span style="color:green;">)</span>$%%<br><span style="color:red;">Table drawn using the Planfix editor</span><br>%%$<span style="color:green;">ENDBLOCK</span>$%% | ||
<span style="color:red;"> | |||
%%$<span style="color:green;">ENDBLOCK</span>$%% | |||
%%$TABLE(<nowiki>{{Task.Subtasks}}</nowiki>;1;0;<nowiki>{{Task.Subtasks.Status}}=" | %%$TABLE(<nowiki>{{Task.Subtasks}}</nowiki>;1;0;<nowiki>{{Task.Subtasks.Status}}="TKP added to calculation"</nowiki>)$%%<br> | ||
{| class="wikitable" | {| class="wikitable" | ||
! | ! Counterparty | ||
! | ! TIN | ||
! | ! Contract amount | ||
|- | |- | ||
|<nowiki>{{Task.Subtasks.Counterparty}}</nowiki> | |<nowiki>{{Task.Subtasks.Counterparty}}</nowiki> | ||
|<nowiki>{{Task.Subtasks.Counterparty. | |<nowiki>{{Task.Subtasks.Counterparty.TIN}}</nowiki> | ||
|<nowiki>{{Task.Subtasks." | |<nowiki>{{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}}</nowiki> | ||
|- | |- | ||
|} | |} | ||
| Рядок 385: | Рядок 358: | ||
'''Результат | '''Результат''': | ||
{| class="wikitable" | {| class="wikitable" | ||
! | ! Counterparty | ||
! | ! TIN | ||
! | ! Contract amount | ||
|- | |- | ||
| | |LLC Sunrise | ||
|5689845987654 | |||
|1500$ | |1500$ | ||
|- | |- | ||
| | |LLC Sunset | ||
|5689845125699 | |5689845125699 | ||
|1700$ | |1700$ | ||
|- | |- | ||
| | |LLC Dawn | ||
|5689845589674 | |5689845589674 | ||
|2500$ | |2500$ | ||
|- | |- | ||
| | |LLC Light | ||
|5689845235689 | |5689845235689 | ||
|500$ | |500$ | ||
| Рядок 410: | Рядок 384: | ||
</div> | </div> | ||
Щоб додати заголовок до таблиці, клацніть по ній правою кнопкою миші і виберіть '''Row''' - '''Insert Row Above''': | |||
https://s.pfx.so/pf/WJ/Pvy4PR.jpg | |||
== '''FOREACH та TABLE з інфоблоками''' == | |||
Коли ви парсите електронний лист або відповідаєте на HTTP-запит, отримуєте кілька рядків даних і хочете додати їх у вигляді структурованого тексту або таблиці: | |||
== '''FOREACH | |||
*Витягніть дані в інфоблоки: | *Витягніть дані в інфоблоки: | ||
**[[JSONPath |з JSON]] | **[[JSONPath|з JSON]] | ||
**[[Видобуток даних з таблиць в листах |з HTML-таблиці]] | **[[Видобуток даних з таблиць в листах|з 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;"> | <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;">FOREACH(</span><span style="color:blue;"><nowiki>{{Infoblock.! | %%$<span style="color:green;">FOREACH(</span><span style="color:blue;"><nowiki>{{Infoblock.!line}}</nowiki></span>;<span style="color:blue;">Separator</span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Infoblock.!line.Infoblock name}}</nowiki></span><br>%%$<span style="color:green;">ENDBLOCK</span>$%% | ||
%%$<span style="color:green;">TABLE(</span><span style="color:blue;"><nowiki>{{Infoblock.! | %%$<span style="color:green;">TABLE(</span><span style="color:blue;"><nowiki>{{Infoblock.!line}}</nowiki></span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Infoblock.!line.Infoblock name}}</nowiki></span><br>%%$<span style="color:green;">ENDBLOCK</span>$%% | ||
</div> | </div> | ||
=== Приклад === | === Приклад === | ||
Давайте витягнемо дані в інфоблоки "Product" і "Price" та додамо їх у таблицю: | |||
<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;"> | ||
%%$TABLE(<nowiki>{{Infoblock.! | %%$TABLE(<nowiki>{{Infoblock.!line}}</nowiki>)$%% | ||
{| class="wikitable" | {| class="wikitable" | ||
|<nowiki>{{Infoblock.! | |<nowiki>{{Infoblock.!string.Product}}</nowiki> | ||
|<nowiki>{{Infoblock.! | |<nowiki>{{Infoblock.!string.Price}}</nowiki> | ||
|} | |} | ||
%%$ENDBLOCK$%% | %%$ENDBLOCK$%% | ||
'''Результат | '''Результат''': | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |Pencil | ||
| | |1,00 | ||
|- | |- | ||
| | |Pen | ||
| | |2,00 | ||
|- | |- | ||
| | |Notebook | ||
| | |10,00 | ||
|- | |- | ||
|} | |} | ||
Поточна версія на 01:46, 1 грудня 2025
Навігація
Змінні зберігають деяке значення, наприклад число, рядок або інший тип даних. Змінні використовуються в:
- Назві завдання (у шаблоні завдання або при створенні завдання)
- Описі завдання (у шаблоні завдання або при створенні завдання)
- Шаблонах електронної пошти
- Діях сценаріїв, кнопках, вхідних вебхуках, правилах пошти для завдань:
- Send HTTP request
- Send SMS
- Write to WhatsApp
- Write to Instagram
- Масових діях, сценаріях, кнопках, вхідних вебхуках, правилах пошти для завдань:
- Change name
- Change description
- Add comment
- Set field value (для полів типу "Text")
Щоб додати змінну в текст, наприклад, в опис завдання, натисніть на посилання «different variables» (1), створіть змінну і додайте її в текст потрібного поля в шаблоні завдання (2):
Обчислення зі змінними
Іноді буває недостатньо просто вставити значення змінної в текст — потрібно ще й виконати обчислення зі значеннями змінних або обробити отриманий рядок. Для таких дій використовується наступний синтаксис:
%%%FORMULA TEXT%%%
Приклади
Важливо
- Текст формули повинен бути записаний в одному рядку і не може бути розбитий. Іншими словами, формулу не можна перенести в наступний рядок клавішею Enter.
- Змінні у формулі не можна форматувати (наприклад, зробити напівжирним або курсивом).
- Якщо потрібно виділити результат формули напівжирним, застосуйте форматування до всієї формули разом із результатом.
IF
Щоб вставляти текст залежно від значень змінних (умов), використовуйте наступний синтаксис:
TEXT
%%$ENDBLOCK$%%
Приклад
%%$IF({{Task.Order Amount}} > 100000)$%%
VIP CUSTOMER
%%$ENDBLOCK$%%
Результат:
ELSE
ELSE використовується тільки разом з IF. Коли умова в IF не виконується, відображається текст з частини ELSE блоку.
%%$IF(Logical formula)$%%
TEXT
%%$ELSE$%%
TEXT
%%$ENDBLOCK$%%
Приклад
%%$IF({{Task. Invoice №}}="")$%%
The field [Invoice №] is not filled in
%%$ELSE$%%
The required task field is filled in! :)
%%$ENDBLOCK$%%
Результат:
- Якщо поле не заповнене, буде відображено повідомлення "The field [Invoice №] is not filled in".
- Якщо поле заповнене, буде відображено повідомлення "The required task field is filled in! :)".
ELSEIF
Допомагає створити більш складний вираз з умовами:
%%$IF(Logical formula)$%%
TEXT
%%$ELSEIF(Logical formula)$%%
TEXT
%%$ELSEIF(Logical formula)$%%
TEXT
%%$ELSE$%%
TEXT
%%$ENDBLOCK$%%
Примітка
- Останній блок ELSE є необов'язковою частиною блоку.
Приклад
%%$IF({{Task.Invoice Number}}="")$%%
The field [Invoice Number] is not filled in
%%$ELSEIF({{Task.UPD Number}}="")$%%
The field [UPD Number] is not filled in
%%$ELSEIF({{Task.Contract Number}}="")$%%
The field [Contract Number] is not filled in
%%$ELSE$%%
All task fields are filled in, you're awesome! :)
%%$ENDBLOCK$%%
Результат:
- Якщо усі три поля не заповнені, буде відображено тільки перше повідомлення "The field [Invoice Number] is not filled in", решта пропуститься.
- Якщо поля "Invoice Number" і "UPD Number" заповнені, але поле "Contract Number" не заповнене, тоді буде показано відповідне повідомлення "The field [Contract Number] is not filled in".
FOREACH
Коли змінна представляє список значень, наприклад {{Task.Subtasks}} або {{Task.Assignee}}, і потрібно відобразити інформацію для кожного значення, використовуйте наступний синтаксис:
TEXT
%%$ENDBLOCK$%%
Приклад
Результат:
Jamse Davis - Developer
Mary Brown - CEO
Результат:
2120 - Sub-final finishing
2121 - Final touches
Приклад з умовою
%%$FOREACH(Variable;Delimiter;Condition_WITHOUT_If)$%%
TEXT
%%$ENDBLOCK$%%
%%$FOREACH({{Task.Subtasks}};"";{{Task.Subtasks."Contract Amount ($)"}}>1000))$%%
{{Task.Subtasks.Counterparty}}, contract amount {{Task.Subtasks."Contract Amount ($)"}}
%%$ENDBLOCK$%%
Результат
З усього списку контрагентів будуть показані тільки ті, у яких сума контракту більше 1000:
LLC Sunrise, 1500
LLC Sunset, 1700
LLC Dawn, 2500
ELSE всередині FOREACH
%%$FOREACH(Variable;Delimiter)$%%
TEXT
%%$IF(Logical formula)$%%
TEXT
%%$ENDBLOCK$%%
TEXT
%%$ENDBLOCK$%%
%%$FOREACH({{Task.Subtasks}})$%%%%$IF({{Task.Subtasks.Status}}="TKP added to calculation")$%%
{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.TIN}}, contract amount {{Task.Subtasks."Contract Amount"}} {{Task.Subtasks.Currency.Symbol}}
%%$ENDBLOCK$%%%%$ENDBLOCK$%%
Результат:
LLC Sunrise, 5689845987654, 1500 $
LLC Sunset, 5689845125699, 1700 $
LLC Dawn, 5689845589674, 2500 $
LLC Light, 5689845235689, 500 $
TABLE
Якщо змінна представляє список значень і потрібно показати інформацію для кожного значення у вигляді таблиці, використовуйте наступний синтаксис:
TEXT
%%$ENDBLOCK$%%
Приклад
Приклад показує, як витягти тільки потрібні блоки з доданого Аналітичного тегу (Data tag) у завданні і відправити цю інформацію клієнту у вигляді таблиці. Таблицю додають за допомогою редактора Planfix:
Order №{{Task.Number}}
%%$TABLE({{Data tag.Service}})$%%
| {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
%%$ENDBLOCK$%%
Total order amount: %%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%
Результат:
Order №2118
| Graphic design | 1 600.00 |
| Programming | 3 000.00 |
| Development of TA | 300.00 |
Total order amount: 4 900.00 dollars
Приклад із заголовком та підсумком
Щоб додати заголовок або рядок підсумків у таблицю, використовуйте такі параметри в синтаксисі:
Таблиця намальована за допомогою редактора Planfix
%%$ENDBLOCK$%%
Приклад:
%%$TABLE({{Data Tag.Service}};1;1)$%%
| # | Name | Price |
|---|---|---|
| {{Data tag.Service.Record Number}} | {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
| Total | %%%SUM({{Data tag.Service.Amount}})%%% | |
%%$ENDBLOCK$%%
Результат:
| # | Name | Price |
|---|---|---|
| 1 | Development of TA | 1 000.00 |
| 2 | Programming | 3 705.00 |
| 3 | Graphic design | 1 035.00 |
| 4 | Testing | 690.00 |
| Total | 6430 | |
Цифри, виділені червоним, показують, скільки рядків використовувати у заголовку та підсумках.
Наприклад, числа (1;1) у наведеному прикладі означають, що один рядок на початку буде використано для заголовка таблиці, а один рядок в кінці — для підсумків.
Щоб використовувати два рядки в заголовку таблиці, вкажіть так — (2;1).
Приклад:
%%$TABLE({{Data tag .Service}};2;1)$%%
| Set of services | ||
|---|---|---|
| # | Name | Price |
| {{Data tag.Service.Record Number}} | {{Data tag.Service.Service Name}} | {{Data tag.Service.Amount}} |
| Total | %%%SUM({{Data tag.Service.Amount}})%%% | |
%%$ENDBLOCK$%%
Результат:
| Set of services | ||
|---|---|---|
| # | Name | Price |
| 1 | Development of TA | 1 000.00 |
| 2 | Programming | 3 705.00 |
| 3 | Graphic design | 1 035.00 |
| 4 | Testing | 690.00 |
| Total | 6430 | |
Приклад з умовою
%%$TABLE(Variable;0;0;Condition_WITHOUT_If)$%%
Table drawn using the Planfix editor
%%$ENDBLOCK$%%
%%$TABLE({{Task.Subtasks}};1;0;{{Task.Subtasks.Status}}="TKP added to calculation")$%%
| Counterparty | TIN | Contract amount |
|---|---|---|
| {{Task.Subtasks.Counterparty}} | {{Task.Subtasks.Counterparty.TIN}} | {{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}} |
%%$ENDBLOCK$%%
Результат:
| Counterparty | TIN | Contract amount |
|---|---|---|
| LLC Sunrise | 5689845987654 | 1500$ |
| LLC Sunset | 5689845125699 | 1700$ |
| LLC Dawn | 5689845589674 | 2500$ |
| LLC Light | 5689845235689 | 500$ |
Щоб додати заголовок до таблиці, клацніть по ній правою кнопкою миші і виберіть Row - Insert Row Above:
FOREACH та TABLE з інфоблоками
Коли ви парсите електронний лист або відповідаєте на HTTP-запит, отримуєте кілька рядків даних і хочете додати їх у вигляді структурованого тексту або таблиці:
- Витягніть дані в інфоблоки:
- Потім використайте наступний синтаксис:
%%$FOREACH({{Infoblock.!line}};Separator)$%%
{{Infoblock.!line.Infoblock name}}
%%$ENDBLOCK$%%
%%$TABLE({{Infoblock.!line}})$%%
{{Infoblock.!line.Infoblock name}}
%%$ENDBLOCK$%%
Приклад
Давайте витягнемо дані в інфоблоки "Product" і "Price" та додамо їх у таблицю:
%%$TABLE({{Infoblock.!line}})$%%
| {{Infoblock.!string.Product}} | {{Infoblock.!string.Price}} |
%%$ENDBLOCK$%%
Результат:
| Pencil | 1,00 |
| Pen | 2,00 |
| Notebook | 10,00 |