Змінні в тексті: відмінності між версіями

Матеріал з Planfix
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
 
Рядок 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>


<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 і TABLE з інфоблоками|FOREACH і TABLE з інфоблоками]]
*[[#FOREACH and TABLE with infoblocks|FOREACH та TABLE з інфоблоками]]
 


Змінні зберігають у собі яке-небудь значення, наприклад, число, рядок або інший тип даних. Змінні використовуються в:
Змінні зберігають деяке значення, наприклад число, рядок або інший тип даних. Змінні використовуються в:
*Назві завдання (у шаблоні завдання або при створенні завдання)
*Назві завдання (у шаблоні завдання або при створенні завдання)
*Описі завдання (у шаблоні завдання або при створенні завдання)
*Описі завдання (у шаблоні завдання або при створенні завдання)
*Шаблонах листів
*Шаблонах електронної пошти
*Діях сценаріїв, кнопок, вхідних вебхуків, правилах для завдань поштою:
*Діях сценаріїв, кнопках, вхідних вебхуках, правилах пошти для завдань:
**Відправити HTTP-запит
**Send HTTP request
**Надіслати SMS
**Send SMS
**Написати в WhatsApp
**Write to WhatsApp
**Написати в Instagram
**Write to Instagram
*Змінах завдань масовими діями, сценаріями, кнопками, вхідними вебхуками, правилами для завдань поштою:
*Масових діях, сценаріях, кнопках, вхідних вебхуках, правилах пошти для завдань:
**Змінити назву
**Change name
**Змінити опис
**Change description
**Додати коментар
**Add comment
**Встановити значення поля (для полів типу «Текст»)
**Set field value (для полів типу "Text")
 
Щоб додати змінну в текст, наприклад, в опис завдання, перейдіть за посиланням «різні змінні» (1), сформуйте змінну і додайте її в текст потрібного поля шаблону завдання (2):
 
https://p.pfx.so/pf/sR/bHwxQU.png
 


== '''Обчислення над змінними''' ==
Іноді простого вставлення значення змінної в текст буває недостатньо, а вам необхідно перед тим зробити обчислення над значеннями в змінних або обробити отриманий у ній рядок. Для таких дій використовуйте наступний синтаксис:


  %%%'''ТЕКСТ ФОРМУЛИ'''%%%
Щоб додати змінну в текст, наприклад, в опис завдання, натисніть на посилання «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>Ціна зі знижкою: %%%{{Task.Ціна}}*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>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>Роботи будуть закінчені через %%%DATEDIF(NOW(); {{Task.Дата закінчення робіт}}; "д")%%% %%%PLURAL(DATEDIF(NOW(); {{Task.Дата закінчення робіт}}; "д");"день"; "дня"; "днів")%%%</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.
*Текст формули повинен бути записаний в одному рядку і не може бути розбитий. Іншими словами, формулу не можна перенести в наступний рядок клавішею 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">Логічна формула</span><span style="color:green">)</span>$%%<br><span style="color:red">'''ТЕКСТ'''</span><br>%%$<span style="color:green">ENDBLOCK</span>$%%
 
 
'''Конструкцію необхідно додавати одним рядком без пропусків і переносів''':
 
%%$IF(Логічна формула)$%%ТЕКСТ%%$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;">%%$<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;"><nowiki>%%$IF({{Task.Сума замовлення}} > 100000)$%%VIP-КЛІЄНТ%%$ENDBLOCK$%%</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;">
%%$IF(<nowiki>{{Task.Order Amount}}</nowiki> > 100000)$%%<br>
VIP CUSTOMER<br>
%%$ENDBLOCK$%%




'''Результат''':
'''Результат''':


VIP-КЛІЄНТ</div>
VIP CUSTOMER</div>
 


== '''ELSE''' ==
== '''ELSE''' ==
Використовується тільки разом з IF. Коли умова в IF не буде істинною, відобразиться текст з частини блоку 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>)$%%<br>  
%%$<span style="color:green">IF</span>(<span style="color:blue">Logical formula</span>)$%%<br>
<span style="color:red">ТЕКСТ</span><br>
<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><br>  
<span style="color:red">TEXT</span><br>
%%$<span style="color:green">ENDBLOCK</span>$%%
%%$<span style="color:green">ENDBLOCK</span>$%%
'''Конструкцію необхідно додавати одним рядком без пропусків і переносів''':
%%$IF(Логічна формула)$%%ТЕКСТ%%$ ELSE$%%ТЕКСТ%%$ENDBLOCK$%%
</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.Номер рахунку}}=""</nowiki></span>)$%%<br>   
%%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task. Invoice №}}=""</nowiki></span>)$%%<br>   
<span style="color:red">Не заповнено поле [Номер рахунку]</span><br>  
<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><br>  
<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>)$%%<br>  
%%$<span style="color:green">IF</span>(<span style="color:blue">Logical formula</span>)$%%<br>
<span style="color:red">ТЕКСТ</span><br>  
<span style="color:red">TEXT</span><br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue">Логічна формула</span>)$%%<br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue">Logical formula</span>)$%%<br>
<span style="color:red">ТЕКСТ</span><br>  
<span style="color:red">TEXT</span><br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue">Логічна формула</span>)$%%<br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue">Logical formula</span>)$%%<br>
<span style="color:red">ТЕКСТ</span><br>  
<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><br>  
<span style="color:red">TEXT</span><br>
%%$<span style="color:green">ENDBLOCK</span>$%%
%%$<span style="color:green">ENDBLOCK</span>$%%




