EnotPRO Logo EnotPRO

Переменные

Переменные — раздел для хранения различных типов данных длительное время.

Типы

Тип Описание
Пользователь переменная пользователя бота, доступна везде.
Участник/подписчик переменная участника чата, доступна в конкретном чате.
Группа/канал переменная чата, доступна всем в конкретном чате.
Динамические переменная, значение которой собирает триггер.
Глобальные единая переменная для всех пользователей.

Типы данных

Тип данных задаётся при создании переменной и в дальнейшем не меняется.

Тип данных Описание
Логический хранение параметра профиля: ✅ или 🚫
Целое число хранение данных в числовом формате
Дробное число хранение числовых данных в дробном формате
Строка хранение данных в текстовом формате
json хранение сразу целых разделов данных
yaml хранение объектов языка программирования yaml
Список json хранение списков объектов json
Список yaml хранение списков объектов yaml

Загрузить или отобразить содержимое переменной можно 2 способами:

  • С помощью реакции GetVarCloud — значение попадает в контекст, и дальше к нему обращаются как ${var.тип.название}
  • С помощью макроса varcloud — значение подставляется прямо в текст, в контекст не попадает

💡 Совет: Если значение нужно только показать в сообщении, короче и быстрее макрос !{varcloud}. GetVarCloud нужен, когда значение используется дальше: в условиях, в вычислениях, в других реакциях, а также когда за раз загружается несколько переменных или переменная другого пользователя.

После GetVarCloud путь к значению складывается из типа переменной и её названия — ${var.тип.название}. У макроса те же тип и название передаются параметрами:

Тип переменной После GetVarCloud Макрос
Пользователь ${var.person.balance} !{varcloud|type: person; name: balance}
Участник/подписчик ${var.member.warns} !{varcloud|type: member; name: warns}
Группа/канал ${var.chat.quiet_mode} !{varcloud|type: chat; name: quiet_mode}
Динамические ${var.dynamic.rates} !{varcloud|type: dynamic; name: rates}
Глобальные ${var.global.total_users} !{varcloud|type: global; name: total_users}

Название здесь — то, которое вы задали переменной при создании. Если тип не указан, макрос считает переменную переменной пользователя, а userid и chatid берёт из текущего контекста — подробности в описании макроса varcloud.

Пользователь

Интерфейс

Функция Описание
Переименовать Изменение названия переменной, по которому будет доступно её значение
Описание Описание переменной
Время хранения Длительность жизни значения переменной, через которую значение станет автоматически недоступно. Максимально сейчас можно установить 7 суток. Время можно ввести текстом в формате: 1д2ч3м4с, а сбросить кнопкой «Обнулить»
Удалить Безвозвратное удаление переменной

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

После использования реакции GetVarCloud, значение переменной будет доступно по адресу: ${var.person.названиеПеременной}

Участник-подписчик

Интерфейс

Функция Описание
Переименовать Изменение названия переменной, по которому будет доступно её значение
Описание Описание переменной
Время хранения Длительность жизни значения переменной, через которую значение станет автоматически недоступно. Максимально сейчас можно установить 7 суток. Время можно ввести текстом в формате: 1д2ч3м4с, а сбросить кнопкой «Обнулить»
Удалить Безвозвратное удаление переменной

Переменная участник/подписчик — привязывается к пользователю и к чату.

После использования реакции GetVarCloud, значение переменной будет доступно по адресу: ${var.member.названиеПеременной}

Группа-канал

Интерфейс

Функция Описание
Переименовать Изменение названия переменной, по которому будет доступно её значение
Описание Описание переменной
Время хранения Длительность жизни значения переменной, через которую значение станет автоматически недоступно. Максимально сейчас можно установить 7 суток. Время можно ввести текстом в формате: 1д2ч3м4с, а сбросить кнопкой «Обнулить»
Удалить Безвозвратное удаление переменной

Переменная группа/канал — переменная, привязывается к группе или каналу. Значение переменной будет меняться в зависимости от места, где она будет вызываться.

После использования реакции ⚡GetVarCloud, значение переменной будет доступно по адресу: ${var.chat.названиеПеременной}

Динамические

Интерфейс

Динамические переменные — это переменные, значение которых собирает триггер, а не реакции в обычных сценариях. При создании такой переменной платформа автоматически заводит для неё триггер сборки: он вызывается тогда, когда значение понадобилось, и сохраняет результат. Дальше это значение отдаётся из хранилища, пока не истечёт время хранения.

Динамическая переменная не привязана к пользователю или чату — вместо этого записи различаются уникальным ключом. Ключ поддерживает подстановку переменных, поэтому одна и та же динамическая переменная может хранить разные записи: например, свою для каждого чата или для каждого города.

