# Взаимодействие пользователей

С помощью [временных переменных](/sozdanie-scenariev/peremennye/vremennye-peremennye.md), а также шагов [Извлечь данные](/sozdanie-scenariev/shagi/izvlech-dannye.md) и [Сменить контекст](/sozdanie-scenariev/shagi/smena-konteksta.md) можно организовать взаимодействие несколько пользователей в беседе.

В этой статье мы рассмотрим пример, как настроить цепочку для передачи баланса между двумя пользователями.

## Создаём переменные

Для начала, если у вас ещё нет переменной баланса, создайте её:

![](/files/-M7DtFJKSaWOebESynWq)

Обратите внимание на тип переменной: Число. Кроме того, это обязательно должна быть локальная (то есть пользовательская) переменная.

Все остальные переменные будут [временными](/sozdanie-scenariev/peremennye/vremennye-peremennye.md): их не нужно создавать в разделе «Переменные». Они существуют только с момента выполнения шага, который их создаёт, до завершения обработки текущего сообщения.

## Создаём цепочку

![](/files/-M7DtqPjxbFi7oe6xIKo)

Создадим пару временных переменных для того, чтобы сохранить id страницы и имя человека, который выполняет передачу.

![](/files/-M7Dx1MOi4-ax4hC-1Vm)

{% hint style="info" %}
Для того, чтобы создать временную переменную, просто начните вводить её желаемое имя, затем нажмите «Временная переменная».

![](/files/-M7DuEbx21NNiXosa97y)
{% endhint %}

Теперь добавим шаг «Извлечь данные».

Нам нужно получить id человека, которому будет передаваться сумма, а также сама сумма. Опять воспользуемся временными переменными, чтобы не засорять общий список переменных.

![](/files/-M7DxKLeifR-aWDF1yMk)

Также поставим галочку, которая позволит нам корректно обработать ситуацию, когда команда была введена неверно:

![](/files/-M7Dy5wWRAv1jKpfL7ba)

Сохраним текущий блок и цепочку. Затем нажмём «Редактировать блок». С ним всё просто:

![](/files/-M7DyJIyhy-pPNZFG6mD)

Сохраним этот блок. Вернёмся к нашей цепочке «Передать».

Мы получили все необходимые нам данные. Теперь добавим новую группу шагов, в которой проверим, а хватает ли передающему средств на балансе.

![](/files/-M7DylXoVPEBejyVOV_Y)

Теперь, когда мы собрали все данные и убедились в их достоверности, осталось сделать самое главное — выполнить перевод.

Создаём новую группу шагов (третью по счёту) и добавляем шаг «Установить переменную». В нём мы спишем с баланса передающего указанную им сумму:

![](/files/-M7DzUTdpsad1KZqgjA9)

Затем переключимся на принимающую сторону:

![](/files/-M7DzdralS3rx-pFcNk3)

Теперь, после смены контекста, все локальные и специальные переменные относятся уже к другому человеку.

Прибавим ему баланс и оповестим об успешном переводе:

![](/files/-M7DzqzqH5vLcR_qExAJ)

## Тестируем

Запомним текущее значение переменных в разделе «Пользователи»:

![](/files/-M7E-6zP2tdzW0Zuuz0v)

Перейдём в беседу и напишем команду. Важно, чтобы принимающий перевод человек был указан именно как упоминание (введите @ и выберите пользователя, остальное ВК сделает за вас сам).

![](/files/-M7E07bNOsoVg4UfDrg_)

![](/files/-M7E0GIUahojOVTcSWfV)

Проверим результат:

![](/files/-M7E0NV0331yG8P8rEi_)

Всё верно.

В случае если на балансе будет недостаточно средств или  человек ошибётся в синтаксисе команды, бот сообщит об этом и не будет выполнять перевод:

![](/files/-M7E14LtKgWwIRN_qTS3)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.smartbot-vk.ru/moduli/modul-geimifikaciya/vzaimodeistvie-polzovatelei.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
