# Дополнительно

Статьи из этого раздела помогают лучше понять некоторые элементы платформы WT и не добавляют новую логику в учебный проект.

Статьи посвящены:

* [Array](/wt-practice/main/additionally/array.md) - универсальное значение для работы с массивами/матрицами на форме;
* [ArrayGetDataConnection](/wt-practice/main/additionally/array_get_dc.md) - загружающее соединение с данными, которое преобразует массив/матрицу в DataConnection для использования на форме, например, в таблице DatabaseTable;
* [ConvertDataConnection](/wt-practice/main/additionally/convert_dc.md) - загружающее соединение с данными преобразующее структуру данных, полученных из другого загружающего соединения с данными.

## Подготовка <a href="#preparation" id="preparation"></a>

Для работы со статьями этого раздела нам понадобиться тестовая форма:

{% file src="/files/9z3gbE31tPuyzLGsAhrU" %}

Скачайте файл формы и добавьте его в папку Forms проекта. Настройте команду открытия тестовой формы с главной формы WT-программы, например, через главное меню - так будет удобнее работать с формой без необходимости перезапускать приложение.

### Форма <a href="#preparation-form" id="preparation-form"></a>

На форме есть список клиентов, список городов и список позиций заказов. Архивные клиенты и города закрашиваются серым цветом.

<figure><img src="/files/0fiTwheSMd9vnMlPuk9Z" alt=""><figcaption></figcaption></figure>

На основе этих списков будем рассматривать работу с универсальным значением `<Array>` и ArrayGetDataConnection. Полученные результаты от выполнения операций над массивом/матрицей будем отображать в текстовом поле справа. А результат работы с ArrayGetDataConnection будем отображать в таблице.

### Запросы <a href="#preparation-query" id="preparation-query"></a>

Добавьте в серверный xml-файл запрос на получение списка клиентов, списка городов и списка позиций заказов:

{% code title="Template.xml" %}

```xml
<SqlQuery Name="TestClientSelectSqlQuery">
  <Text>
    SELECT
      client_id AS "ClientId",
      title AS "Title",
      city_id AS "CityId",
      archive AS "Archive"
    FROM
      template.client
    ORDER BY client_id;
  </Text>
</SqlQuery>

<SqlQuery Name="TestCitySelectSqlQuery">
  <Text>
    SELECT
      city_id AS "CityId",
      title AS "Title",
      archive AS "Archive"
    FROM
      template.city
    ORDER BY city_id;
  </Text>
</SqlQuery>

<SqlQuery Name="TestOrderPositionSelectSqlQuery">
  <Text>
    SELECT
      O.client_id AS "ClientId",
      M.title AS "MaterialTitle",
      OP.quantity AS "Quantity",
      OP.unit_price AS "UnitPrice",
      MC.title AS "MaterialCategoryTitle",
      U.short_title AS "UnitShortTitle"
    FROM
      template.order_position OP
      LEFT JOIN template.order O USING(order_id)
      LEFT JOIN template.material M USING(material_id)
      LEFT JOIN template.material_category MC USING(material_category_id)
      LEFT JOIN template.unit U USING(unit_id)
    ORDER BY O.client_id;
  </Text>
</SqlQuery>

<SqlQuery Name="TestOrderSelectSqlQuery">
  <Text>
    SELECT
      order_id AS "OrderId",
      client_id AS "ClientId",
      order_number AS "OrderNumber",
      order_date AS "OrderDate"
    FROM
      template.order
    WHERE
      NOT deleted AND
      added;
  </Text>
</SqlQuery>
```

{% endcode %}

Добавьте права доступа на тестовые запросы группе GuestGroup.

Отлично! Теперь можем подробнее поговорить об особенностях работы `<Array>` и ArrayGetDataConnection.


---

# 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://wfsys.gitbook.io/wt-practice/main/additionally.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.
