# Системные функции

{% hint style="success" %}
**Функция** - подпрограмма, которую можно вызвать. Результат выполнения функции подставляется в сообщение от бота. В функцию можно передать аргументы (параметры), от которых зависит результат выполнения функции.
{% endhint %}

{% hint style="info" %}
Арифметические операции:
{% endhint %}

Сумма чисе&#x43B;**:** `{{ sum(1, 2) }}`

Сумма пользовательских переменны&#x445;**:** `{{ sum($переменная1, $переменная2) }}`

Сумма нескольких значений: `{{ sum($переменная1, 1, 2) }}`

Псевдоним функци&#x438;**:** `{{ сумма(1, 2) }}`

Разность чисел `{{ diff(4, 2) }}`&#x20;

Разность пользовательских переменных: `{{ diff($переменная1, $переменная2) }}`

Разность нескольких значений: `{{ diff($переменная1, 1, 2) }}`

Псевдоним функции: `{{ разность(4, 2) }}`

Произведение чисел:`{{ multiplication(2, 2) }}`&#x20;

Произведение пользовательских переменных: `{{ multiplication($переменная1, $переменная2) }}`

Произведение нескольких значений: `{{ multiplication($переменная1, 1, 2) }}`

Псевдоним функции: `{{ произведение(2, 2) }}`

Деление чисел: `{{ div(4, 2) }}` -&#x20;

Деление пользовательских переменных: `{{ div($переменная1, $переменная2) }}`

Деление нескольких значений: `{{ div($переменная1, 4, 2) }}`

Псевдоним функции: `{{ деление(4, 2) }}`

Записать сумму переменных/чисел в переменную:\
`{{ setSumVariablesIntoVariable("сумма", "а", "б") }}`&#x20;

В переменную **`$cумма`** запишется сумма переменных **`$а`** и **`$б`**. В функцию передаются имена переменных в двойных кавычках или числа. Количество аргументов для передачи в функцию может быть до 100 шт.

{% hint style="info" %}
Работа с датами:
{% endhint %}

Вчера - `{{ date("d.m.Y", "yesterday") }}`&#x20;

Сегодня- `{{ date("d.m.Y", "today") }}`&#x20;

Завтра - `{{ date("d.m.Y", "tomorrow") }}`&#x20;

Послезавтра - `{{ date("d.m.Y", "+ 2 days") }}`&#x20;

Следующая среда - `{{ date("d.m.Y", "next wednesday") }}`&#x20;

Прошлая пятница - `{{ date("d.m.Y", "last friday") }}`&#x20;

Этот четверг - `{{ date("d.m.Y", "this thursday") }}`&#x20;

14 дней вперед - `{{ date("d.m.Y", "+ 14 days") }}`&#x20;

7 дней назад - `{{ date("d.m.Y", "- 7 days") }}`&#x20;

2 часа вперед - `{{ date("d.m.Y H:i:s", "+ 2 hours") }}`&#x20;

* **Часовой пояс по умолчанию UTC-0**

{% hint style="info" %}
Как обрезать часть строки:
{% endhint %}

`{{ substr($Переменная, 0, 3) }}`

где: 0 - номер символа с которого начать обрезание строки (важно! нумерация начинается с нуля, т.е. 0 - первый символ, 1 - второй символ, 2 - третий символ и т. д.); 3 - количество сиволов, которое нужно оставить в строке;

Например в переменной $Строка записано значение "abcdef"&#x20;

`{{ substr($Строка, 0, 3) }}` -> abc&#x20;

`{{ substr($Строка, 1, 2) }}` -> bc&#x20;

`{{ substr($Строка, 3) }}` -> def&#x20;

`{{ substr($Строка, -1, 1) }}` -> f&#x20;

`{{ substr($Строка, -2, 1) }}` -> e

С помощью этого решения можно, например, вырезать часть номера телефона, если он сохранён в переменной.

{% hint style="info" %}
Другое:
{% endhint %}

#### abs - абсолютное значение (модуль числа)

`{{ abs(-100) }}` – преобразует в положительное число 100

`{{ abs($число) }}` – преобразует число содержащееся в переменной «число» в положительное число

#### ceil - округление дроби в большую сторону

`{{ ceil(1.2) }}` – преобразует в целое число 2

`{{ ceil($число) }}` – преобразует число содержащееся в переменной «число» в целое число