'''Зверніть увагу'''<br>
'''Примітка'''<br>
*Останнє <span style="color:#ef18c7">ELSEIF</span> — не обов'язкова частина блоку.  
*Останній блок <span style="color:#ef18c7">ELSE</span> є необов'язковою частиною блоку.
*Конструкцію необхідно додавати одним рядком без пропусків і переносів:
</div>
:%%$IF(Логічна формула)$%%ТЕКСТ%%$ELSEIF(Логічна формула)$%%ТЕКСТ%%$ELSEIF(Логічна формула)$%%ТЕКСТ%%$ ELSE$%%ТЕКСТ%%$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;">
<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.Номер рахунку}}=""</nowiki></span>)$%%<br>
%%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task.Invoice Number}}=""</nowiki></span>)$%%<br>
<span style="color:red">Не заповнено поле [Номер рахунку]</span><br>  
<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.Номер УПД}}=""</nowiki></span>)$%%<br>  
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.UPD Number}}=""</nowiki></span>)$%%<br>
<span style="color:red">Не заповнено поле [Номер УПД]</span><br>  
<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.Номер контракту}}=""</nowiki></span>)$%%<br>  
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.Contract Number}}=""</nowiki></span>)$%%<br>
<span style="color:red">Не заповнено поле [Номер контракту]</span><br>  
<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><br>  
<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", решта пропуститься.
*Якщо поля «Номер рахунку» і «Номер УПД» будуть заповнені, а поле «Номер контракту» — ні, тоді відобразиться відповідний рядок «Не заповнено поле [Номер контракту]».</div>
*Якщо поля "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>, і вам необхідно вивести інформацію для кожного значення використовуйте наступний синтаксис:
Коли змінна представляє список значень, наприклад <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;">Змінна</span>;<span style="color:blue;">Роздільник</span>)</span>$%%<br>'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%
 
 
'''Важливо''': в цій частині конструкції — %%$<span style="color:green;">FOREACH(<span style="color:blue;">Змінна</span>;<span style="color:blue;">Роздільник</span>)</span>$%% — обов'язково вказуйте змінну першого рівня, тобто <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(Змінна;Роздільник)$%%ТЕКСТ%%$ENDBLOCK$%%</div>




'''Важливо''': у цій частині виразу — %%$<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$%%




'''Результат''':  
'''Результат''':


Анастасія Приходько - Дизайнер<br>Вася П'ятірочкін - Розробник<br>Катя Смирнова - СЕО</div>
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 - Чернетка<br>2120 - Попередня обробка<br>2121 - Остаточна обробка</div>
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>;<span style="color:blue;">Роздільник</span>;<span style="color:blue;">Умова_БЕЗ_Якщо</span>)</span>$%%<br>&nbsp;&nbsp;'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%
%%$<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$%%
 


'''Результат'''


%%$FOREACH(<nowiki>{{Task.Subtasks}}</nowiki>;"")$%%%%$IF(<nowiki>{{Task.Subtasks.Status}}</nowiki>="ТКП додано в розрахунок")$%%<br>
З усього списку контрагентів будуть показані тільки ті, у яких сума контракту більше 1000:
<nowiki>{{Task.Subtasks.Counterparty}}, сума контракту {{Task.Subtasks."Сума контракту (од. вим.)"}}</nowiki><br>
%%$ENDBLOCK$%%%%$ENDBLOCK$%%


