Змінні в тексті: відмінності між версіями
Aliona (обговорення | внесок) Немає опису редагування |
Aliona (обговорення | внесок) Немає опису редагування |
||
Рядок 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):
Обчислення над змінними
Іноді простого вставлення значення змінної в текст буває недостатньо, а вам необхідно перед тим зробити обчислення над значеннями в змінних або обробити отриманий у ній рядок. Для таких дій використовуйте наступний синтаксис:
%%%ТЕКСТ ФОРМУЛИ%%%
Приклади
Важливо
- Текст формули обов'язково записується в один рядок і ніяк не переноситься, тобто формулу не можна переносити на наступний рядок, натискаючи Enter.
- Змінну в формулі не можна форматувати, наприклад, виділяти жирним або робити курсивом.
- Якщо результат формули необхідно виділити жирним, то застосовуйте форматування одразу до всієї формули разом з відсотками.
IF
Для вставки тексту залежно від значень змінних (умови) використовується наступний синтаксис:
ТЕКСТ
%%$ENDBLOCK$%%
Конструкцію необхідно додавати одним рядком без пропусків і переносів:
Приклад
Результат:
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
Коли змінна представляє собою список значень, наприклад {{Завдання.Підзавдання}} або {{Завдання.Виконавець}}, і вам необхідно вивести інформацію для кожного значення — використовуйте наступний синтаксис:
ТЕКСТ
%%$ENDBLOCK$%%
Важливо: в цій частині конструкції — %%$ДЛЯКОЖНОГО(Змінна;Роздільник)$%% — обов'язково вказуйте змінну першого рівня, тобто {{Завдання.Підзавдання}} або {{Завдання.Виконавець}} і ніяк інакше.
Конструкцію необхідно додавати одним рядком без пропусків і переносів:
Приклад
Результат:
Вася П'ятірочкін - Розробник
Катя Смирнова - СЕО
Результат:
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
Якщо змінна представляє собою список значень, і вам необхідно вивести інформацію для кожного значення у вигляді таблиці — використовуйте наступний синтаксис:
ТЕКСТ
%%$ENDBLOCK$%%
Приклад
Приклад показує, як з доданої до завдання аналітики виділити лише потрібні блоки і відправити цю інформацію клієнту у вигляді таблиці. Таблицю додають через панель редактора:
Замовлення №{{Завдання.Номер}}
%%$TABLE({{Аналітика.Услуга}})$%%
{{Аналітика.Услуга.Назва послуги}} | {{Аналітика.Услуга.Сума}} |
%%$ENDBLOCK$%%
Загальна сума замовлення: %%%ТЕКСТ(SUM({{Аналітика.Услуга.Сума}});",.2f")+PLURAL(SUM({{Аналітика.Услуга.Сума}}); " гривня"; " гривні"; " гривень")%%%
Результат:
Замовлення №2118
Графічний дизайн | 1 600,00 |
Програмування | 3 000,00 |
Розробка ТЗ | 300,00 |
Загальна сума замовлення: 4 900,00 гривень
Приклад з шапкою та підсумком
Щоб вивести в таблиці шапку або рядок підсумків, використовуйте в синтаксисі наступні параметри:
Таблиця, намальована за д
Пример с шапкой и итогом
Для того, чтобы вывести в таблице шапку или строку итогов используйте в синтаксисе следующие параметры:
Таблица, нарисованная с помощью редактора ПланФикса
%%$КОНЕЦБЛОКА$%%
Пример:
%%$ТАБЛИЦА({{Аналитика.Услуга}};1;1)$%%
№ | Название | Стоимость |
---|---|---|
{{Аналитика.Услуга.Порядковый номер записи}} | {{Аналитика.Услуга.Название услуги}} | {{Аналитика.Услуга.Сумма}} |
Итог | %%%Сумма({{Аналитика.Услуга.Сумма}})%%% |
%%$КОНЕЦБЛОКА$%%
Результат:
№ | Название | Стоимость |
---|---|---|
1 | Разработка ТЗ | 1 000,00 |
2 | Программирование | 3 705,00 |
3 | Графический дизайн | 1 035,00 |
4 | Тестирование | 690,00 |
Итог | 6430 |
Цифры, выделенные красным цветом, указывают на то, сколько строк в начале и в конце таблицы использовать в шапке и итогах.
Так, в примере выше указаны цифры (1;1) — это означает, что одна строка в начале будет использована для шапки таблицы и одна строка в конце будет использована для итогов таблицы.
Для того, чтобы использовать две строки в шапке таблицы, укажите это так — (2;1).
Пример:
%%$ТАБЛИЦА({{Аналитика.Услуга}};2;1)$%%
Набор услуг | ||
---|---|---|
№ | Название | Стоимость |
{{Аналитика.Услуга.Порядковый номер записи}} | {{Аналитика.Услуга.Название услуги}} | {{Аналитика.Услуга.Сумма}} |
Итог | %%%Сумма({{Аналитика.Услуга.Сумма}})%%% |
%%$КОНЕЦБЛОКА$%%
Результат:
Набор услуг | ||
---|---|---|
№ | Название | Стоимость |
1 | Разработка ТЗ | 1 000,00 |
2 | Программирование | 3 705,00 |
3 | Графический дизайн | 1 035,00 |
4 | Тестирование | 690,00 |
Итог | 6430 |
Пример с условием
%%$ТАБЛИЦА(Переменная;0;0;Условие_БЕЗ_если)$%%
Таблица, нарисованная с помощью редактора ПланФикса
%%$КОНЕЦБЛОКА$%%
%%$ТАБЛИЦА({{Задача.Подзадачи}};1;0;{{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет")$%%
Контрагент | ИНН | Сумма контракта |
---|---|---|
{{Задача.Подзадачи.Контрагент}} | {{Задача.Подзадачи.Контрагент.ИНН}} | {{Задача.Подзадачи."Сумма контракта (у.е.)"}}{{Задача.Подзадачи.Валюта.Символ}} |
%%$КОНЕЦБЛОКА$%%
Результат:
Контрагент | ИНН | Сумма контракта |
---|---|---|
ООО Восход | 5689845987654 | 1500$ |
ООО Рассвет | 5689845125699 | 1700$ |
ООО Заря | 5689845589674 | 2500$ |
ООО Свет | 5689845235689 | 500$ |
Чтобы добавить в таблицу шапку, нажмите на нее правой кнопкой мыши и выберите Cтрока - Вставить строку сверху:
Важно
В ТАБЛИЦАХ на данный момент не поддерживается вложенность конструкций, таким образом блок ЕСЛИ внутри ТАБЛИЦЫ работать не будет. Временное решение — использовать блок ТАБЛИЦА с функцией ЕСЛИ, то есть вместо блока «%%$ЕСЛИ» использовать функцию «%%%ЕСЛИ».
ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками
При разборе письма или ответа на HTTP-запрос вы получаете несколько строк данных и хотите добавить их в комментарий в виде структурированного текста или таблицы:
- Извлеките данные в инфоблоки:
- Затем воспользуйтесь следующим синтаксисом:
%%$ДЛЯКАЖДОГО({{Инфоблок.!строка}};Разделитель)$%%
{{Инфоблок.!строка.Имя инфоблока}}
%%$КОНЕЦБЛОКА$%%
%%$ТАБЛИЦА({{Инфоблок.!строка}})$%%
{{Инфоблок.!строка.Имя инфоблока}}
%%$КОНЕЦБЛОКА$%%
Пример
Извлечём данные в инфоблоки «Товар» и «Цена» и добавим их в таблицу:
%%$ТАБЛИЦА({{Инфоблок.!строка}})$%%
{{Инфоблок.!строка.Товар}} | {{Инфоблок.!строка.Цена}} |
%%$КОНЕЦБЛОКА$%%
Результат:
Карандаш | 150,00 |
Ручка | 200,00 |
Тетрадь | 100,00 |