Вычисление значений выражений в параметрах действий

Урок 48 из 240
Автор: Марина Павлова
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Дата изменения: 25.12.2022
Просмотров: 87314
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Старт, Стандарт, Малый бизнес

В системе имеется возможность вычислять значения выражений в параметрах действий. Например складывать, умножать, вычислять проценты и многое другое.

Примечание: Полный список доступных операторов и функций приведен в уроке Функции калькулятора выражений.

  Вычисляем выражения

Для вычисления математических или логических выражений требуется поставить знак = в поле перед операциями.

Пример:
=6^2 + {=Document:PROPERTY_NUM}/2
или
=if({Document:ID}=5, "текст1", "текст2")

В каждом поле доступно использовать сразу несколько разных вычислений.

Если Вы хотите не только произвести вычисление, но и вывести дополнительные данные (значение переменных, текст), то доступно два варианта написания:

  • Вычисляемые значения можно просто размещать в тексте, поместив вычисление в конструкцию {{=...}}.
    Пример:Вам необходимо оформить документы до {{=DateAdd({=Document:CREATED}, '5d')}}:

  • Либо можно использовать оператор конкатенации (&), а текст написать в кавычках ( " или ' ). Пример :
    ='Ответ:' & (1+3)
    или
    ="Автор: " & {=Document:CREATED_BY} & ", " & "Конечный срок: " & Dateadd({=Document:DATE_CREATE}, "1d")
Примечание: Синтаксис символьных операторов аналогичен синтаксису соответствующих php-функций.

  Рекомендации

 Кавычки

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

// Слово Конечный в двойных кавычках, все текстовые части выражения в одинарных кавычках.
='Автор: ' & {=Document:CREATED_BY} & ', ' & '"Конечный" срок: ' & Dateadd({=Document:DATE_CREATE}, '1d')
или так:
// Слово Конечный в двойных кавычках, а фраза заключена в одинарные кавычки.
// Все остальные текстовые части выражения остались в двойных кавычках.
="Автор: " & {=Document:CREATED_BY} & ", " & '"Конечный" срок: ' & Dateadd({=Document:DATE_CREATE}, "1d")

 Скобки

Будьте внимательны при использовании фигурных скобок {{...}} или их автоматической подстановке, выбирая функции из списка. Неверная постановка скобок - это частая ошибка при работе с вычислениями выражений в бизнес-процессах.

Верная запись  

=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a") * 2 если нет дополнительного текста
или
{{=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a") * 2}}, если требуется добавить дополнительный текст.

Неверная запись  

={{=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a")}} * 2
или
{{={{=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a")}} * 2}}

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

Подробнее...
. На примере выражения выше, можно перенести вычисление функции datediff в переменную (действие Изменение переменных Действие позволяет изменить значения переменных, заданных в настройках шаблона.

Подробнее...
). А затем уже эту переменную умножать на 2. Получим запись вида: ={=Variable:Variable2}*2, где в переменной Variable2 хранится значения вычисления функции: =datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a").

Для выполнения простых операций (сложение, вычитание и т.д.) используйте действие Математические операции.



Курсы разработаны в компании «1С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше!

Мы благодарны Вам за помощь в улучшении документации.

Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас