EnotPRO Logo EnotPRO

GetVarCloud

GetVarCloud — загружает значение облачной переменной в текущий контекст выполнения.

📝 Назначение

После выполнения этой реакции значение переменной становится доступным по пути ${var.тип.название}.

💡 Совет: Для загрузки одной переменной удобнее использовать макрос !{varcloud}. GetVarCloud нужен, когда:

  • Нужно загрузить несколько переменных сразу
  • Переменная используется в условиях (if, TriggerFolder, ограничения)
  • Требуется выполнить действия после загрузки (например, проверить значение и отреагировать)
  • Нужно загрузить переменную другого пользователя или чата

⚙️ Параметры

Параметр Тип Обязательный Описание
Тип переменной Выбор ✅ Да person, member, chat, global, dynamic
Название Строка ✅ Да Имя переменной для загрузки (максимум 64 символа)
ID пользователя Integer ❌ Нет Для типа person. По умолчанию — текущий пользователь
ID чата Integer ❌ Нет Для типов member и chat. По умолчанию — текущий чат

📍 Результат

После выполнения реакции значение становится доступно в переменной:

${var.тип.название}

Примеры:

${var.person.balance}     # Баланс текущего пользователя
${var.member.warns}       # Предупреждения в текущем чате
${var.chat.welcome_id}    # ID приветствия текущей группы
${var.global.counter}     # Глобальный счётчик
${var.person.${var_name}} # Динамическое имя переменной (если имя хранится в другой переменной)

📍 Подсказка: Точный путь к переменной можно посмотреть в логах после выполнения GetVarCloud (раздел var).

🧪 Примеры

Пример 1: Загрузка баланса пользователя

Задача: Перед отправкой сообщения о балансе загрузить его значение.

Реакции:

  1. GetVarCloud → Тип: person, Название: balance
  2. SendMessage → Текст: Ваш баланс: ${var.person.balance} ₽

Пример 2: Загрузка нескольких переменных

Задача: Загрузить имя, возраст и город пользователя для персонализированного сообщения.

Реакции:

  1. GetVarCloud → Тип: person, Название: name
  2. GetVarCloud → Тип: person, Название: age
  3. GetVarCloud → Тип: person, Название: city
  4. SendMessage → Текст: ${var.person.name}, ${var.person.age} лет, город ${var.person.city}

Пример 3: Использование в условии (проверка подписки)

Задача: Показать разное меню в зависимости от статуса подписки.

Реакции:

  1. GetVarCloud → Тип: person, Название: is_premium
  2. TriggerFolder с условием: Bool${var.person.is_premium} = true
  • Внутри: ShowMenu → Премиум-меню
  1. TriggerFolder с условием: NOT + Bool${var.person.is_premium} = true
  • Внутри: ShowMenu → Обычное меню

Пример 4: Загрузка переменной другого пользователя

Задача: Администратор проверяет баланс другого пользователя.

Реакции:

  1. GetVarCloud → Тип: person, Название: balance, ID пользователя: ${target_user.id}
  2. SendMessage → Текст: Баланс пользователя: ${var.person.balance} ₽

Пример 5: Загрузка переменной чата

Задача: Проверить, включён ли в группе режим «тихий час».

Реакции:

  1. GetVarCloud → Тип: chat, Название: quiet_mode
  2. TriggerFolder с условием: Bool${var.chat.quiet_mode} = true
  • Внутри: SendMessageСейчас режим "тихий час", сообщения ограничены

Пример 6: Проверка существования переменной

Задача: Если переменная не существует — установить значение по умолчанию.

Реакции:

  1. GetVarCloud → Тип: person, Название: score
  2. TriggerFolder с условием: Has${var.person.score}
  • (условие false — переменной нет)
  • Внутри: SetVarCloud → Тип: person, Название: score, Значение: 0

⚖️ Сравнение: GetVarCloud vs макрос !{varcloud}

Характеристика GetVarCloud !{varcloud}
Способ вызова Реакция в триггере Встраивается в текст
Загрузка в контекст ✅ Да (через ${var...}) ❌ Нет (подстановка на лету)
Использование в условиях ✅ Да ❌ Нет (только в тексте)
Загрузка нескольких переменных ✅ Да (несколько реакций) ❌ Нет (только одна за раз)
Загрузка переменной другого пользователя ✅ Да (указать user_id) ❌ Нет (только текущий)
Производительность Медленнее (отдельный вызов) Быстрее (прямая подстановка)

Рекомендация по выбору:

Сценарий Использовать
Одна переменная в тексте сообщения !{varcloud}
Переменная в условии (if, TriggerFolder) GetVarCloud
Несколько переменных в одном триггере GetVarCloud
Переменная другого пользователя GetVarCloud
Сложная логика после загрузки GetVarCloud

🔗 Связанные реакции

  • SetVarCloud — создать/изменить переменную
  • AddVarCloud — добавить к переменной
  • DelVarCloud — удалить переменную
  • DelVarLocal — удалить локальную переменную

🔗 Связанные разделы

© 2025 EnotPRO. Все права защищены.