top

Поддержка24

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

Рейтинг:

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

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

В каждом поле можно использовать сразу несколько разных вычислений. В случае, если нужно не только произвести вычисление, но так же вывести дополнительные данные (значение переменных, текст), то необходимо использовать оператор конкатенации (&), а текст писать в кавычках (").

Пример: ="Ответ:" & (1+3) или ="Автор: " & {=Document:CREATED_BY} & ", " & "Конечный срок: " & Dateadd({=Document:DATE_CREATE}, "1d")

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

Синтаксис символьных операторов аналогичен синтаксису соответствующих php-функций.

Доступны следующие операторы:

  • + - сложение;
  • - - вычитание;
  • * - умножение;
  • / - деление;
  • = - равно;
  • <> - не равно;
  • < - меньше;
  • > - больше;
  • <= - меньше или равно;
  • >= - больше или равно;
  • () - порядок действий;
  • & - оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента;
  • ^ - возведение в степень;
  • % - вычисление процентов;
  • true - правда;
  • false - ложь;
  • and - логический оператор И;
  • or - логический оператор ИЛИ.

    Пример: =if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no")
  • not - отрицание;
  • min - наименьшее значение;
  • abs - вычисление модуля;
  • dateadd - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.

    Синтаксис: =dateadd([начальная_дата], [что_добавлять]);

    Варианты написания: y, year, years, m, month, months, d, day, days, h, hour, hours, i, min, minute, minutes, s, second, seconds.
    При написании можно использовать верхний или нижний регистр.

    Примеры: =Dateadd({=Document:DATE_CREATE}, "-2d"), =Dateadd({=Document:DATE_CREATE}, "2 days 3 minutes").

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

    Например: =DateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")
  • datediff - Позволяет вычислить разницу между двумя датами.

    Синтаксис: =datediff([первая дата], [вторая дата], [как выводить разницу]);

    Разницу можно выводить в разных единицах, в зависимости от решаемых вами задач.

    Примеры: =datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days')

  • if - условие.

    Синтаксис: =if([условие], [результат_в_случае_выполнения_условия], [результат_в_случае_не_выполнения_условия]);

    Пример: =if ({=Variable:Variable1_printable}>0, "да", "нет")

    При сравнении значений переменных также возможно сравнивать переменные с разным типом данных. Однако сравниваемые переменные должны соответствовать таблице преобразования типов (она есть в этой статье).

  • intval - возвращает целое значение переменной;

    Пример: =intval("234j4hv5jhv43v53jk4vt5hj4") вернет 234
  • substr - возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей в php, более подробно о ее возможностях вы можете прочитать здесь.

    Синтаксис: substr([входная строка], [с какого символа исходной строки начнется возвращаемая статья], [какой длины будет строка])

    Имейте в виду, что строка начинает с символа под номером 0. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

    Пример: {{=substr("0123456789", 3, 4)}} вернет 3456.

    Внимание! Если синтаксис выражения будет неправильным, то оно будет отображено как текст.

  • merge - Позволяет объединять массивы.

    Синтаксис: = merge({=массив_1}, {=массив_2});

    Пример: = merge({=Document:FILES}, {=Variable:file}).

  • AddWorkDays - функция добавляет N рабочих дней к указанной дате.

    Синтаксис: =addworkdays([дата, к которой будут добавляться дни], [количество добавляемых рабочих дней]).

    Пример:

    {{=addworkdays('07.03.2016', 1)}} - результат: 09.03.2016 00:00:00, т.к. в настройках сайта 8 марта - выходной.

    {{=addworkdays('05.02.2016 16:14:00', 1)}} - результат: т.к. 05.02.2016 - пятница, то результат: 08.02.2016 16:14:00 - понедельник.

  • isWorkDay - проверяет, является ли дата рабочим днем (по Календарю).

    Синтаксис: =if(isWorkDay([проверяемая дата]), [сообщение, если дата является рабочим днем], [сообщение, если не является]).

    Пример:

    {{=if(isWorkDay({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата 28.04.2016. Результат - Да, т.к. это рабочий день.

  • isWorkTime - аналогична функции isWorkDay, но для типов данных Дата/Время.

    Синтаксис: =if(isWorkDay([проверяемая дата со временем]), [сообщение, если дата со временем является попадает на рабочее время], [сообщение, если не попадает]).

    Пример:

    {{=if(isWorkTime({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата со временем 27.04.2016 15:00:00. Результат - Да, т.к. это рабочее время.

  • WorkDateAdd - добавляет заданное количество рабочих дней, часов и минут к указанной дате.

    Синтаксис: =WorkDateAdd([начальная_дата], [что_добавлять]).

    Варианты написания: d, day, days, h, hour, hours, i, min, minute, minutes. Допустимо написание как в верхнем, так и в нижнем регистре.

    Пример:

    =WorkDateAdd({=Template:Parameter1}, "2d") - в параметре содержится дата 28.04.2016. Результат - 02.05.2016 09:00:00, т.к. 30.04 и 1.05 - это выходные дни, то они будут пропущены. 09:00:00 - начало рабочего дня. Настроить список выходных дней и начало рабочего дня можно в Настройках портала.

  • rand - функция генерации случайного числа.

    Синтаксис: =rand([минимальное значение],[максимальное значение])

    Обязательным является только указание минимального значения. Если вы не хотите ограничивать верхнюю границу, то можете не указывать второй параметр, например =rand(17).

    Пример: =rand(0,10) - выбор числа от 0 до 10.

  • floatval - функция приведения к числу.

    Пример: =floatval('122.34343The')

  • Round - округляет число.

    Синтаксис: =round([что округляем],[количество знаков после запятой])

    По умолчанию количество знаков после запятой равно 0.

    Пример: =round(10/3,2) - получаем 3.33.

    =round(5/2) - получаем 3.

  • ceil - округление числа в большую сторону.

    Пример: =ceil(5.5) получаем 6.

  • floor - округление числа в меньшую сторону.

    Пример: =floor(5.5) получаем 5.


Рекомендую также прочитать:

Спасибо, помогло! Спасибо :) Не помогло Очень жаль :(
Уточните, пожалуйста, почему:
Это не то, что я ищу
Очень сложно и непонятно

Не нашли ответ на свой вопрос?

ЗАДАЙТЕ ВОПРОС КОМАНДЕ ПОДДЕРЖКИ24
Создавать обращения в техподдержку могут только пользователи коммерческих тарифов. Пользователи бесплатной версии имеют доступ к множеству обучающих статей и видео, а также записям вебинаров по Битрикс24. Со всеми вопросами по установке, внедрению и доработке вам помогут наши партнеры