SetVarLocal
SetVarLocal — создаёт локальную переменную или перезаписывает значение существующей.
📝 Назначение
Локальные переменные существуют только в рамках текущего триггера. После завершения триггера (включая Глобальный Триггер После) они автоматически удаляются.
Когда использовать:
- Для временного хранения промежуточных данных
- Для передачи данных между реакциями внутри одного триггера
- Для формирования сложных структур (JSON, массивов) перед отправкой
- Для кэширования результата макроса, чтобы использовать его несколько раз
⚠️ Важно: Если переменная с таким названием уже существует в текущем триггере, её значение будет полностью заменено. Для изменения значения (прибавления к числу, добавления в массив) используйте
AddVarLocal.
⚙️ Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Название | Строка | ✅ Да | Имя переменной (латиница, цифры, нижнее подчеркивание). Максимум 64 символа |
| Значение | Любой | ✅ Да | Значение для сохранения (текст, число, JSON, массив) |
| Тип данных | Выбор | ❌ Нет | auto, string, number, float, bool, json, array. По умолчанию — auto |
📊 Поддерживаемые типы данных
| Тип | Описание | Пример | Результат |
|---|---|---|---|
auto (по умолчанию) |
Автоопределение | 42 |
число (number) |
string |
Текст | "Привет" |
строка |
number |
Целое число | 100 |
целое число |
float |
Дробное число | 10.5 |
число с плавающей точкой |
bool |
Логический | true |
true / false |
json |
JSON-объект или массив | {"key": "value"} |
объект |
array |
Массив (список) | [1, 2, 3] |
массив |
💡 Совет: В 90% случаев используйте
auto. Явное указание типа нужно, если автоопределение даёт не тот результат (например,"123"как строка, а не число).
📍 Доступ к значению
После создания переменной значение становится доступным по пути:
${localVar.название}
Примеры:
${localVar.user_data} # объект
${localVar.cart_total} # число
${localVar.message_text} # строка
${localVar.items.0} # первый элемент массива
🧪 Примеры использования
Пример 1: Сохранение промежуточного вычисления
Задача: Рассчитать скидку и итоговую сумму.
Реакции в триггере:
GetVarCloud→ загружаемcart_total(облачная переменная)SetVarLocal→ название:discount, значение:!{math|${var.person.cart_total} * 0.15}SetVarLocal→ название:final, значение:!{math|${var.person.cart_total} - ${localVar.discount}}SendMessage→ текст:Итого: ${localVar.final} ₽ (скидка ${localVar.discount} ₽)
Пример 2: Сборка JSON перед отправкой в API
Задача: Подготовить данные для HTTP-запроса.
Реакции в триггере (подготовка к SendRequest):
GetVarCloud→ загружаемname,email,phoneSetVarLocal→ название:payload, значение:{"name": "${var.person.name}", "email": "${var.person.email}", "phone": "${var.person.phone}"}SendRequest→ тело запроса:${localVar.payload}
Пример 3: Кэширование результата макроса
Задача: Случайное приветствие — один раз сгенерировать, дважды использовать.
Реакции в триггере:
SetVarLocal→ название:greeting, значение:!{random.select|list: Привет!, Здравствуй!, Добрый день!}SendMessage→ текст:${localVar.greeting} ${user.name}!SendMessage→ текст:${localVar.greeting} Рады тебя видеть!
💡 Без локальной переменной: макрос
!{random.select}выполнился бы дважды, и приветствия могли бы быть разными.
Пример 4: Сборка многострочного сообщения
Задача: Сформировать отчёт из нескольких частей.
Реакции в триггере:
GetVarCloud→ загружаемbalance,orders_count,last_orderSetVarLocal→ название:report, значение:📊 Ваш отчёт:\nБаланс: ${var.person.balance} ₽\nЗаказов: ${var.person.orders_count}\nПоследний заказ: ${var.person.last_order}SendMessage→ текст:${localVar.report}
Пример 5: Создание массива
Задача: Сохранить список ID товаров для последующей обработки.
Реакции в триггере:
SetVarLocal→ название:product_ids, значение:[123, 456, 789], тип:array- (Далее можно перебирать массив или передавать в HTTP-запрос)
🔄 Сравнение с SetVarCloud
| Характеристика | SetVarLocal | SetVarCloud |
|---|---|---|
| Время жизни | До конца триггера | Постоянно (до удаления) |
| Доступность | Только в текущем триггере | В любом триггере |
| Требует загрузки | Нет (доступна сразу) | Да (GetVarCloud) |
| Автоудаление | ✅ Да | ❌ Нет |
| Назначение | Временные данные | Постоянные данные (баланс, настройки) |
💡 Совет: Если данные нужны только внутри текущего обработчика — используйте
SetVarLocal. Если данные нужно сохранить между разными вызовами бота — используйтеSetVarCloud.
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| AddVarLocal | Изменить значение (прибавить, добавить в массив) |
| DelVarLocal | Удалить локальную переменную |
| SetVarCloud | Создать облачную переменную |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Локальные переменные | Общая информация о локальных переменных |
| Облачные переменные | Постоянное хранение данных между триггерами |
| Макрос math | Вычисления для значений |
| Макрос random | Генерация случайных значений |
🔗 Быстрая навигация
- Вверх
- Параметры
- Типы данных
- Доступ к значению
- Примеры
- Сравнение
- Частые ошибки