#### floor - округление дроби в меньшую сторону

`{{ floor(1.9) }}` – преобразует в целое число 1

`{{ floor($число) }}` – преобразует число содержащееся в переменной «число» в целое число c округлением в меньшую сторону

#### max – поиск набольшего числа

`{{ max(1, 5) }}` – вернет число 5

`{{ max(1, 5, 100, 4) }}` – вернет число 100

`{{ max($число1, $число2, $число3) }}` – вернет наибольшее число содержащееся в переменных «число1», «число2», «число3»

`{{ max($число1, $число2, 100, 200) }}` – микс параметров, можно передавать «неограниченное» количество чисел и переменных

#### min – поиск наименьшего числа

`{{ min(1, 5) }}` – вернет число 1

`{{ min(1, 5, 100, 4) }}` – вернет число 1

`{{ min($число1, $число2, $число3) }}` – вернет наименьшее число содержащееся в переменных «число1», «число2», «число3»

`{{ min($число1, $число2, 100, 200) }}` – микс параметров, можно передавать «неограниченное» количество чисел и переменных

#### pow – возведение в степень

`{{ pow(2, 2) }}` – два в квадрате, вернет число 4

`{{ pow(2, 3) }}` – два в кубе, вернет число 8

`{{ pow(2) }}` – два в нулевой степени, вернет число 1

`{{ pow(($число, $степень) }}` – возведет число содержащееся в переменной «число» в степерь содержащейся в переменной «степень»

`{{ pow($число, 10) }}` – микс параметров

#### round – округление числа

`{{ round(1.123456789, 1) }}` – округлит число до 1.1

`{{ round(1.123456789, 2) }}` – округлит число до 1.12

`{{ round(1.123456789, 5) }}` – округлит число до 1.12345

`{{ round(1.49) }}` – округлит число до 1

`{{ round(1.5) }}` – округлит число до 2

`{{ round($число, $точность) }}` – округлит число содержащееся в переменной «число» с точностью содержащееся в переменной «точность»

`{{ round(1.123456789, $точность) }}` – микс праметров

#### sqrt – квадратный корень

`{{ sqrt(4) }}` – вернет 2

`{{ sqrt(100) }}` – вернет 10

`{{ sqrt(200) }}` – вернет 14.142135623731

`{{ sqrt($число) }}` – вычислит квадратный корень из числа содержащегося в переменной «число»

{% hint style="info" %}
Генератор случайных чисел и строк:
{% endhint %}

&#x20;`{{ rand() }}` - Сгенерировать случайное число

`{{ rand(5, 100) }}` - Сгенерировать случайное число от 5 до 100

`{{ strRandom() }}` - Сгенерировать случайную строку

&#x20;`{{ strRandom(20) }}` - Cгенерировать случайную строку длинной 20 символов

`{{ strRandom(20, true) }}` - Cгенерировать случайную строку длинной 20 символов заглавными буквами

{% hint style="info" %}
Сообщение для определенного мессенджера:
{% endhint %}

`{{ messageToTelegram("Сообщение") }}` - Сообщение в Telegram&#x20;

*Пример: `{{ messageToTelegram("Это сообщение отобразится только в Telegram") }}`*&#x20;

`{{ messageToViber("Сообщение") }}` - Сообщение в Viber&#x20;

*Пример: `{{ messageToViber("Это сообщение отобразится только в Viber") }}`*&#x20;

`{{ messageToWhatsApp("Сообщение") }}` - Сообщение в WhatsApp&#x20;

*Пример: `{{ messageToWhatsApp("Это сообщение отобразится только в WhatsApp") }}`*&#x20;

`{{ messageToFacebook("Сообщение") }}` - Сообщение в Facebook&#x20;

*Пример: `{{ messageToFacebook("Это сообщение отобразится только в Facebook") }}`*&#x20;

`{{ messageToIcq("Сообщение") }}` - Сообщение в ICQ&#x20;

*Пример: `{{ messageToIcq("Это сообщение отобразится только в ICQ") }}`*

{% hint style="info" %}
Счета:
{% endhint %}

`{{ getBalance("Код валюты") }}` - Получить баланс контакта&#x20;

*В гривне: `{{ getBalance("UAH") }}`*&#x20;

*В долларах: `{{ getBalance("USD") }}`*

`{{ getCartAmount() }}` – выводит общую стоимость товаров в корзине