Когда использовать:

  • Для данных, которые дорого получать каждый раз: ответ стороннего сервиса, курс валют, расписание
  • Для значений, которые должны обновляться не чаще, чем раз в заданный промежуток времени
  • Для общих для нескольких пользователей данных, которые считаются по одному и тому же алгоритму

Особенности:

Особенность Описание
Время жизни До окончания времени хранения; после этого при следующем обращении значение соберётся заново
Область видимости Доступна из любого триггера, значение выбирается по уникальному ключу
Привязка Не привязана к пользователю или чату, привязана к уникальному ключу
Очистка По истечении времени хранения или кнопкой «Сбросить записи»
Функция Описание
Переименовать Изменение названия переменной, по которому будет доступно её значение
Описание Описание переменной
Уникальный ключ Ключ, по которому различаются записи переменной. Поддерживает подстановку переменных. Максимальная длина: 256
Сбросить записи Удаление всех сохранённых значений переменной без удаления самой переменной
Время хранения Через какое время значение считается устаревшим и собирается заново. Максимально сейчас можно установить 7 суток. Время можно ввести текстом в формате: 1д2ч3м4с, а сбросить кнопкой «Обнулить»
Удалить Безвозвратное удаление переменной вместе с её триггером сборки
Триггер сборки Переход в триггер, который вычисляет значение переменной

Пример использования:

  1. Создать динамическую переменную, например rates, и задать уникальный ключ — скажем, ${target.chat.id}
  2. В триггере сборки собрать значение и сохранить его реакцией SetVarCloud → Тип: dynamic, Название: rates
  3. Обращение: GetVarCloud, а затем ${var.dynamic.rates}

💡 Совет: Динамические переменные — это кэш вычисляемого значения. Для временных данных внутри одного запуска используйте локальные переменные, для постоянных данных — person, member, chat или global.

⚠️ Важно: Значение собирается заново только при обращении через GetVarCloud (а также через AddVarCloud, если время хранения истекло). Макрос !{varcloud} триггер сборки не запускает: он отдаёт уже сохранённое значение, а если записи нет или она устарела — пустую строку. Условие VarCloudValue триггер тоже не запускает, поэтому режим Has для динамических переменных недоступен.

Глобальные

Интерфейс

Функция Описание
Переименовать Изменение названия переменной, по которому будет доступно её значение
Описание Описание переменной
Время хранения Длительность жизни значения переменной, через которую значение станет автоматически недоступно. По умолчанию не задано. Максимально сейчас можно установить 7 суток. Время можно ввести текстом в формате: 1д2ч3м4с, а сбросить кнопкой «Обнулить»
Удалить Безвозвратное удаление переменной
Значение переменной Просмотр и изменение значения прямо из админки, без запуска реакций

Глобальные переменные — это переменные, общие для всех пользователей бота. Значение глобальной переменной одинаково для всех.

Когда использовать:

  • Счётчик запусков бота
  • Режим обслуживания (включён/выключен)
  • Общие настройки, которые меняются редко
  • Статистика по всему боту

Особенности:

Особенность Описание
Время жизни Постоянно, если не задано время хранения
Область видимости Доступна из любого триггера, для любого пользователя
Привязка Не привязана к пользователю или чату
Изменение Меняется для всех одновременно

Пример использования:

  1. AddVarCloud → Тип: global, Название: total_users, Значение: 1
  2. Доступ: !{varcloud|type: global; name: total_users}

Рекомендации при работе с переменными

Рекомендуется

  • Использовать в названии переменной латинские или русские буквы, при необходимости цифры, _ и -: sum, text, SumText, ProfileText, sum_2.
  • Давать переменным разные названия в пределах одного типа.

Не рекомендуется

  • Использовать переменные раздела для хранения временных значений. Для хранения таких значений необходимо использовать локальные переменные.
  • Использовать переменные пользователя для хранения значений, одинаковых для всех пользователей бота. Для хранения таких значений необходимо использовать глобальные переменные.

⚠️ Важно: Название переменной ограничено 64 символами, пробелы и эмодзи в нём не допускаются — бот сообщит об ошибке. Одинаковые названия в пределах одного типа платформа не запрещает, но макрос !{varcloud|name: …} возьмёт одну из таких переменных, и заранее неизвестно какую.

Реакции

Реакция Описание
SetVarCloud Задать значение переменной
AddVarCloud Изменить значение переменной
DelVarCloud Удалить значение переменной
GetVarCloud Загрузить значение переменной

Условия

Условие Описание
VarCloudValue Проверить значение переменной или то, что она вообще заполнена
© 2025 EnotPRO. Все права защищены.