AddVarCloud
AddVarCloud — изменяет значение облачной переменной, не заменяя его полностью.
📝 Назначение
Используется для накопления данных: счётчиков, списков, истории действий. В отличие от SetVarCloud, эта реакция изменяет существующее значение, а не перезаписывает.
💡 Совет: Это идеальный выбор для:
- Счётчиков нажатий (
+1каждый раз) - Накопления суммы покупок
- Добавления элементов в массив (история заказов)
- Объединения объектов (дополнение профиля)
🟢 Важно: Если переменная не существует,
AddVarCloudсоздаст её с указанным значением (какSetVarCloud).
🔄 Поведение в зависимости от типа
| Тип переменной | Что делает | Пример |
|---|---|---|
| number (целое) | Прибавляет значение | Было 10, добавить 3 → стало 13 |
| float (дробное) | Прибавляет значение | Было 10.5, добавить 2.3 → стало 12.8 |
| string (строка) | Добавляет текст в конец | Было "Привет", добавить ", мир" → "Привет, мир" |
| array (массив) | Добавляет элемент в конец | Было [1,2], добавить 3 → [1,2,3] |
| object (JSON/YAML) | Объединяет объекты (поверхностно) | {"a":1} + {"b":2} → {"a":1, "b":2} |
| bool (логический) | Заменяет (как SetVarCloud) | true + false → false |
⚠️ Особенность: Для
boolтипаAddVarCloudработает какSetVarCloud(замена, а не логическая операция).
⚙️ Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Тип переменной | Выбор | ✅ Да | person, member, chat, global, dynamic |
| Название | Строка | ✅ Да | Имя переменной (только латиница, цифры, нижнее подчеркивание) |
| Значение | Зависит от типа | ✅ Да | Значение для добавления/прибавления |
| ID пользователя | Integer | ❌ Нет | Для типа person. По умолчанию — текущий пользователь |
| ID чата | Integer | ❌ Нет | Для типов member и chat. По умолчанию — текущий чат |
🧪 Примеры
Пример 1: Счётчик нажатий кнопки
Задача: При каждом нажатии на кнопку увеличивать счётчик.
Реакция AddVarCloud:
- Тип:
person - Название:
button_clicks - Значение:
1
Результат:
- Первое нажатие → переменная создана, значение
1 - Второе нажатие → было
1, стало2 - Третье нажатие → было
2, стало3
Отображение пользователю:
Вы нажали кнопку !{varcloud|name: button_clicks|default: 0} раз
Пример 2: Накопление суммы покупок
Задача: При каждой покупке добавлять сумму к общему балансу трат.
Реакция AddVarCloud:
- Тип:
person - Название:
total_spent - Значение:
${purchase_amount}(например,150.50)
Результат:
- Было
1000.00, добавить150.50→ стало1150.50
Пример 3: Добавление элемента в массив (история заказов)
Задача: Сохранять ID всех заказов пользователя в массиве.
Реакция AddVarCloud:
- Тип:
person - Название:
orders - Значение:
${order_id}(число, например,12345)
Результат:
- Первый заказ → переменная создана, значение
[12345] - Второй заказ → было
[12345], стало[12345, 12346] - Третий заказ → было
[12345, 12346], стало[12345, 12346, 12347]
Проверка количества заказов:
У вас !{list.len|list: !{varcloud|name: orders|default: []}} заказов
Пример 4: Добавление текста в конец строки (лог действий)
Задача: Вести лог действий пользователя.
Реакция AddVarCloud:
- Тип:
person - Название:
action_log - Значение:
\n!{time|output_format: DD.MM.YYYY hh:mm} - Нажата кнопка "Помощь"
Результат:
- Первое действие →
2026.06.02 14:30 - Нажата кнопка "Помощь" - Второе действие →
2026.06.02 14:30 - Нажата кнопка "Помощь"\n2026.06.02 14:35 - Запрошен баланс
Пример 5: Объединение JSON-объектов (дополнение профиля)
Задача: Постепенно собирать профиль пользователя из разных форм.
Шаг 1 (форма «Имя и возраст»):
- Тип:
person - Название:
profile - Значение:
{"name": "Иван", "age": 30}
Шаг 2 (форма «Город и телефон»):
- Тип:
person - Название:
profile - Значение:
{"city": "Москва", "phone": "+79991234567"}
Результат:
{
"name": "Иван",
"age": 30,
"city": "Москва",
"phone": "+79991234567"
}
Пример 6: Добавление для другого пользователя (администратор)
Задача: Администратор начисляет бонус пользователю.
Реакция AddVarCloud:
- Тип:
person - Название:
bonus - Значение:
100 - ID пользователя:
${target_user.id}
Результат: У пользователя target_user переменная bonus увеличилась на 100.
🔄 Разница между AddVarCloud и SetVarCloud
| Операция | AddVarCloud | SetVarCloud |
|---|---|---|
Число 10 → добавить 5 |
Будет 15 (прибавит) |
Будет 5 (заменит) |
Строка "A" → добавить "B" |
Будет "AB" (добавит в конец) |
Будет "B" (заменит) |
Массив [1,2] → добавить 3 |
Будет [1,2,3] (добавит элемент) |
Будет [3] (заменит) |
Объект {"a":1} → добавить {"b":2} |
Будет {"a":1, "b":2} (объединит) |
Будет {"b":2} (заменит) |
🔗 Связанные реакции
- SetVarCloud — полная замена значения
- GetVarCloud — загрузить значение
- DelVarCloud — удалить переменную
- Макрос varcloud — быстрый доступ без
GetVarCloud
🔗 Связанные разделы
- Облачные переменные — общая информация
- Переменные в админке — создание и управление через интерфейс
- Макрос list — для работы с массивами
- Макрос math — для сложных вычислений