LLC Sunrise, 1500<br>


'''Результат'''
LLC Sunset, 1700<br>


Зі всього списку контрагентів, відобразити лише тих, у кого сума контракту більше 1000:
LLC Dawn, 2500<br>


ТОВ Восход, 1500<br>
ТОВ Рассвет, 1700<br>
ТОВ Заря, 2500<br>
</div>
</div>


 
=== ELSE всередині FOREACH ===
=== Блок IF всередині блоку 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>;<span style="color:blue;">Роздільник</span>)</span>$%%<br>&nbsp;&nbsp;'''<span style="color:red;">ТЕКСТ</span>'''<br>&nbsp;&nbsp;%%$<span style="color:green;">IF(</span><span style="color:blue;">Логічна формула</span><span style="color:green;">)</span>$%%<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:red;">ТЕКСТ</span><br>&nbsp;&nbsp;%%$<span style="color:green;">ENDBLOCK</span>$%%<br>&nbsp;&nbsp;'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%
%%$<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>="ТКП додано в розрахунок")$%%<br>
%%$FOREACH(<nowiki>{{Task.Subtasks}}</nowiki>)$%%%%$IF(<nowiki>{{Task.Subtasks.Status}}</nowiki>="TKP added to calculation")$%%<br>
<nowiki>{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.Name}}, сума контракту {{Task.Subtasks."Сума контракту (од. вим.)"}}</nowiki><br>
<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:
'''Результат''':
'''Результат''':


ТОВ Восход, 5689845987654, 1500 од.<br>
LLC Sunrise, 5689845987654, 1500 $<br>
ТОВ Рассвет, 5689845125699, 1700 од.<br>
LLC Sunset, 5689845125699, 1700 $<br>
ТОВ Заря, 5689845589674, 2500 од.<br>
LLC Dawn, 5689845589674, 2500 $<br>
ТОВ Свет, 5689845235689, 500 од.<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;">Змінна</span>)</span>$%%<br>'''<span style="color:red;">ТЕКСТ</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;">%%$<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;">
Замовлення №<nowiki>{{Task.Number}}</nowiki>
Order №<nowiki>{{Task.Number}}</nowiki>


<nowiki>%%$TABLE({{Data tag.Послуга}})$%%</nowiki>
<nowiki>%%$TABLE({{Data tag.Service}})$%%</nowiki>
{| class="wikitable"
{| class="wikitable"
|<nowiki>{{Data tag.Послуга.Назва послуги}}</nowiki>
|<nowiki>{{Data tag.Service.Service Name}}</nowiki>
|<nowiki>{{Data tag.Послуга.Сума}}</nowiki>
|<nowiki>{{Data tag.Service.Amount}}</nowiki>
|}
|}
%%$ENDBLOCK$%%
%%$ENDBLOCK$%%


Загальна сума замовлення:
Total order amount:
<nowiki>%%%ТЕКСТ(SUM({{Data tag.Послуга.Сума}});",.2f")+PLURAL(SUM({{Data tag.Послуга.Сума}}); " гривня"; " гривні"; " гривень")%%%</nowiki>
<nowiki>%%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%</nowiki>




'''Результат''':
'''Результат:'''


Замовлення №2118
Order №2118
{| class="wikitable"
{| class="wikitable"
|Графічний дизайн
|Graphic design
|1 600,00
|1 600.00
|-
|-
|Програмування
|Programming
|3 000,00
|3 000.00
|-
|-
|Розробка ТЗ
|Development of TA
|300,00
|300.00
|-
|-
|}
|}
Загальна сума замовлення: 4 900,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(Змінна;<span style="color:red;">0</span>;<span style="color:red;">0</span>)$%%<br>Таблиця, намальована за допомогою редактора ПланФікса<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;">
<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.Послуга}}</nowiki>;<span style="color:red;">1</span>;<span style="color:red;">1</span>)$%%<br>
'''Приклад:'''
%%$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>
|<nowiki>{{Data tag.Service.Record Number}}</nowiki>
|<nowiki>{{Data tag.Послуга.Назва послуги}}</nowiki>
|<nowiki>{{Data tag.Service.Service Name}}</nowiki>
|<nowiki>{{Data tag.Послуга.Сума}}</nowiki>
|<nowiki>{{Data tag.Service.Amount}}</nowiki>
|-
|-
|colspan="2"|Підсумок
|colspan="2"|Total
|%%%SUM(<nowiki>{{Data tag.Послуга.Сума}}</nowiki>)%%%
|%%%SUM(<nowiki>{{Data tag.Service.Amount}}</nowiki>)%%%
|-
|-
|}
|}
Рядок 281: Рядок 256:


