DelVarCloud
DelVarCloud — полностью удаляет облачную переменную и все её данные.
📝 Назначение
Используется для:
- Очистки устаревших данных пользователя
- Сброса состояния после завершения сценария
- Удаления временных переменных с истёкшим сроком жизни
- Очистки глобальных счётчиков при сбросе статистики
🔴 Критически важно: Операция необратима. Восстановить удалённую переменную можно только повторным сохранением через
SetVarCloudилиAddVarCloud.
⚙️ Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Тип переменной | Выбор | ✅ Да | person, member, chat, global, dynamic |
| Название | Строка | ✅ Да | Имя переменной для удаления (максимум 64 символа) |
| ID пользователя | Integer | ❌ Нет | Для типа person. По умолчанию — текущий пользователь |
| ID чата | Integer | ❌ Нет | Для типов member и chat. По умолчанию — текущий чат |
🧪 Примеры
Пример 1: Сброс временного состояния после завершения формы
Задача: Пользователь прошёл многошаговую форму. После финиша нужно удалить временные данные.
Реакция DelVarCloud в триггере «Финиш формы»:
- Тип:
person - Название:
temp_form_data
Результат: Переменная temp_form_data удалена.
Пример 2: Очистка одноразового бонуса после получения
Задача: Пользователь получил приветственный бонус. После начисления бонус нужно удалить, чтобы нельзя было получить повторно.
Реакции в обработчике получения бонуса:
GetVarCloud→ Тип:person, Название:welcome_bonus_claimed- Условие: если переменная не существует (проверка
Has→false) AddVarCloud→ начисление бонусаSetVarCloud→ установка флага: Тип:person, Название:welcome_bonus_claimed, Значение:true
💡 Совет: Используйте переменную-флаг для отслеживания, а не удаляйте её после каждого использования.
Пример 3: Очистка списка пользователей в чате
Задача: В чате ведётся список нарушителей. После снятия ограничений список нужно очистить.
Реакция DelVarCloud:
- Тип:
chat - Название:
violators
Результат: Переменная violators в текущем чате удалена.
Пример 4: Удаление переменной другого пользователя (администратор)
Задача: Администратор сбрасывает баланс пользователя, удаляя переменную.
Реакция DelVarCloud:
- Тип:
person - Название:
balance - ID пользователя:
${target_user.id}
Результат: У пользователя target_user переменная balance удалена.
Пример 5: Очистка глобального таймера
Задача: В боте действует глобальный режим обслуживания. После отключения режима нужно удалить глобальную переменную.
Реакция DelVarCloud:
- Тип:
global - Название:
maintenance_mode
Результат: Глобальная переменная maintenance_mode удалена. Все проверки на её существование теперь будут возвращать false.
🔍 Проверка существования переменной перед удалением
Перед удалением полезно проверить, существует ли переменная:
Вариант 1: Через условие
GetVarCloud→ загрузить переменную- Условие
Has→${var.person.target_var} - Внутри условия →
DelVarCloud
Вариант 2: Игнорировать (безопасно)
- Если переменной не существует,
DelVarCloudничего не делает и не вызывает ошибку.
💡 Совет: Явная проверка не обязательна.
DelVarCloudбезопасно вызывать даже для несуществующих переменных.
⚠️ Важное предупреждение о контексте
Если значение переменной было загружено в контекст через GetVarCloud до удаления, оно останется доступным в текущем триггере через ${var...}, даже после вызова DelVarCloud.
Пример проблемы:
GetVarCloud→ загружена переменнаяbalance=100DelVarCloud→ переменная удалена из хранилищаSendMessage→ текст:Ваш баланс: ${var.person.balance}→ выведет100(старое значение из контекста)
Как избежать:
- Вызывайте
DelVarCloudдоGetVarCloud, если нужно гарантировать отсутствие значения - Или не используйте переменную после удаления в том же триггере
🔍 Как проверить, что переменная удалена
Способ 1: Через макрос с default
Переменная: !{varcloud|name: temp_data|default: [не существует]}
Если переменная удалена, вы увидите [не существует].
Способ 2: Через условие Has
GetVarCloud→ Тип:person, Название:temp_data- Условие
Has→${var.person.temp_data}
- Если условие
false→ переменной нет
Способ 3: Проверка в админке
Перейдите в /adm → Переменные → выберите тип (person/member/chat) → найдите переменную в списке. Если её нет — она удалена.
🔗 Связанные реакции
- SetVarCloud — создать переменную
- AddVarCloud — изменить переменную
- GetVarCloud — загрузить значение и проверить существование
- DelVarLocal — удалить локальную переменную
🔗 Связанные разделы
- Облачные переменные — общая информация
- Переменные в админке — просмотр существующих переменных
- Условие Has — проверка существования переменной