Вложенность функций: различия между версиями
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 15 промежуточных версий этого же участника) | |||
Строка 7: | Строка 7: | ||
Функции в ПланФиксе поддерживают вложенность. Это значит, что любой из аргументов [[Функции |функции]] может быть заменен другой функцией, главное, чтобы тип её результата (строка, число, дата) соответствовал тому типу функции, в которую вы её добавили. | Функции в ПланФиксе поддерживают вложенность. Это значит, что любой из аргументов [[Функции |функции]] может быть заменен другой функцией, главное, чтобы тип её результата (строка, число, дата) соответствовал тому типу функции, в которую вы её добавили. | ||
Все функции, которые используются вместо аргумента в другой функции, должны содержать то количество аргументов и | |||
== Важно == | |||
Все функции, которые используются вместо аргумента в другой функции, должны содержать то количество аргументов и порядок, который указан в справке добавляемой функции. | |||
== Функция СЦЕПИТЬ == | == Функция СЦЕПИТЬ == | ||
Функция | Функция СЦЕПИТЬ содержит 3 аргумента: | ||
<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;"> | ||
СЦЕПИТЬ('''"Текст_1"''';"Разделитель";'''"Текст_2"''') | СЦЕПИТЬ('''"Текст_1"''';"Разделитель";'''"Текст_2"''') | ||
</div> | </div> | ||
Аргументы: | Аргументы: | ||
*'''Текст_1''' — текст, который соединяем. | *'''Текст_1''' — текст, который соединяем. Вместо аргумента можно добавить другую функцию над строками. | ||
*'''Разделитель''' — может быть любым, даже пробелом — " ". | *'''Разделитель''' — может быть любым, даже пробелом — " ". | ||
*'''Текст_2''' — текст, который соединяем. | *'''Текст_2''' — текст, который соединяем. Вместо аргумента можно добавить другую функцию над строками. | ||
Вместо аргумента Текст_1 можно добавить другую функцию над строками, например, добавить ещё одну функцию СЦЕПИТЬ. При | Вместо аргумента Текст_1 можно добавить другую функцию над строками, например, добавить ещё одну функцию СЦЕПИТЬ. При это важно указать все аргументы функции как в справке: | ||
<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:red;">СЦЕПИТЬ(</span><span style="color:green;">СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2")</span><span style="color:red;">;"Разделитель";"Текст_2"</span>) | <span style="color:red;">СЦЕПИТЬ(</span><span style="color:green;">СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2")</span><span style="color:red;">;"Разделитель";"Текст_2"</span>) | ||
Строка 26: | Строка 28: | ||
Обратите внимание, добавленную вместо аргумента функцию двойными кавычками выделять не надо. | Обратите внимание, добавленную вместо аргумента функцию двойными кавычками выделять не надо. | ||
Аргументы новой функции | Аргументы новой функции: | ||
*СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2") | *СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2") | ||
*Текст_2 | *Текст_2 | ||
Строка 33: | Строка 35: | ||
== Функция ЕСЛИ | == Функция ЕСЛИ == | ||
Содержит 3 аргумента: | Содержит 3 аргумента: | ||
<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;"> | ||
Строка 40: | Строка 42: | ||
Аргументы: | Аргументы: | ||
*'''Условие''' — логическое выражение с использованием символов >, <, =, >=, <=, !=, другой функции или значения. Часто используется функция И. | *'''Условие''' — логическое выражение с использованием символов >, <, =, >=, <=, !=, другой функции или значения. Часто используется функция И. | ||
*'''значение_да''' — числовое или строковое значение, | *'''значение_да''' — числовое или строковое значение, итоговый результат функции, если условие выполнится. | ||
*'''значение_нет''' — числовое или строковое значение, | *'''значение_нет''' — числовое или строковое значение, итоговый результат функции, если условие не выполнится. | ||
Вместо условия можно использовать функцию [[Функция И |И]]: | Вместо условия можно использовать функцию [[Функция И |И]]: | ||
<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;"> | |||
И(условие1;условие2) | |||
</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:red;">ЕСЛИ(</span><span style="color:green;">И(условие1;условие2)</span><span style="color:red;">;значение_да;значение_нет)</span> | <span style="color:red;">ЕСЛИ(</span><span style="color:green;">И(условие1;условие2)</span><span style="color:red;">;значение_да;значение_нет)</span> | ||
</div> | </div> | ||
Если | Если у вас более сложная задача, например, функция должна проверить три условия одновременно, то используйте вложенность функции И: | ||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"> | <div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"> | ||
<span style="color:red;">ЕСЛИ(</span><span style="color:green;">И(<span style="color:blue;">И(условие1;условие2)</span>;условие2)</span><span style="color:red;">;значение_да;значение_нет)</span> | <span style="color:red;">ЕСЛИ(</span><span style="color:green;">И(<span style="color:blue;">И(условие1;условие2)</span>;условие2)</span><span style="color:red;">;значение_да;значение_нет)</span> | ||
</div> | </div> | ||
Например: | |||
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"> | |||
<span style="color:red;">ЕСЛИ(</span><span style="color:green;">И(<span style="color:blue;">И(<nowiki>{{Системные.Сегодня.Число}}=19</nowiki>;<nowiki>{{Задача.Полных рабочих дней}}>15</nowiki>)</span>;<nowiki>{{Задача.Статус}}="В работе"</nowiki>)</span><span style="color:red;">;"Завершаем";"Чего-то не хватает")</span> | |||
</div> | |||
== Перейти == | == Перейти == | ||
*[[Функции]] | *[[Функции]] | ||
*[[Описание возможностей]] | *[[Описание возможностей]] |
Текущая версия от 15:19, 19 мая 2023
Функции в ПланФиксе поддерживают вложенность. Это значит, что любой из аргументов функции может быть заменен другой функцией, главное, чтобы тип её результата (строка, число, дата) соответствовал тому типу функции, в которую вы её добавили.
Важно
Все функции, которые используются вместо аргумента в другой функции, должны содержать то количество аргументов и порядок, который указан в справке добавляемой функции.
Функция СЦЕПИТЬ
Функция СЦЕПИТЬ содержит 3 аргумента:
СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2")
Аргументы:
- Текст_1 — текст, который соединяем. Вместо аргумента можно добавить другую функцию над строками.
- Разделитель — может быть любым, даже пробелом — " ".
- Текст_2 — текст, который соединяем. Вместо аргумента можно добавить другую функцию над строками.
Вместо аргумента Текст_1 можно добавить другую функцию над строками, например, добавить ещё одну функцию СЦЕПИТЬ. При это важно указать все аргументы функции как в справке:
СЦЕПИТЬ(СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2");"Разделитель";"Текст_2")
Обратите внимание, добавленную вместо аргумента функцию двойными кавычками выделять не надо.
Аргументы новой функции:
- СЦЕПИТЬ("Текст_1";"Разделитель";"Текст_2")
- Текст_2
По такому принципу можно формировать функции с разными уровнями вложенности.
Функция ЕСЛИ
Содержит 3 аргумента:
ЕСЛИ(условие;значение_да;значение_нет)
Аргументы:
- Условие — логическое выражение с использованием символов >, <, =, >=, <=, !=, другой функции или значения. Часто используется функция И.
- значение_да — числовое или строковое значение, итоговый результат функции, если условие выполнится.
- значение_нет — числовое или строковое значение, итоговый результат функции, если условие не выполнится.
Вместо условия можно использовать функцию И:
И(условие1;условие2)
В итоге функция ЕСЛИ станет выглядеть так:
ЕСЛИ(И(условие1;условие2);значение_да;значение_нет)
Если у вас более сложная задача, например, функция должна проверить три условия одновременно, то используйте вложенность функции И:
ЕСЛИ(И(И(условие1;условие2);условие2);значение_да;значение_нет)
Например:
ЕСЛИ(И(И({{Системные.Сегодня.Число}}=19;{{Задача.Полных рабочих дней}}>15);{{Задача.Статус}}="В работе");"Завершаем";"Чего-то не хватает")