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

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

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

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

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

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

{% file src="<https://3019442075-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_eBlWEU4C3o2GVEAAr%2Fuploads%2FF03eMJSq2OgEOFLZD9Rh%2FTemplateTestForm.xml?alt=media&token=9c4110b6-4650-48dd-83a3-3d37ab312afc>" %}

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

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

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

<figure><img src="https://3019442075-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_eBlWEU4C3o2GVEAAr%2Fuploads%2FU3jZqHiBZIVFB0KWlEnS%2Fimage.png?alt=media&#x26;token=d6e92d92-40bd-420a-bf23-6c5ee6b5a2f0" 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.
