Тема
Переменная
Скрытый шаг: записать или изменить значение переменной без вопроса пользователю.
Когда ставить
Задать метку сценария («тариф = pro»), стартовое число, дату или время. Тем же блоком дальше по ветке можно снова пройти «Переменную» и перезаписать или пересчитать уже объявленное значение.
Менять можно только переменные, которые завели этим же блоком «Переменная» на пути от «Начала». Ответы вопросов, калькулятор и таймер этим блоком не правятся — у них свои имена и свои блоки.
Имя должно быть уникальным среди объявлений в проекте. Нельзя занимать служебные имена (подробнее).
Конструктор
Вход сверху. Один выход дальше.
Редактор
Если на пути от «Начала» уже есть переменная типа строка, число, дата или время, сверху появится список. Выберите её или «Завести новую».
Первый блок с «Завести новую» объявляет переменную. Следующие блоки с выбором этой переменной меняют значение в момент прохождения.
Завести новую
| Поле | Зачем |
|---|---|
| Имя переменной | Как обращаться через @. Латиница, цифры и _ |
| Тип переменной | Строка, Число, Дата, Диапазон дат, Время, Диапазон времени, Диапазон чисел |
| Начальное значение | Что записать, когда пользователь дошёл до этого блока |
Смена типа очищает начальное значение. Переменная появляется в квизе только после прохождения блока, который её завёл.
| Тип | Как задать начальное значение |
|---|---|
| Строка | Текст |
| Число | Число |
| Дата | Дата и время в календаре |
| Время | Время суток (часы, минуты, секунды) |
| Диапазон дат | Два конца в календаре, начало не позже конца |
| Диапазон времени | Два момента в одних сутках, начало не позже конца |
| Диапазон чисел | Два числа «от» и «до» |
Диапазон дат, диапазон времени и диапазон чисел этим блоком только объявляют. Позже изменить их вторым блоком «Переменная» нельзя.
Изменить существующую
Тип и имя берутся с блока, который переменную завёл. Ниже — что можно настроить в каждом типе.
Строка
Поле «Значение» — готовый текст. Каждый проход этого блока полностью заменяет строку, старое значение не дописывается.
| Приём | Пример |
|---|---|
| Обычный текст | Тариф Pro |
| Другая переменная | @plan — подставится её текущее значение на ветке |
| Число как текст | @sum или @sum[string] — см. переменные |
| Та же переменная | @имя этой переменной — значение до этого блока; удобно собирать текст по частям |
| Пустое поле | Допустимо — запишется пустая строка |
Начните ввод с @ и выберите переменную из списка. В шаблоне можно несколько @ подряд: Тариф @plan, скидка @discount %.
Число
Поле «Формула» — как в калькуляторе. Результат заменяет прежнее число в переменной.
Операции в формуле
| Операция | Как писать | Пример |
|---|---|---|
| Сложение | + | @price + @tax |
| Вычитание | - | @total - @discount |
| Умножение | * | 2 * @price — знак обязателен |
| Деление | / | @sum / 2 |
| Скобки | ( ) | (@a + @b) * 2 |
| Минус перед числом | - | -@price |
Числа в формуле: 10 или 10.5. Пробелы не важны.
Откуда брать числа в формуле
- переменные типа число —
@sum; - конвертеры у дат и диапазонов — например
@period[count_day],@range[first](справка по@); - та же переменная —
@имяв формуле для этой переменной: значение до этого блока, например@score + 10.
Если переменная в формуле ещё пустая или не число, в расчёте она считается 0. Деление на ноль и ошибка формулы дают 0, квиз не останавливается.
Округление
| Поле | Зачем |
|---|---|
| Знаков после запятой | Сколько оставить в результате; 0 — целое |
| Округление | При нуле знаков: вниз, обычное, вверх или отбросить дробь |
Дата
Переключатель «Операция»: Переопределить, Добавить или Вычесть.
Переопределить
Календарь «Новая дата» — дата и время целиком. Старое значение не важно: записывается выбранный момент.
Добавить / Вычесть
Три поля: Дни, Часы, Минуты. В каждом:
- пусто — считается 0;
- целое число, например
7(неделя); - одна числовая
@переменная, например@shift_daysили@period[count_day].
Добавить сдвигает дату вперёд, Вычесть — назад. Если даты в переменной ещё не было, прибавление и вычитание ничего не меняют — сначала задайте дату блоком Переопределить или при «Завести новую».
Время
Тот же принцип, что у даты: Переопределить, Добавить, Вычесть.
Переопределить
«Новое время» — часы, минуты, секунды в пределах суток.
Добавить / Вычесть
Поля Часы, Минуты, Секунды — целое, @переменная или пусто (= 0).
Если времени ещё не было, для прибавления и вычитания оно считается полночью (00:00:00). Сутки закольцованы: 23:00 плюс 2 часа → 01:00.
В текстах @имя покажет часы и минуты; полный вид — @имя[hhmmss] (переменные).
Несколько блоков на одной ветке
Типичная схема:
- Завести новую —
@totalчисло, начальное0. - Пользователь отвечает, калькулятор пишет в другую переменную.
- Снова Переменная, выбрать
@total, формула@total + @answer_score. - Условие сравнивает
@total.
Каждый блок «Изменить существующую» срабатывает в порядке прохождения. В webhook и заявке уходит последнее значение на момент прохождения.
Как видит пользователь
Пользователь этот блок не видит. Значение записывается на сервере, прохождение сразу идёт дальше. Подставить результат в текст — через @ (переменные).
Соседние блоки
Разовый расчёт в новую переменную без цепочки правок — Калькулятор. Ветки по значению — Условие, Переключатель.
Чтобы человек сам ввёл значение — Строка, Число, Дата, Время и блоки диапазонов.