Функции калькулятора выражений

Урок 49 из 365
Просмотров: 38116

Функции для вычислений

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

explode

explode(
   delimiter,
   str)

Функция разбивает строку с помощью разделителя. Полезна, когда нужно разбить строку и присвоить части как значение множественной переменной. Аналог explode в PHP.

Возвращает массив строк, полученных разбиением строки str с использованием delimiter в качестве разделителя.

Параметры

ПараметрОписаниеС версии
delimiter Разделитель
str Строка для разделения.

Implode

Implode(
   glue,
   pieces
) 

Объединяет множественные значения в строку. Полезна, когда нужно вывести в текст значения множественных переменных нестандартным разделителем (стандартный - просто запятая). Аналог implode в PHP.

Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со значением glue между каждым элементом.

Параметры

ПараметрОписаниеС версии
glue По умолчанию равен пустой строке.
pieces Массив объединяемых строк.

toUserDate

toUserDate(
   user,
   date=now
)

Функция приводит любое время к времени сотрудника (с учетом его часового пояса).

Параметры

ПараметрОписаниеС версии
user Пользователь, к чьему времени необходимо привести время БП.
date Начальная дата, по умолчанию - текущее время

GetUserDateOffset

GetUserDateOffset(
   user
)

Функция возвращает значение смещения часовой зоны пользователя в секундах (относительно серверного времени).

Параметры

ПараметрОписаниеС версии
user пользователь, относительно чьего времени нужно значение.

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

  • + - сложение;
  • - - вычитание;
  • * - умножение;
  • / - деление;
  • = - равно;
  • <> - не равно;
  • < - меньше;
  • > - больше;
  • <= - меньше или равно;
  • >= - больше или равно;
  • () - порядок действий;
  • & - оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента;
  • ^ - возведение в степень;
  • % - вычисление процентов;
  • 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 - начало рабочего дня. Список выходных дней и начало рабочего дня настраивается в Настройках портала.

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

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

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