--- url: /templates/storage/parameters.md description: >- Параметры действий — как передавать данные от команды к кнопкам ее сообщения и между действиями цепочки run. --- # Параметры

Параметры — это временная «сумка» для данных, которые нужно передать дальше: от команды — к кнопкам под ее сообщением, от одного действия — к другому. В отличие от атрибутов, параметры живут недолго: 15 минут с последнего обращения.

## Сохранить и прочитать { #store } ```template {% do parameters.store('memberId', arguments.targetMember.id) %} {{ parameters.get('memberId') }} {{ parameters.memberId }} ``` | Запись | Что делает | |---|---| | `parameters.store(ключ, значение)` | Сохранить значение | | `parameters.get(ключ)` | Прочитать значение | | `parameters.ключ` | То же, короче | Хранить можно числа, строки, участников, роли бота и топики. ## Куда попадают параметры { #flow } **От сообщения — к его кнопкам.** Если действие отправило сообщение, все, что оно сохранило через `store`, бот привязывает к этому сообщению. Когда кто-то нажмет кнопку под ним, действие кнопки получит эти параметры. ```text !бан @ivan спам └─ «Спросить»: store('memberId', …), store('reason', 'спам') → сообщение с кнопками ├─ [Забанить] → действие «Бан»: parameters.memberId, parameters.reason └─ [Отмена] → действие «Отмена» ``` **Между действиями цепочки.** Действие, запущенное через `run`, видит параметры запустившего и может получить дополнительные через `with`: ```template {% run 'ae04dfed-e19c-49d3-84fc-b05cec59976e' with { page: 0 } %} ``` ## Время жизни { #ttl } Параметры хранятся 15 минут с последнего обращения. Каждое чтение продлевает срок. Если кнопку нажали через час после отправки сообщения и за это время к параметрам никто не обращался, они уже пусты — учитывайте это и подставляйте значения по умолчанию: ```template {% set page = parameters.get('page') ?: 0 %} ``` ::: tip Параметры или атрибуты? * **Параметры** — для короткой передачи данных между шагами одной «сессии»: номер страницы, кого банят, что выбрали в меню. * **[Атрибуты](./attributes)** — для того, что нужно помнить долго: баланс, уровень в игре, анкета. :::