{| class="wikitable"
{| class="wikitable"
!
! #
! Назва
! Name
! Вартість
! Price
|-
|-
|1
|1
|Розробка ТЗ
|Development of TA
|1 000,00
|1 000.00
|-
|-
|2
|2
|Програмування
|Programming
|3 705,00
|3 705.00
|-
|-
|3
|3
|Графічний дизайн
|Graphic design
|1 035,00
|1 035.00
|-
|-
|4
|4
|Тестування
|Testing
|690,00
|690.00
|-
|-
|colspan="2"|Підсумок
|colspan="2"|Total
|6430
|6430
|}
|}
</div>
</div>


Цифри, виділені <span style="color:red;"> червоним кольором</span>, показують, скільки рядків на початку і в кінці таблиці використовувати для заголовка і підсумків.
Цифри, виділені червоним, показують, скільки рядків використовувати у заголовку та підсумках.


Наприклад, числа (<span style="color:red;">1</span>;<span style="color:red;">1</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>).
 
Для того, щоб використати два рядки у заголовку таблиці, вкажіть це так — (<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.Послуга}}</nowiki>;<span style="color:red;">2</span>;<span style="color:red;">1</span>)$%%<br>
{| class="wikitable"
{| class="wikitable"
!colspan="3"|Набір послуг
!colspan="3"|Set of services
|-
|-
!
! #
! Назва
! Name
! Вартість
! Price
|-
|-
|<nowiki>{{Data tag.Послуга.Порядковий номер запису}}</nowiki>
|<nowiki>{{Data tag.Service.Record Number}}</nowiki>
|<nowiki>{{Data tag.Послуга.Назва послуги}}</nowiki>
|<nowiki>{{Data tag.Service.Service Name}}</nowiki>
|<nowiki>{{Data tag.Послуга.Сума}}</nowiki>
|<nowiki>{{Data tag.Service.Amount}}</nowiki>
|-
|-
|colspan="2"|Підсумок
|colspan="2"|Total
|%%%Сума(<nowiki>{{Data tag.Услуга.Сумма}}</nowiki>)%%%
|%%%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,00
|1 000.00
|-
|-
|2
|2
|Програмування
|Programming
|3 705,00
|3 705.00
|-
|-
|3
|3
|Графічний дизайн
|Graphic design
|1 035,00
|1 035.00
|-
|-
|4
|4
|Тестування
|Testing
|690,00
|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;">Змінна;0;0;Умова_БЕЗ_якщо_якщо</span><span style="color:green;">)</span>$%%<br>
%%$<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><br>
 
%%$<span style="color:green;">ENDBLOCK</span>$%%


%%$TABLE(<nowiki>{{Task.Subtasks}}</nowiki>;1;0;<nowiki>{{Task.Subtasks.Status}}="ТКП додано в розрахунок"</nowiki>)$%%<br>
%%$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>
|<nowiki>{{Task.Subtasks.Counterparty.TIN}}</nowiki>
|<nowiki>{{Task.Subtasks."Сума контракту (у.о.)"}}{{Task.Subtasks.Валюта.Символ}}</nowiki>
|<nowiki>{{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}}</nowiki>
|-
|-
|}
|}
Рядок 385: Рядок 358:




'''Результат:'''
'''Результат''':


