Переменные
Переменные — раздел для хранения различных типов данных длительное время.
Типы
| Тип | Описание |
|---|---|
| Пользователь | переменная пользователя бота, доступна везде. |
| Участник/подписчик | переменная участника чата, доступна в конкретном чате. |
| Группа/канал | переменная чата, доступна всем в конкретном чате. |
| Динамические | переменная, значение которой собирает триггер. |
| Глобальные | единая переменная для всех пользователей. |
Типы данных
Тип данных задаётся при создании переменной и в дальнейшем не меняется.
| Тип данных | Описание |
|---|---|
| Логический | хранение параметра профиля: ✅ или 🚫 |
| Целое число | хранение данных в числовом формате |
| Дробное число | хранение числовых данных в дробном формате |
| Строка | хранение данных в текстовом формате |
| 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с, а сбросить кнопкой «Обнулить» |
| Удалить | Безвозвратное удаление переменной вместе с её триггером сборки |
| Триггер сборки | Переход в триггер, который вычисляет значение переменной |
Пример использования:
- Создать динамическую переменную, например
rates, и задать уникальный ключ — скажем,${target.chat.id} - В триггере сборки собрать значение и сохранить его реакцией
SetVarCloud→ Тип:dynamic, Название:rates - Обращение:
GetVarCloud, а затем${var.dynamic.rates}
💡 Совет: Динамические переменные — это кэш вычисляемого значения. Для временных данных внутри одного запуска используйте локальные переменные, для постоянных данных —
person,member,chatилиglobal.
⚠️ Важно: Значение собирается заново только при обращении через
GetVarCloud(а также черезAddVarCloud, если время хранения истекло). Макрос!{varcloud}триггер сборки не запускает: он отдаёт уже сохранённое значение, а если записи нет или она устарела — пустую строку. Условие VarCloudValue триггер тоже не запускает, поэтому режимHasдля динамических переменных недоступен.
Глобальные
Интерфейс
| Функция | Описание |
|---|---|
| Переименовать | Изменение названия переменной, по которому будет доступно её значение |
| Описание | Описание переменной |
| Время хранения | Длительность жизни значения переменной, через которую значение станет автоматически недоступно. По умолчанию не задано. Максимально сейчас можно установить 7 суток. Время можно ввести текстом в формате: 1д2ч3м4с, а сбросить кнопкой «Обнулить» |
| Удалить | Безвозвратное удаление переменной |
| Значение переменной | Просмотр и изменение значения прямо из админки, без запуска реакций |
Глобальные переменные — это переменные, общие для всех пользователей бота. Значение глобальной переменной одинаково для всех.
Когда использовать:
- Счётчик запусков бота
- Режим обслуживания (включён/выключен)
- Общие настройки, которые меняются редко
- Статистика по всему боту
Особенности:
| Особенность | Описание |
|---|---|
| Время жизни | Постоянно, если не задано время хранения |
| Область видимости | Доступна из любого триггера, для любого пользователя |
| Привязка | Не привязана к пользователю или чату |
| Изменение | Меняется для всех одновременно |
Пример использования:
AddVarCloud→ Тип:global, Название:total_users, Значение:1- Доступ:
!{varcloud|type: global; name: total_users}
Рекомендации при работе с переменными
Рекомендуется
- Использовать в названии переменной латинские или русские буквы, при необходимости цифры,
_и-: sum, text, SumText, ProfileText, sum_2.- Давать переменным разные названия в пределах одного типа.
Не рекомендуется
- Использовать переменные раздела для хранения временных значений. Для хранения таких значений необходимо использовать локальные переменные.
- Использовать переменные пользователя для хранения значений, одинаковых для всех пользователей бота. Для хранения таких значений необходимо использовать глобальные переменные.
⚠️ Важно: Название переменной ограничено 64 символами, пробелы и эмодзи в нём не допускаются — бот сообщит об ошибке. Одинаковые названия в пределах одного типа платформа не запрещает, но макрос
!{varcloud|name: …}возьмёт одну из таких переменных, и заранее неизвестно какую.
Реакции
| Реакция | Описание |
|---|---|
| SetVarCloud | Задать значение переменной |
| AddVarCloud | Изменить значение переменной |
| DelVarCloud | Удалить значение переменной |
| GetVarCloud | Загрузить значение переменной |
Условия
| Условие | Описание |
|---|---|
| VarCloudValue | Проверить значение переменной или то, что она вообще заполнена |




