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

Матеріал з Planfix
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
Рядок 257: Рядок 257:


<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>Таблиця, намальована за д
<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>Таблиця, намальована за д
=== Пример с шапкой и итогом ===
Для того, чтобы вывести в таблице шапку или строку итогов используйте в синтаксисе следующие параметры:
<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>
== Перейти ==
*[[Переменные в шаблонах задач]]
*[[Переменные в шаблонах документов]]

Версія за 15:10, 29 вересня 2023

Ця довідкова стаття не стосується шаблонів документів. Як використовувати змінні в шаблонах документів читайте тут.


Навігація


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

  • Назві завдання (у шаблоні завдання або при створенні завдання)
  • Описі завдання (у шаблоні завдання або при створенні завдання)
  • Шаблонах листів
  • Діях сценаріїв, кнопок, вхідних вебхуків, правилах для завдань поштою:
    • Відправити HTTP-запит
    • Надіслати SMS
    • Написати в WhatsApp
    • Написати в Instagram
  • Змінах завдань масовими діями, сценаріями, кнопками, вхідними вебхуками, правилами для завдань поштою:
    • Змінити назву
    • Змінити опис
    • Додати коментар
    • Встановити значення поля (для полів типу «Текст»)

Щоб додати змінну в текст, наприклад, в опис завдання, перейдіть за посиланням «різні змінні» (1), сформуйте змінну і додайте її в текст потрібного поля шаблону завдання (2):

bHwxQU.png


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

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

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

Приклади

Ціна зі знижкою: %%%{{Завдання.Ціна}}*0.8%%%
Роботи будуть закінчені через %%%DATEDIF(NOW(); {{Завдання.Дата закінчення робіт}}; "д")%%% %%%PLURAL(DATEDIF(NOW(); {{Завдання.Дата закінчення робіт}}; "д");"день"; "дня"; "днів")%%%

Важливо

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


IF

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

%%$IF(Логічна формула)$%%
ТЕКСТ
%%$ENDBLOCK$%%


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

%%$IF(Логічна формула)$%%ТЕКСТ%%$ENDBLOCK$%%

Приклад

%%$IF({{Завдання.Сума замовлення}} > 100000)$%%VIP-КЛІЄНТ%%$ENDBLOCK$%%


Результат:

VIP-КЛІЄНТ


ELSE

Використовується тільки разом з ЯКЩО. Коли умова в ЯКЩО не буде істинною, відобразиться текст з частини блоку ELSE.

%%$IF(Логічна формула)$%%
ТЕКСТ
%%$ELSE$%%
ТЕКСТ
%%$ENDBLOCK$%%


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

%%$IF(Логічна формула)$%%ТЕКСТ%%$ ELSE$%%ТЕКСТ%%$ENDBLOCK$%%

Приклад

%%$IF({{Завдання.Номер рахунку}}="")$%%
Не заповнено поле [Номер рахунку]
%%$ELSE$%%
Потрібне поле завдання заповнено! :)
%%$ENDBLOCK$%%


Результат:

  • Якщо поле буде не заповнено — виведеться повідомлення «Не заповнено поле [Номер рахунку]».
  • Якщо поле буде заповнено — виведеться повідомлення «Потрібне поле завдання заповнено! :)».


ELSEIF

Допоможе зібрати більш складну конструкцію з умовами:

%%$IF(Логічна формула)$%%
ТЕКСТ
%%$ELSEIF(Логічна формула)$%%
ТЕКСТ
%%$ELSEIF(Логічна формула)$%%
ТЕКСТ
%%$ELSE$%%
ТЕКСТ
%%$ENDBLOCK$%%


Зверніть увагу

  • Останнє ІНАКШЕ — не обов'язкова частина блоку.
  • Конструкцію необхідно додавати одним рядком без пропусків і переносів:
%%$IF(Логічна формула)$%%ТЕКСТ%%$ELSEIF(Логічна формула)$%%ТЕКСТ%%$ELSEIF(Логічна формула)$%%ТЕКСТ%%$ ELSE$%%ТЕКСТ%%$ENDBLOCK$%%

Приклад

