> For the complete documentation index, see [llms.txt](https://wfsys.gitbook.io/wt-practice/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wfsys.gitbook.io/wt-practice/main/additionally.md).

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

Статьи из этого раздела помогают лучше понять некоторые элементы платформы 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.
