# Блок: Результат

<figure><img src="/files/5Zw1QUEAkezr9BdRHljg" alt=""><figcaption></figcaption></figure>

Блок **"Результат"** предназначен для формирования и отправки текстового ответа пользователю на основании данных, сохраненных в предыдущих блоках, таких как "Сохранение". Этот блок завершает сценарий, предоставляя итоговую информацию.

**Название блока**

* **Описание:** Поле позволяет задать имя блока, чтобы его легко идентифицировать в сценарии.
* **Пример:** "Ответ", "Результат поиска", "Итоговый ответ".

***

**Поле "Текст для ответа"**

* **Описание:** Основное поле, в котором указывается текст, который будет отправлен пользователю в качестве итогового ответа.
* **Функциональность:**
  * Может содержать статический текст, если ответ всегда одинаков.
  * Может использовать динамические данные, извлеченные из переменных (например, `this.result`), чтобы формировать персонализированные ответы.
  * Поддерживает использование JavaScript-выражений для обработки данных перед отправкой.
* **Пример:**
  * Статический текст: `"Спасибо за ваш запрос. Мы скоро с вами свяжемся."`
  * Динамический текст: `"По вашему запросу найдено: " + this.result`.

***

### **Примеры**

<figure><img src="/files/shwbvxO6ybvZMhttNSvS" alt=""><figcaption></figcaption></figure>

* **Предыдущие шаги:**

  На предыдущих шагах были три блока сохранения, которые формировали различные сообщения в зависимости от условий:

  1. **Сохранение 1**: Сообщение:

     <pre class="language-javascript" data-overflow="wrap"><code class="lang-javascript">javascript
     'По вашему критерию машин не найдено. Но у нас есть следующие варианты: ' + \n + this.carList2.filter((c, i) => this.carList2.findIndex(e => e.model === c.model) === i).slice(0, 5).map((car, idx) => `${idx + 1}. Модель: ${car.brand} ${car.model}. Цена: ${car.price} рублей. Цвет: ${car.color}. Год выпуска: ${car.year}. Адрес: ${car.location}.`).join(`\n`)
     </code></pre>

     Сохраняется в переменную `result`. Это сообщение используется, если по указанным критериям нет точного соответствия, но есть другие доступные модели.
  2. **Сохранение 2**: Сообщение:

     <pre class="language-javascript" data-overflow="wrap"><code class="lang-javascript">javascript
     'По вашему запросу у нас есть такие модели:' + \n + this.carList3.map((car, idx) => `${idx + 1}. Модель: ${car.brand} ${car.model}. Цена: ${car.price} рублей. Цвет: ${car.color}. Год выпуска: ${car.year}. Адрес: ${car.location}.`).join(`\n`)
     </code></pre>

     Сохраняется в переменную `result`. Это сообщение формируется, если есть точное соответствие запросу пользователя.
  3. **Сохранение 3**: Сообщение:

     ```arduino
     arduino
     'Пожалуйста, уточните цвет машины для проверки.'
     ```

     **Сохраняется в переменную `result`.** Используется, если в запросе отсутствует уточнение цвета.

* **Блок "Результат":**

  В блоке "Результат" происходит подготовка текстового ответа пользователю на основе данных, сформированных в переменной `result`.

  **Поля блока:**

  1. **Название блока**:
     * Указывается для описания цели блока. Например: "Ответ".
  2. **Текст для ответа**:
     * Используется поле, в котором прописывается переменная `this.result`. Эта переменная содержит сформированный ранее текст из блоков сохранения.
     * Код:

       ```javascript
       javascript
       this.result
       ```

  **Логика работы:**

  1. На предыдущих шагах данные обрабатываются и сохраняются в `result` в зависимости от условий:
     * Если не найдено точное соответствие, но есть другие доступные модели — используется сообщение из **Сохранение 1**.
     * Если найдено точное соответствие запросу — используется сообщение из **Сохранение 2**.
     * Если требуется уточнение цвета — используется сообщение из **Сохранение 3**.
  2. В блоке "Результат" формируется текстовый ответ на основе переменной `result`, которая передается в поле **Текст для ответа**.
  3. Этот текст отправляется пользователю в виде итогового ответа.

  **Пример:**

  * **Ввод пользователя**: "Хочу машину красного цвета".
  * **Обработка**:
    * Если машины красного цвета нет, но есть похожие модели:

      <pre class="language-markdown" data-overflow="wrap"><code class="lang-markdown">'По вашему критерию машин не найдено. Но у нас есть следующие варианты: 
      1. Модель: Toyota Camry. Цена: 1 500 000 рублей. Цвет: белый. Год выпуска: 2020. Адрес: Москва.
      2. Модель: Honda Civic. Цена: 1 300 000 рублей. Цвет: черный. Год выпуска: 2021. Адрес: Санкт-Петербург.'
      </code></pre>
    * Если машины красного цвета есть:

      <pre class="language-vbnet" data-overflow="wrap"><code class="lang-vbnet">'По вашему запросу у нас есть такие модели:
      1. Модель: Toyota Corolla. Цена: 1 200 000 рублей. Цвет: красный. Год выпуска: 2019. Адрес: Казань.'
      </code></pre>
    * Если отсутствует указание цвета:

      <pre class="language-arduino" data-overflow="wrap"><code class="lang-arduino">'Пожалуйста, уточните цвет машины для проверки.'
      </code></pre>
  * **Ответ пользователю**:
    * Формируется через блок "Результат" на основе сохраненной переменной `result` и отображается пользователю.


---

# 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.intellectdialog.com/integration.intellectdialog/blok-rezultat.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.