%%$IF({{Завдання.Номер рахунку}}="")$%%
Не заповнено поле [Номер рахунку]
%%$ELSEIF({{Завдання.Номер УПД}}="")$%%
Не заповнено поле [Номер УПД]
%%$ELSEIF({{Завдання.Номер контракту}}="")$%%
Не заповнено поле [Номер контракту]
%%$ELSE$%%
Всі поля завдання заповнені, ти молодець! :)
%%$ENDBLOCK$%%


Результат:

  • Якщо всі три поля будуть не заповнені — виведеться лише перше повідомлення «Не заповнено поле [Номер рахунку]», інші будуть пропущені.
  • Якщо поля «Номер рахунку» і «Номер УПД» будуть заповнені, а поле «Номер контракту» — ні, тоді відобразиться відповідний рядок «Не заповнено поле [Номер контракту]».


FOREACH

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

%%$FOREACH(Змінна;Роздільник)$%%
ТЕКСТ
%%$ENDBLOCK$%%


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


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

%%$FOREACH(Змінна;Роздільник)$%%ТЕКСТ%%$ENDBLOCK$%%


Приклад

%%$FOREACH({{Завдання.Виконавець}};"<br>")$%%{{Завдання.Виконавець}} - {{Завдання.Виконавець.Посада}}%%$ENDBLOCK$%%


Результат:

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


Результат:

2119 - Чернетка
2120 - Попередня обробка
2121 - Остаточна обробка


Приклад з умовою

Синтаксис:

%%$FOREACH(Змінна;Роздільник;Умова_БЕЗ_Якщо)$%%
  ТЕКСТ
%%$ENDBLOCK$%%


%%$FOREACH({{Завдання.Підзавдання}};"")$%%%%$IF({{Завдання.Підзавдання.Статус}}="ТКП додано в розрахунок")$%%
{{Завдання.Підзавдання.Контрагент}}, сума контракту {{Завдання.Підзавдання."Сума контракту (од. вим.)"}}
%%$КІНЕЦЬБЛОКУ$%%%%$ENDBLOCK$%%


Результат

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

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


Блок IF всередині блоку FOREACH

Синтаксис:

%%$FOREACH(Змінна;Роздільник)$%%
  ТЕКСТ
  %%$IF(Логічна формула)$%%
    ТЕКСТ
  %%$ENDBLOCK$%%
  ТЕКСТ
%%$ENDBLOCK$%%


%%$FOREACH({{Завдання.Підзавдання}})$%%%%$IF({{Завдання.Підзавдання.Статус}}="ТКП додано в розрахунок")$%%
{{Завдання.Підзавдання.Контрагент}}, {{Завдання.Підзавдання.Контрагент.ІПН}}, сума контракту {{Завдання.Підзавдання."Сума контракту (од. вим.)"}}
%%$ENDBLOCK$%%%%$ENDBLOCK$%%


Результат:

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

TABLE

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

%%$TABLE(Змінна)$%%
ТЕКСТ
%%$ENDBLOCK$%%

Приклад

Приклад показує, як з доданої до завдання аналітики виділити лише потрібні блоки і відправити цю інформацію клієнту у вигляді таблиці. Таблицю додають через панель редактора:

Замовлення №{{Завдання.Номер}}

%%$TABLE({{Аналітика.Услуга}})$%%

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

%%$ENDBLOCK$%%

Загальна сума замовлення: %%%ТЕКСТ(SUM({{Аналітика.Услуга.Сума}});",.2f")+PLURAL(SUM({{Аналітика.Услуга.Сума}}); " гривня"; " гривні"; " гривень")%%%


Результат:

Замовлення №2118

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

Загальна сума замовлення: 4 900,00 гривень


Приклад з шапкою та підсумком

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

%%$TABLE(Змінна;0;0)$%%
Таблиця, намальована за д

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

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

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

Пример:

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

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

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


Результат:

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

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

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

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

Пример:

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

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

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


Результат:

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


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

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


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

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

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


Результат:

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

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

TVTmXD.png


Важно

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


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

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

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

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

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


Пример

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

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

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

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


Результат:

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


Перейти