{| class="wikitable"
{| class="wikitable"
! Контрагент
! Counterparty
! ЄДРПОУ
! TIN
! Сума контракту
! Contract amount
|-
|-
|ТОВ Восход|5689845987654
|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>


Щоб додати в таблицю заголовок, клацніть на неї правою кнопкою миші і виберіть '''Рядок''' - '''Вставити рядок зверху:'''


https://p.pfx.so/pf/3R/TVTmXD.png
Щоб додати заголовок до таблиці, клацніть по ній правою кнопкою миші і виберіть '''Row''' - '''Insert Row Above''':


https://s.pfx.so/pf/WJ/Pvy4PR.jpg


== Важливо ==
== '''FOREACH та TABLE з інфоблоками''' ==
В TABLE на даний момент не підтримується вкладеність конструкцій, отже блок IF всередині TABLE не працюватиме. Тимчасове рішення — використовувати блок TABLE з функцією IF, тобто замість блоку  «%%'''$'''IF» використовувати функцію «%%%IF».
Коли ви парсите електронний лист або відповідаєте на HTTP-запит, отримуєте кілька рядків даних і хочете додати їх у вигляді структурованого тексту або таблиці:
 
 
== '''FOREACH і TABLE з інфоблоками''' ==
 
 
При розгляді листа або відповіді на HTTP-запит ви отримуєте кілька рядків даних і бажаєте додати їх до коментаря у вигляді структурованого тексту або таблиці:
*Витягніть дані в інфоблоки:
*Витягніть дані в інфоблоки:
**[[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.!row}}</nowiki></span>;<span style="color:blue;">Роздільник</span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Infoblock.!row.Ім'я інфоблоку}}</nowiki></span><br>%%$<span style="color:green;">ENDBLOCK</span>$%%
%%$<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.!row}}</nowiki></span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Infoblock.!row.Ім'я інфоблоку}}</nowiki></span><br>%%$<span style="color:green;">ENDBLOCK</span>$%%
%%$<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.!row}}</nowiki>)$%%
%%$TABLE(<nowiki>{{Infoblock.!line}}</nowiki>)$%%
{| class="wikitable"
{| class="wikitable"
|<nowiki>{{Infoblock.!row.Товар}}</nowiki>
|<nowiki>{{Infoblock.!string.Product}}</nowiki>
|<nowiki>{{Infoblock.!row.Ціна}}</nowiki>
|<nowiki>{{Infoblock.!string.Price}}</nowiki>
|}
|}
%%$ENDBLOCK$%%
%%$ENDBLOCK$%%




'''Результат:'''
'''Результат''':
{| class="wikitable"
{| class="wikitable"
|Олівець
|Pencil
|150,00
|1,00
|-
|-
|Ручка
|Pen
|200,00
|2,00
|-
|-
|Зошит
|Notebook
|100,00
|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):

vBmUi1.jpg

Обчислення зі змінними

Іноді буває недостатньо просто вставити значення змінної в текст — потрібно ще й виконати обчислення зі значеннями змінних або обробити отриманий рядок. Для таких дій використовується наступний синтаксис:

%%%FORMULA TEXT%%%

Приклади

Discounted price: %%%{{Task.Price}}*0.8%%%
Work will be completed in %%%DATEDIF(NOW(); {{Task.Completion Date}}; "d")%%% %%%MULTIPLE(DATEDIF(NOW(); {{Task.Completion Date}}; "d");"day"; "days")%%%

Важливо

  • Текст формули повинен бути записаний в одному рядку і не може бути розбитий. Іншими словами, формулу не можна перенести в наступний рядок клавішею Enter.
  • Змінні у формулі не можна форматувати (наприклад, зробити напівжирним або курсивом).
  • Якщо потрібно виділити результат формули напівжирним, застосуйте форматування до всієї формули разом із результатом.

IF

Щоб вставляти текст залежно від значень змінних (умов), використовуйте наступний синтаксис:

%%$IF(Logical formula)$%%
TEXT
%%$ENDBLOCK$%%

Приклад

%%$IF({{Task.Order Amount}} > 100000)$%%
VIP CUSTOMER
%%$ENDBLOCK$%%


Результат:

VIP CUSTOMER

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}}, і потрібно відобразити інформацію для кожного значення, використовуйте наступний синтаксис:

%%$FOREACH(Variable;Delimiter)$%%
TEXT
%%$ENDBLOCK$%%


Важливо: у цій частині виразу — %%$FOREACH(Variable;Delimiter)$%% — обов'язково вказуйте змінну першого рівня, тобто {{Task.Subtasks}} або {{Task.Assignee}}, і нічого більше.

Приклад

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


Результат:

linda Martinez - Designer
Jamse Davis - Developer
Mary Brown - CEO
%%$FOREACH({{Task.Subtasks}};"<br>")$%%{{Task.Subtasks.Number}} - {{Task.Subtasks.Name}}%%$ENDBLOCK$%%


Результат:

2119 - Rough finish
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

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

%%$TABLE(Variable)$%%
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

Приклад із заголовком та підсумком

Щоб додати заголовок або рядок підсумків у таблицю, використовуйте такі параметри в синтаксисі:

%%$TABLE(Variable;0;0)$%%
Таблиця намальована за допомогою редактора 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:

Pvy4PR.jpg

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


Перейти