Начать бесплатно Войти
Начать бесплатно Войти

Программатор

Блок производит математические и логические операции с числами, строками и переменными из доступных в Конструкторе ботов. Поддерживает код на языке JavaScript. Когда сценарий доходит до блока «Программатор», система выполняет вычисления внутри блока и подставляет на место локальной переменной значения из результата. Настройка блока «Программатор» 1. В Редакторе сценариев добавьте на рабочую область блок «Программатор».   2. Нажмите «Настроить конфигурацию». В поле «Код» введите код на языке JavaScript.   3. В конце перечислите переменные через запятую в функции save. Переменные должны быть заключены в фигурные, а затем в круглые скобки — ({переменная1, переменная2, переменная3}). Пример:

save({a, b, c}).

 4. Если код введён с ошибками, они выделятся в поле «Код». В поле «Отладчик» появится сообщение об ошибке.   5. Нажмите «Тестирование», чтобы проверить выполнение кода. Результат отобразится в поле «Отладчик».   6. Если код выполняется без ошибок, нажмите «Сохранить». Доступные функции Математические Для работы со строками   Для работы с регулярными выражениями Для работы с датой и временем Пример: сегодня вторник 02.12.2025, weekday_date(4) вернёт 04.12.2025; Пример: сегодня 2 декабря 2025 года, month_date(5) вернет 05.12.2025; Обработка ошибок с помощью try...catch Чтобы обработать ошибки в коде, можно использовать конструкцию try...catch. При возникновении ошибки в блоке try запустится выполнение блока catch. В блоке try нужно написать код, а в блоке catch — что делать, если возникнет ошибка: 1. Код выполняется внутри блока try. 2. Если ошибок нет, то блок catch игнорируется. 3. Если возникнет ошибка, то начинает работать блок catch. 4. Переменная err будет содержать сообщение об ошибке.   Пример сценария в Конструкторе ботов Блок может понадобиться, например, если нужно посчитать количество дней до дня рожденья и передать результаты вычислений в следующие блоки. В таком случае код Программатора будет выглядеть так:

let a = '{{str1}}'

r3 = birthdate(a)

sale = random(11111, 99999)

save({r3, sale})

В приведенном ниже сценарии: 1. Клиенту предлагается тип подарка: купон или скидка на день рожденья. В блоке «Условие» указаны два варианта развития сценария.   2. Если клиент пишет «день рождения», ему отправляется сообщение с запросом даты рождения. 3. После получения сообщения с датой, блок «Программатор» вычисляет количество дней до нее и вносит результат в строковую переменную '{{str1}}'. Также генерирует случайное число для скидки в переменную '{{sale}}' и количество дней до скидки в '{{r3}}'. 4. Блок «Изменить переменную» заменяет значение даты рождения. 5. Клиенту отправляется сообщение с количеством дней до активации скидки — его дня рождения. Значение берется из переменной '{{r3}}'. 6. В CRM-системе создается задача — отправить клиенту скидку в день рождения.   7. Если клиент пишет «купон», ему отправляется сообщение про получение стандартной скидки 15%; 8. В CRM-системе создается задача — отправить купон на скидку.   9. В конце обоих веток сценария происходит возврат в начало.