Переменные в тексте: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 165 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{#seo:
{{#seo:
|title=Использование переменных в тексте
|title=Переменные в тексте
|titlemode=append
|titlemode=append
|keywords=планфикс, переменные, шаблон задачи, шаблон документа
|keywords=планфикс, переменные, шаблон задачи, шаблон документа, использование переменных, переменные в тексте, текст с переменными, для каждого, длякаждого, если, иначе, иначе если, иначеесли, таблица
|description=Использование переменных в тексте
|description=Использование переменных в тексте
}}
}}
Переменные хранят в себе какое-то значение, например, число, строку или другой тип данных. Переменные можно использовать в:
<div style="background:#ffbaba;padding:10px;border:1px solid #ff9b9b;">Эта справочная статья не относится к шаблонам документов. Как использовать переменные в шаблонах документов читайте [[Переменные в шаблонах документов |здесь]].</div>
*Название задачи (в шаблоне задач или при создании задачи)
 
*Описание задачи (в шаблоне задач или при создании задачи)
 
*Шаблоны писем
== Навигация ==
*Действия сценариев, кнопок, входящих вебхуков, правил для задач по почте:
*[[#Вычисления над переменными |Вычисления над переменными]]
*[[#ЕСЛИ |ЕСЛИ]]
*[[#ИНАЧЕ |ИНАЧЕ]]
*[[#ИНАЧЕЕСЛИ |ИНАЧЕЕСЛИ]]
*[[#ДЛЯКАЖДОГО |ДЛЯКАЖДОГО]]
*[[#ТАБЛИЦА |ТАБЛИЦА]]
*[[#ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками |ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками]]
 
 
Переменные хранят в себе какое-то значение, например, число, строку или другой тип данных. Переменные используются в:
*Названии задачи (в шаблоне задач или при создании задачи)
*Описании задачи (в шаблоне задач или при создании задачи)
*Шаблонах писем
*Действиях сценариев, кнопок, входящих вебхуков, правилах для задач по почте:
**Послать HTTP-запрос
**Послать HTTP-запрос
**Отправить SMS
**Отправить SMS
**Написать в WhatsApp
**Написать в WhatsApp
**Написать в Instagram
**Написать в Instagram
*Изменения задач массовыми действиями, сценариями, кнопками, входящими вебхуками, правилами для задач по почте:
*Изменениях задач массовыми действиями, сценариями, кнопками, входящими вебхуками, правилами для задач по почте:
**Изменить название
**Изменить название
**Изменить описание
**Изменить описание
Строка 33: Строка 46:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>Цена со скидкой: %%%{{Задача.Цена}}*0.8%%%</nowiki></div>
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>Цена со скидкой: %%%{{Задача.Цена}}*0.8%%%</nowiki></div>


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>Работы будут окончены через %%%РАЗНДАТ(СЕГОДНЯ(); {{Задача.Дата окончания работ}}; "d")%%% %%%МНОЖЕСТВЕННОЕЧИСЛО(РАЗНДАТ(СЕГОДНЯ(); {{Задача.Дата окончания работ}}; "d");"день"; "дня"; "дней")%%%</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>Работы будут окончены через %%%РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d")%%% %%%МНОЖЕСТВЕННОЕЧИСЛО(РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d");"день"; "дня"; "дней")%%%</nowiki></div>
 
=== Важно ===
*Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter.
*Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
*Если результат формулы необходимо выделить жирным, то применяйте форматирование сразу ко всей формуле вместе с процентами.




Строка 40: Строка 58:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green">ЕСЛИ(</span><span style="color:blue">Логическая формула</span><span style="color:green">)</span>$%%<br><span style="color:red">'''ТЕКСТ'''</span><br>%%$<span style="color:green">КОНЕЦБЛОКА</span>$%%
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green">ЕСЛИ(</span><span style="color:blue">Логическая формула</span><span style="color:green">)</span>$%%<br><span style="color:red">'''ТЕКСТ'''</span><br>%%$<span style="color:green">КОНЕЦБЛОКА</span>$%%
</div>
=== Пример ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$ЕСЛИ(<nowiki>{{Задача.Сумма заказа}}</nowiki> > 100000)$%%<br>
VIP-КЛИЕНТ<br>
%%$КОНЕЦБЛОКА$%%
'''Результат''':


VIP-КЛИЕНТ</div>


'''Управляющую конструкцию необходимо добавлять одной строкой без пробелов и переносов:'''


%%$ЕСЛИ(Логическая формула)$%%ТЕКСТ%%$КОНЕЦБЛОКА$%%</div>
== '''ИНАЧЕ''' ==
Используется только вместе с ЕСЛИ. Когда условие в ЕСЛИ не будет истинным, отобразится текст из части блока ИНАЧЕ.
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br>
<span style="color:red">ТЕКСТ</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> 
<span style="color:red">ТЕКСТ</span><br>
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%%
</div>


=== Пример ===
=== Пример ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$ЕСЛИ({{Задача.Сумма заказа}} > 100000)$%%VIP-КЛИЕНТ%%$КОНЕЦБЛОКА$%%</nowiki>
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.Счет №}}=""</nowiki></span>)$%%<br> 
<span style="color:red">Не заполнено поле [Счет №]</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> 
<span style="color:red">Нужное поле задачи заполнено! :)</span><br>
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%%




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


При сумме заказа свыше 100 000 отобразится текст VIP-КЛИЕНТ.</div>
*Если поле будет не заполнено — выведется сообщение «Не заполнено поле [Счет №]».
*Если поле будет заполнено — выведется сообщение «Нужное поле задачи заполнено! :)».
</div>
 
 
== '''ИНАЧЕЕСЛИ''' ==
Поможет собрать более сложную конструкцию с условиями:
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br>
<span style="color:red">ТЕКСТ</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br> 
<span style="color:red">ТЕКСТ</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue">Логическая формула</span>)$%%<br> 
<span style="color:red">ТЕКСТ</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> 
<span style="color:red">ТЕКСТ</span><br>
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%%
 
 
'''Обратите внимание'''<br>
*Последнее <span style="color:#ef18c7">ИНАЧЕ</span> не обязательная часть блока.
</div>
 
=== Пример ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green">ЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.Счет №}}=""</nowiki></span>)$%%<br> 
<span style="color:red">Не заполнено поле [Счет №]</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.УПД №}}=""</nowiki></span>)$%%<br>
<span style="color:red">Не заполнено поле [УПД №]</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕЕСЛИ</span>(<span style="color:blue"><nowiki>{{Задача.Контракт №}}=""</nowiki></span>)$%%<br>
<span style="color:red">Не заполнено поле [Контракт №]</span><br>
%%$<span style="color:#ef18c7">ИНАЧЕ</span>$%%<br> 
<span style="color:red">Все поля задачи заполнены, ты молодец! :)</span><br>
%%$<span style="color:green">КОНЕЦБЛОКА</span>$%%
 
 
'''Результат''':
 
*Если все три поля будут не заполнены — выведется только первое сообщение «Не заполнено поле [Счет №]», остальные будут пропущены.
*Если поля «Счет №» и «УПД №» будут заполнены, а поле «Контракт №» — нет, тогда отобразится соответствующая строка «Не заполнено поле [Контракт №]».</div>




Строка 58: Строка 140:
Когда переменная представляет собой список значений, например <nowiki>{{Задача.Подзадачи}}</nowiki> или <nowiki>{{Задача.Исполнитель}}</nowiki>, и вам необходимо вывести информацию для каждого значения — используйте следующий синтаксис:
Когда переменная представляет собой список значений, например <nowiki>{{Задача.Подзадачи}}</nowiki> или <nowiki>{{Задача.Исполнитель}}</nowiki>, и вам необходимо вывести информацию для каждого значения — используйте следующий синтаксис:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%%<br>'''<span style="color:red;">ШАБЛОН</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%%<br>'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
 
 
'''Важно''': в этой части конструкции — %%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%% — обязательно указывайте переменную первого уровня, т.е. <nowiki>{{Задача.Подзадачи}}</nowiki> или <nowiki>{{Задача.Исполнитель}}</nowiki> и никак иначе.
</div>
 
 
=== Пример ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$ДЛЯКАЖДОГО({{Задача.Исполнитель}};"<br>")$%%</nowiki><br>
<nowiki>{{Задача.Исполнитель}} - {{Задача.Исполнитель.Должность}}</nowiki><br>
%%$КОНЕЦБЛОКА$%%
 
 
'''Результат''':
 
Анастасия Приходько - Дизайнер<br>Вася Пятёрочкин - Разработчик<br>Катя Смирнова - СЕО</div>
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"<br>")$%%</nowiki><br>
<nowiki>{{Задача.Подзадачи.Номер}} - {{Задача.Подзадачи.Название}}</nowiki><br>
%%$КОНЕЦБЛОКА$%%
 
 
'''Результат''':
 
2119 - Черновая отделка<br>2120 - Предчистовая отделка<br>2121 - Чистовая отделка</div>
 
 
=== Пример с условием ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">'''Cинтаксис:'''
 
%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>;<span style="color:blue;">Условие_БЕЗ_Если</span>)</span>$%%<br>&nbsp;&nbsp;'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
 
 
%%$ДЛЯКАЖДОГО(<nowiki>{{Задача.Подзадачи}}</nowiki>;"";<nowiki>{{Задача.Подзадачи."Сумма контракта (у.е.)"}}</nowiki>>1000))$%%<br>
<nowiki>{{Задача.Подзадачи.Контрагент}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}}</nowiki><br>
%%$КОНЕЦБЛОКА$%%
 
 
'''Результат'''
 
Из всего списка контрагентов, отобразаться только те, у кого сумма контракта более 1000:
 
ООО Восход, 1500<br>
ООО Рассвет, 1700<br>
ООО Заря, 2500<br>
</div>
 
 
=== Блок ЕСЛИ внутри блока ДЛЯКАЖДОГО ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">'''Cинтаксис:'''
 
%%$<span style="color:green;">ДЛЯКАЖДОГО(<span style="color:blue;">Переменная</span>;<span style="color:blue;">Разделитель</span>)</span>$%%<br>&nbsp;&nbsp;'''<span style="color:red;">ТЕКСТ</span>'''<br>&nbsp;&nbsp;%%$<span style="color:green;">ЕСЛИ(</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;">КОНЕЦБЛОКА</span>$%%<br>&nbsp;&nbsp;'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
 
 
%%$ДЛЯКАЖДОГО(<nowiki>{{Задача.Подзадачи}}</nowiki>)$%%%%$ЕСЛИ(<nowiki>{{Задача.Подзадачи.Статус}}</nowiki>="ТКП добавлен в расчет")$%%<br>
<nowiki>{{Задача.Подзадачи.Контрагент}}, {{Задача.Подзадачи.Контрагент.ИНН}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}} {{Задача.Подзадачи.Валюта.Символ}}</nowiki><br>
%%$КОНЕЦБЛОКА$%%%%$КОНЕЦБЛОКА$%%
 
 
'''Результат''':
 
ООО Восход, 5689845987654, 1500 $<br>
ООО Рассвет, 5689845125699, 1700 $<br>
ООО Заря, 5689845589674, 2500 $<br>
ООО Свет, 5689845235689, 500 $
</div>
 
== '''ТАБЛИЦА''' ==
Если переменная представляет собой список значений, и вам необходимо вывести информацию для каждого значения в виде таблицы — используйте следующий синтаксис:
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">ТАБЛИЦА(<span style="color:blue;">Переменная</span>)</span>$%%<br>'''<span style="color:red;">ТЕКСТ</span>'''<br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%</div>


=== Пример ===
Пример показывает, как из добавленной в задачу аналитики вычленить только нужные блоки и отправить эту информацию клиенту в виде таблицы. Таблица добавляется через панель редактора:


'''Управляющую конструкцию необходимо добавлять одной строкой без пробелов и переносов:'''
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
Заказ №<nowiki>{{Задача.Номер}}</nowiki>


%%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%%ШАБЛОН%%$КОНЕЦБЛОКА$%%</div>
<nowiki>%%$ТАБЛИЦА({{Аналитика.Услуга}})$%%</nowiki>
{| class="wikitable"
|<nowiki>{{Аналитика.Услуга.Название услуги}}</nowiki>
|<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>
|}
%%$КОНЕЦБЛОКА$%%


Общая сумма заказа:
<nowiki>%%%ТЕКСТ(СУММА({{Аналитика.Услуга.Сумма}});",.2f")+МНОЖЕСТВЕННОЕЧИСЛО(СУММА({{Аналитика.Услуга.Сумма}}); " рубль"; " рубля"; " рублей")%%%</nowiki>


=== Примеры ===
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$ДЛЯКАЖДОГО({{Задача.Исполнитель}};"<br>")$%%</nowiki><br><nowiki>{{Задача.Исполнитель}} - {{Задача.Исполнитель.Должность}}</nowiki><br>%%$КОНЕЦБЛОКА$%%</div>
'''Результат:'''
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"<br>")$%%</nowiki><br><nowiki>{{Задача.Подзадачи.Номер}} - {{Задача.Подзадачи.Название}}</nowiki><br>%%$КОНЕЦБЛОКА$%%</div>
Заказ №2118
{| class="wikitable"
|Графический дизайн
|1 600,00
|-
|Программирование
|3 000,00
|-
|Разработка ТЗ
|300,00
|-
|}
Общая сумма заказа: 4 900,00 рублей
</div>
 
 
=== Пример с шапкой и итогом ===
Для того, чтобы вывести в таблице шапку или строку итогов используйте в синтаксисе следующие параметры:
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$ТАБЛИЦА(Переменная;<span style="color:red;">0</span>;<span style="color:red;">0</span>)$%%<br>Таблица, нарисованная с помощью редактора ПланФикса<br>%%$КОНЕЦБЛОКА$%%</div>
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
'''Пример:'''
 
%%$ТАБЛИЦА(<nowiki>{{Аналитика.Услуга}}</nowiki>;<span style="color:red;">1</span>;<span style="color:red;">1</span>)$%%<br>
{| class="wikitable"
! №
! Название
! Стоимость
|-
|<nowiki>{{Аналитика.Услуга.Порядковый номер записи}}</nowiki>
|<nowiki>{{Аналитика.Услуга.Название услуги}}</nowiki>
|<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>
|-
|colspan="2"|Итог
|%%%Сумма(<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>)%%%
|-
|}
%%$КОНЕЦБЛОКА$%%
 
 
'''Результат:'''
 
{| class="wikitable"
! №
! Название
! Стоимость
|-
|1
|Разработка ТЗ
|1 000,00
|-
|2
|Программирование
|3 705,00
|-
|3
|Графический дизайн
|1 035,00
|-
|4
|Тестирование
|690,00
|-
|colspan="2"|Итог
|6430
|}
</div>
 
Цифры, выделенные <span style="color:red;">красным цветом</span>, указывают на то, сколько строк в начале и в конце таблицы использовать в шапке и итогах.
 
Так, в примере выше указаны цифры (<span style="color:red;">1</span>;<span style="color:red;">1</span>) — это означает, что одна строка в начале будет использована для шапки таблицы и одна строка в конце будет использована для итогов таблицы.
 
Для того, чтобы использовать две строки в шапке таблицы, укажите это так — (<span style="color:red;">2</span>;<span style="color:red;">1</span>).
 
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
'''Пример:'''
 
%%$ТАБЛИЦА(<nowiki>{{Аналитика.Услуга}}</nowiki>;<span style="color:red;">2</span>;<span style="color:red;">1</span>)$%%<br>
{| class="wikitable"
!colspan="3"|Набор услуг
|-
! №
! Название
! Стоимость
|-
|<nowiki>{{Аналитика.Услуга.Порядковый номер записи}}</nowiki>
|<nowiki>{{Аналитика.Услуга.Название услуги}}</nowiki>
|<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>
|-
|colspan="2"|Итог
|%%%Сумма(<nowiki>{{Аналитика.Услуга.Сумма}}</nowiki>)%%%
|-
|}
%%$КОНЕЦБЛОКА$%%
 
 
'''Результат:'''
 
{| class="wikitable"
!colspan="3"|Набор услуг
|-
! №
! Название
! Стоимость
|-
|1
|Разработка ТЗ
|1 000,00
|-
|2
|Программирование
|3 705,00
|-
|3
|Графический дизайн
|1 035,00
|-
|4
|Тестирование
|690,00
|-
|colspan="2"|Итог
|6430
|}
</div>
 
 
=== Пример с условием ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green;">ТАБЛИЦА(</span><span style="color:blue;">Переменная;0;0;Условие_БЕЗ_если</span><span style="color:green;">)</span>$%%<br>
<span style="color:red;">Таблица, нарисованная с помощью редактора ПланФикса</span><br>
%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
 
 
%%$ТАБЛИЦА(<nowiki>{{Задача.Подзадачи}}</nowiki>;1;0;<nowiki>{{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет"</nowiki>)$%%<br>
{| class="wikitable"
! Контрагент
! ИНН
! Сумма контракта
|-
|<nowiki>{{Задача.Подзадачи.Контрагент}}</nowiki>
|<nowiki>{{Задача.Подзадачи.Контрагент.ИНН}}</nowiki>
|<nowiki>{{Задача.Подзадачи."Сумма контракта (у.е.)"}}{{Задача.Подзадачи.Валюта.Символ}}</nowiki>
|-
|}
%%$КОНЕЦБЛОКА$%%
 
 
'''Результат:'''
 
{| class="wikitable"
! Контрагент
! ИНН
! Сумма контракта
|-
|ООО Восход
|5689845987654
|1500$
|-
|ООО Рассвет
|5689845125699
|1700$
|-
|ООО Заря
|5689845589674
|2500$
|-
|ООО Свет
|5689845235689
|500$
|-
|}
</div>
 
Чтобы добавить в таблицу шапку, нажмите на нее правой кнопкой мыши и выберите '''Cтрока''' - '''Вставить строку сверху''':
 
https://p.pfx.so/pf/3R/TVTmXD.png
 
 
== '''ДЛЯКАЖДОГО и ТАБЛИЦА с инфоблоками''' ==
При разборе письма или ответа на HTTP-запрос вы получаете несколько строк данных и хотите добавить их в комментарий в виде структурированного текста или таблицы:
*Извлеките данные в инфоблоки:
**[[JSONPath |из JSON]]
**[[Извлечение данных из таблиц в письмах |из HTML-таблицы]]
*Затем воспользуйтесь следующим синтаксисом:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green;">ДЛЯКАЖДОГО(</span><span style="color:blue;"><nowiki>{{Инфоблок.!строка}}</nowiki></span>;<span style="color:blue;">Разделитель</span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Инфоблок.!строка.Имя инфоблока}}</nowiki></span><br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
 
%%$<span style="color:green;">ТАБЛИЦА(</span><span style="color:blue;"><nowiki>{{Инфоблок.!строка}}</nowiki></span><span style="color:green;">)</span>$%%<br><span style="color:red;"><nowiki>{{Инфоблок.!строка.Имя инфоблока}}</nowiki></span><br>%%$<span style="color:green;">КОНЕЦБЛОКА</span>$%%
</div>
 
 
=== Пример ===
Извлечём данные в инфоблоки «Товар» и «Цена» и добавим их в таблицу:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$ТАБЛИЦА(<nowiki>{{Инфоблок.!строка}}</nowiki>)$%%
{| class="wikitable"
|<nowiki>{{Инфоблок.!строка.Товар}}</nowiki>
|<nowiki>{{Инфоблок.!строка.Цена}}</nowiki>
|}
%%$КОНЕЦБЛОКА$%%




== Дополнительно ==
'''Результат:'''
*[[Функции в шаблонах документов |Формулы в шаблонах документов]]
{| class="wikitable"
|Карандаш
|150,00
|-
|Ручка
|200,00
|-
|Тетрадь
|100,00
|-
|}
</div>





Текущая версия от 05:31, 24 июля 2024

Эта справочная статья не относится к шаблонам документов. Как использовать переменные в шаблонах документов читайте здесь.


Навигация


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

  • Названии задачи (в шаблоне задач или при создании задачи)
  • Описании задачи (в шаблоне задач или при создании задачи)
  • Шаблонах писем
  • Действиях сценариев, кнопок, входящих вебхуков, правилах для задач по почте:
    • Послать HTTP-запрос
    • Отправить SMS
    • Написать в WhatsApp
    • Написать в Instagram
  • Изменениях задач массовыми действиями, сценариями, кнопками, входящими вебхуками, правилами для задач по почте:
    • Изменить название
    • Изменить описание
    • Добавить комментарий
    • Установить значение поля (для полей типа «Текст»)

Для того, чтобы добавить переменную в текст, например в описание задачи, перейдите по ссылке «различные переменные» (1), сформируйте переменную и добавьте её в текст нужного поля шаблона задачи (2):

bHwxQU.png


Вычисления над переменными

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

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

Примеры

Цена со скидкой: %%%{{Задача.Цена}}*0.8%%%
Работы будут окончены через %%%РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d")%%% %%%МНОЖЕСТВЕННОЕЧИСЛО(РАЗНДАТ(СЕЙЧАС(); {{Задача.Дата окончания работ}}; "d");"день"; "дня"; "дней")%%%

Важно

  • Текст формулы обязательно записывается в одну строку и никак не переносится, т.е. формулу нельзя переносить на следующую строку, нажимая Enter.
  • Переменную в формуле нельзя форматировать, например, выделять жирным или делать курсивом.
  • Если результат формулы необходимо выделить жирным, то применяйте форматирование сразу ко всей формуле вместе с процентами.


ЕСЛИ

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

%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%

Пример

%%$ЕСЛИ({{Задача.Сумма заказа}} > 100000)$%%
VIP-КЛИЕНТ
%%$КОНЕЦБЛОКА$%%


Результат:

VIP-КЛИЕНТ


ИНАЧЕ

Используется только вместе с ЕСЛИ. Когда условие в ЕСЛИ не будет истинным, отобразится текст из части блока ИНАЧЕ.

%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕ$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%

Пример

%%$ЕСЛИ({{Задача.Счет №}}="")$%%
Не заполнено поле [Счет №]
%%$ИНАЧЕ$%%
Нужное поле задачи заполнено! :)
%%$КОНЕЦБЛОКА$%%


Результат:

  • Если поле будет не заполнено — выведется сообщение «Не заполнено поле [Счет №]».
  • Если поле будет заполнено — выведется сообщение «Нужное поле задачи заполнено! :)».


ИНАЧЕЕСЛИ

Поможет собрать более сложную конструкцию с условиями:

%%$ЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕЕСЛИ(Логическая формула)$%%
ТЕКСТ
%%$ИНАЧЕ$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%


Обратите внимание

  • Последнее ИНАЧЕ — не обязательная часть блока.

Пример

%%$ЕСЛИ({{Задача.Счет №}}="")$%%
Не заполнено поле [Счет №]
%%$ИНАЧЕЕСЛИ({{Задача.УПД №}}="")$%%
Не заполнено поле [УПД №]
%%$ИНАЧЕЕСЛИ({{Задача.Контракт №}}="")$%%
Не заполнено поле [Контракт №]
%%$ИНАЧЕ$%%
Все поля задачи заполнены, ты молодец! :)
%%$КОНЕЦБЛОКА$%%


Результат:

  • Если все три поля будут не заполнены — выведется только первое сообщение «Не заполнено поле [Счет №]», остальные будут пропущены.
  • Если поля «Счет №» и «УПД №» будут заполнены, а поле «Контракт №» — нет, тогда отобразится соответствующая строка «Не заполнено поле [Контракт №]».


ДЛЯКАЖДОГО

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

%%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%


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


Пример

%%$ДЛЯКАЖДОГО({{Задача.Исполнитель}};"<br>")$%%

{{Задача.Исполнитель}} - {{Задача.Исполнитель.Должность}}
%%$КОНЕЦБЛОКА$%%


Результат:

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

{{Задача.Подзадачи.Номер}} - {{Задача.Подзадачи.Название}}
%%$КОНЕЦБЛОКА$%%


Результат:

2119 - Черновая отделка
2120 - Предчистовая отделка
2121 - Чистовая отделка


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

Cинтаксис:

%%$ДЛЯКАЖДОГО(Переменная;Разделитель;Условие_БЕЗ_Если)$%%
  ТЕКСТ
%%$КОНЕЦБЛОКА$%%


%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}};"";{{Задача.Подзадачи."Сумма контракта (у.е.)"}}>1000))$%%
{{Задача.Подзадачи.Контрагент}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}}
%%$КОНЕЦБЛОКА$%%


Результат

Из всего списка контрагентов, отобразаться только те, у кого сумма контракта более 1000:

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


Блок ЕСЛИ внутри блока ДЛЯКАЖДОГО

Cинтаксис:

%%$ДЛЯКАЖДОГО(Переменная;Разделитель)$%%
  ТЕКСТ
  %%$ЕСЛИ(Логическая формула)$%%
    ТЕКСТ
  %%$КОНЕЦБЛОКА$%%
  ТЕКСТ
%%$КОНЕЦБЛОКА$%%


%%$ДЛЯКАЖДОГО({{Задача.Подзадачи}})$%%%%$ЕСЛИ({{Задача.Подзадачи.Статус}}="ТКП добавлен в расчет")$%%
{{Задача.Подзадачи.Контрагент}}, {{Задача.Подзадачи.Контрагент.ИНН}}, сумма контракта {{Задача.Подзадачи."Сумма контракта (у.е.)"}} {{Задача.Подзадачи.Валюта.Символ}}
%%$КОНЕЦБЛОКА$%%%%$КОНЕЦБЛОКА$%%


Результат:

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

ТАБЛИЦА

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

%%$ТАБЛИЦА(Переменная)$%%
ТЕКСТ
%%$КОНЕЦБЛОКА$%%

Пример

Пример показывает, как из добавленной в задачу аналитики вычленить только нужные блоки и отправить эту информацию клиенту в виде таблицы. Таблица добавляется через панель редактора:

Заказ №{{Задача.Номер}}

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

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

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

Общая сумма заказа: %%%ТЕКСТ(СУММА({{Аналитика.Услуга.Сумма}});",.2f")+МНОЖЕСТВЕННОЕЧИСЛО(СУММА({{Аналитика.Услуга.Сумма}}); " рубль"; " рубля"; " рублей")%%%


Результат:

Заказ №2118

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

Общая сумма заказа: 4 900,00 рублей


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

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

%%$ТАБЛИЦА(Переменная;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


Перейти