> 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-proverka-parametrov.md).

# Блок: Проверка параметров

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

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

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

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

  #### **Функционал блока**

  1. **Пример проверки входных данных:**
     * Блок анализирует параметры, которые передал пользователь (например, `model`, `minPrice`, `maxPrice`, `color`, `minYear`).
       * Проверяется, соответствуют ли введённые данные обязательным требованиям функций.
  2. **Работа с переменными:**
     * Блок позволяет указать, какие параметры являются обязательными на текущем шаге и должны быть предоставлены для продолжения сценария. Напоминаем, что переменные вы настраиваете в рамках функций в стартовом блоке.
     * Пример переменных :
       * **model** — Модель автомобиля.
       * **minPrice** — Минимальная цена.
       * **maxPrice** — Максимальная цена.
       * **color** — Цвет автомобиля.
       * **minYear** — Год выпуска.
  3. **Дозапрос недостающих данных:**
     * Если пользователь не указал один или несколько параметров, которые вы выбрали в блоке "Проверка параметров блок автоматически отправляет уточняющие вопросы.
     * Пример вопроса: "Какой цвет автомобиля вас интересует?"

  #### **Пример работы**

  1. **Ввод пользователя:**\
     "Мне нужна Лада Веста за 1 000 000 рублей."
     * Введённые параметры:
       * **model:** Лада Веста.
       * **minPrice:** 1 000 000.
     * Отсутствуют параметры:
       * **color**.
  2. **Действия блока:**
     * Блок определяет, что отсутствуют параметры `color` .
     * Отправляет уточняющие вопросы:
       * "Какого цвета должен быть автомобиль?"
  3. **Результат:**
     * После получения недостающих данных параметры передаются в следующий блок или функцию для обработки запроса.

  #### **Преимущества блока**

  * **Гибкость сценария:** Проверяет соответствие введённых данных и дозапрашивает недостающие.
  * **Повышение точности:** Гарантирует, что все необходимые параметры будут получены перед выполнением функции.
  * **Автоматизация:** Исключает ручную проверку данных, обрабатывая их динамически.

### Дополнительная логика работы блока "Проверка параметров"

1. **Проверка нескольких параметров:**

   * Если пользователь указал несколько параметров, блок проверяет их **поочерёдно**.
   * Как только найден первый неуказанный параметр, отправляется запрос на его ввод.

   **Пример:**

   * Требуемые параметры: `model`, `color`, `minPrice`.
   * Пользователь ввёл только `model` = "Лада Веста".
   * Блок сначала проверяет `model`, затем переходит к `color` и обнаруживает, что он отсутствует.
   * Запрашивает: "Какой цвет автомобиля вас интересует?"
2. **Все параметры указаны:**

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

   **Пример:**

   * Пользователь ввёл `model` = "Лада Веста", `color` = "белый", `minPrice` = 1 000 000.
   * Блок проверяет и подтверждает, что все параметры заполнены.
   * Переход к следующему блоку (например, вызов API для поиска доступных автомобилей).

***

**Итог:**

* **Если параметры отсутствуют:** Запрашивается первый неуказанный параметр.
* **Если все параметры указаны:** Логика сценария продолжается в следующем блоке без дополнительных запросов.

### Примеры реализации

* **Пример вариант №1**

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

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

* **Пример варианта №2**

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

  <figure><img src="/files/65zkVxusLZFuXjzElQ0c" alt=""><figcaption></figcaption></figure>

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

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