> For the complete documentation index, see [llms.txt](https://docs.intellectdialog.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intellectdialog.com/integration.intellectdialog/blok-rezultat.md).

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

<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` и отображается пользователю.
