> ## Documentation Index
> Fetch the complete documentation index at: https://iyree.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Таблицы (Table)

> Табличные графики для отображения данных в виде строк и колонок

<img src="https://mintcdn.com/iyree/qv1iQg_DAyEWpyPw/assets/img/charts/table_v2/table_v2_example.png?fit=max&auto=format&n=qv1iQg_DAyEWpyPw&q=85&s=2148e8444aa371609c82575e9ebb1a7b" width="300" alt="Пример Table V2 графика" data-path="assets/img/charts/table_v2/table_v2_example.png" />

Таблица с поддержкой иерархий измерений, группировки строк, условного форматирования и действий.

### Поля

<ResponseField name="type" type="&#x22;table_v2&#x22;" required>
  Тип графика
</ResponseField>

<ResponseField name="columns" type="TableColumn[]" required>
  Определение колонок таблицы. Каждая колонка может быть одного из типов: `dimension`, `dimension_hierarchy`, `dimension_row_grouping`, `measure`.

  <Expandable title="Типы колонок">
    ### dimension — Обычное измерение

    <ResponseField name="type" type="&#x22;dimension&#x22;" required>
      Тип колонки
    </ResponseField>

    <ResponseField name="member" type="CubeDimension" required>
      Измерение из куба данных

      <Expandable title="Структура CubeDimension">
        **Обычное измерение (BasicDimension):**

        ```yaml theme={null}
        kind: basic
        value: products.category
        ```

        **Временное измерение (TimeDimension):**

        ```yaml theme={null}
        kind: time
        value:
          dimension: sales.created_at
          granularity: month  # second|minute|hour|day|week|month|quarter|year
        ```
      </Expandable>
    </ResponseField>

    <ResponseField name="title" type="string">
      Заголовок колонки
    </ResponseField>

    <ResponseField name="title_tooltip" type="string">
      Подсказка при наведении на заголовок
    </ResponseField>

    <ResponseField name="column_width" type="number">
      Ширина колонки в пикселях
    </ResponseField>

    <ResponseField name="value_overflow" type="enum">
      Обработка длинного текста: `ellipsis` | `break-word`
    </ResponseField>

    <ResponseField name="conditional_formatting" type="DimensionConditionalFormatting">
      Форматирование по значениям измерения

      <Expandable title="Структура DimensionConditionalFormatting">
        <ResponseField name="type" type="enum" required>
          Тип форматирования: `background` | `text`
        </ResponseField>

        <ResponseField name="values" type="Dict[string, RGBColor]" required>
          Цвета для конкретных значений. RGBColor — массив `[R, G, B]` (0-255).

          ```yaml theme={null}
          values:
            "Электроника": [66, 133, 244]
            "Одежда": [251, 188, 4]
            "Продукты": [76, 175, 80]
          ```
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="data_point_actions" type="DataPointActionDefinition[]">
      Действия при клике на ячейку. Можно использовать только в колонках с типом "measure".

      <Expandable title="Структура DataPointActionDefinition">
        <ResponseField name="id" type="string" required>
          Уникальный идентификатор (UUID)
        </ResponseField>

        <ResponseField name="key" type="string" required>
          Ключ действия: `common:copy_value` | `common:view_raw_data` | `link:open` | `dashboard:drill_through` | `dashboard:another_dashboard_drill_through`
        </ResponseField>

        <ResponseField name="title" type="string" required>
          Текст в меню
        </ResponseField>

        <ResponseField name="icon" type="IconReference">
          Иконка: `{library: "lucide", name: "icon-name", color?: [R,G,B]}`
        </ResponseField>

        <ResponseField name="target_page_id" type="string">
          UUID целевой страницы (для drill\_through)
        </ResponseField>

        <ResponseField name="target_dashboard_id" type="string">
          UUID целевого дашборда (для another\_dashboard\_drill\_through)
        </ResponseField>

        <ResponseField name="filter_mappings" type="DrillThroughFilterMapping[]">
          Маппинг фильтров

          <Expandable title="Структура">
            ```yaml theme={null}
            filter_mappings:
              - target_filter_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
                sources:
                  - type: data_point_dimension
                    member_name: products.category
            ```
          </Expandable>
        </ResponseField>

        <ResponseField name="url" type="string">
          URL для link:open с подстановкой `{cube.member}`
        </ResponseField>

        <ResponseField name="open_in" type="enum">
          `same_tab` | `new_tab`
        </ResponseField>

        <ResponseField name="placement" type="DataPointActionPlacement">
          Позиционирование в меню

          <Expandable title="Структура">
            ```yaml theme={null}
            placement:
              menu_path: ["Экспорт", "Подменю"]
              group:
                id: "export-group"
                label: "Экспорт"
                order: 1
              order: 1
            ```
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    ***

    ### dimension\_hierarchy — Иерархия с drill-down

    <ResponseField name="type" type="&#x22;dimension_hierarchy&#x22;" required>
      Тип колонки
    </ResponseField>

    <ResponseField name="title" type="string">
      Общий заголовок иерархии
    </ResponseField>

    <ResponseField name="levels" type="HierarchyLevel[]" required>
      Уровни иерархии (от верхнего к нижнему)

      <Expandable title="Структура HierarchyLevel">
        <ResponseField name="member" type="CubeDimension" required>
          Измерение уровня
        </ResponseField>

        <ResponseField name="title" type="string">
          Заголовок уровня
        </ResponseField>
      </Expandable>

      ```yaml theme={null}
      levels:
        - member:
            kind: basic
            value: geography.country
          title: Страна
        - member:
            kind: basic
            value: geography.city
          title: Город
      ```
    </ResponseField>

    ***

    ### dimension\_row\_grouping — Группировка строк

    Группирует строки по значениям с возможностью сворачивания.

    <ResponseField name="type" type="&#x22;dimension_row_grouping&#x22;" required>
      Тип колонки
    </ResponseField>

    <ResponseField name="title" type="string">
      Заголовок колонки
    </ResponseField>

    <ResponseField name="levels" type="HierarchyLevel[]" required>
      Уровни группировки (структура аналогична dimension\_hierarchy)
    </ResponseField>

    <Info>
      **Разница между dimension\_hierarchy и dimension\_row\_grouping:**

      * `dimension_hierarchy` — данные подгружаются при раскрытии (lazy loading)
      * `dimension_row_grouping` — все данные загружены сразу, группировка визуальная
    </Info>

    ***

    ### measure — Числовой показатель

    <ResponseField name="type" type="&#x22;measure&#x22;" required>
      Тип колонки
    </ResponseField>

    <ResponseField name="member" type="string" required>
      Имя меры из куба

      ```yaml theme={null}
      member: sales.total_revenue
      ```
    </ResponseField>

    <ResponseField name="title" type="string">
      Заголовок колонки
    </ResponseField>

    <ResponseField name="conditional_formatting" type="MeasureConditionalFormatting">
      Условное форматирование меры

      <Expandable title="Структура MeasureConditionalFormatting">
        <ResponseField name="type" type="enum" required>
          Тип: `background` | `text` | `icon`
        </ResponseField>

        <ResponseField name="filling_type" type="enum" required>
          Способ расчёта: `palette` | `gradient`
        </ResponseField>

        <ResponseField name="source_field" type="string">
          Поле для расчёта (если отличается от текущего)
        </ResponseField>

        <ResponseField name="conditions" type="Condition[]">
          Условия для palette

          <Expandable title="Структура Condition">
            **Точное совпадение:**

            ```yaml theme={null}
            type: eq
            value: 0
            color: [158, 158, 158]
            ```

            **Интервал:**

            ```yaml theme={null}
            type: interval
            interval:
              min:
                operator: gte  # gt | gte
                value: 100
              max:
                operator: lt   # lt | lte
                value: 200
              color: [200, 230, 201]
            ```

            **С иконкой (для type: icon):**

            ```yaml theme={null}
            type: interval
            interval:
              min:
                operator: gte
                value: 0
              icon:
                library: lucide
                name: trending-up
                color: [76, 175, 80]
            ```
          </Expandable>
        </ResponseField>

        <ResponseField name="gradient" type="Gradient">
          Настройки градиента

          <Expandable title="Структура Gradient">
            **Двухцветный:**

            ```yaml theme={null}
            type: two_colors
            palette: white_green  # white_red|white_green|white_blue|white_yellow|white_purple
            thresholds:
              min_value: 0
              max_value: 100
            ```

            **Трёхцветный:**

            ```yaml theme={null}
            type: three_colors
            palette: red_white_green  # red_yellow_green|red_white_green|green_yellow_red|green_white_red
            thresholds:
              min_value: 0
              middle_value: 50
              max_value: 100
            ```
          </Expandable>
        </ResponseField>

        <ResponseField name="position" type="enum">
          Позиция иконки (для type: icon): `left` | `right` | `icon_only`
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="linear_indicator" type="TableMeasureLinearIndicator">
      Линейный индикатор (прогресс-бар)

      <Expandable title="Структура TableMeasureLinearIndicator">
        <ResponseField name="main_color" type="RGBColor" required>
          Основной цвет `[R, G, B]`
        </ResponseField>

        <ResponseField name="negative_color" type="RGBColor">
          Цвет для отрицательных значений
        </ResponseField>
      </Expandable>

      ```yaml theme={null}
      linear_indicator:
        main_color: [66, 133, 244]
        negative_color: [234, 67, 53]
      ```
    </ResponseField>

    <ResponseField name="compare_formatting_direction" type="enum">
      Направление сравнения периодов: `more_better` | `less_better` | `none`
    </ResponseField>

    <ResponseField name="data_point_actions" type="DataPointActionDefinition[]">
      Действия при клике (структура описана выше)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="compare_period_enabled" type="boolean" default="false">
  Включить сравнение с предыдущим периодом
</ResponseField>

<ResponseField name="include_totals" type="boolean" default="false">
  Показать строку итогов
</ResponseField>

<ResponseField name="show_row_numbers" type="boolean" default="false">
  Показать номера строк
</ResponseField>

<ResponseField name="sorting" type="TableSorting[]">
  Сортировка данных

  <Expandable title="Структура TableSorting">
    <ResponseField name="member" type="string" required>
      Имя меры или измерения для сортировки
    </ResponseField>

    <ResponseField name="direction" type="enum" required>
      Направление: `asc` | `desc`
    </ResponseField>
  </Expandable>

  ```yaml theme={null}
  sorting:
    - member: sales.revenue
      direction: desc
  ```
</ResponseField>

### Примеры

<CodeGroup>
  ```yaml Простая таблица theme={null}
  type: table_v2
  columns:
    - type: dimension
      member:
        kind: basic
        value: products.name
      title: Товар
    - type: measure
      member: sales.quantity
      title: Количество
    - type: measure
      member: sales.revenue
      title: Выручка
  include_totals: true
  ```

  ```yaml С иерархией и группировкой theme={null}
  type: table_v2
  columns:
    - type: dimension_row_grouping
      title: Категория
      levels:
        - member:
            kind: basic
            value: products.category
          title: Категория
        - member:
            kind: basic
            value: products.subcategory
          title: Подкатегория
    - type: dimension
      member:
        kind: basic
        value: products.name
      title: Товар
    - type: measure
      member: sales.revenue
      title: Выручка
      linear_indicator:
        main_color: [66, 133, 244]
    - type: measure
      member: sales.margin_percent
      title: Маржа %
      conditional_formatting:
        type: background
        filling_type: palette
        conditions:
          - type: interval
            interval:
              min:
                operator: gte
                value: 30
              color: [200, 230, 201]
          - type: interval
            interval:
              max:
                operator: lt
                value: 10
              color: [255, 205, 210]
  show_row_numbers: true
  include_totals: true
  sorting:
    - member: sales.revenue
      direction: desc
  ```

  ```yaml С drill-through theme={null}
  type: table_v2
  columns:
    - type: dimension
      member:
        kind: basic
        value: orders.order_number
      title: Номер заказа
    - type: measure
      member: orders.total
      title: Сумма
  	data_point_actions:
        - id: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
          key: "dashboard:drill_through"
          title: "Детали заказа"
          target_page_id: "a1b2c3d4-5678-90ab-cdef-1234567890ab"
          filter_mappings:
            - target_filter_id: "b2c3d4e5-6789-01bc-def0-234567890abc"
              sources:
                - type: data_point_dimension
                  member_name: orders.order_id
  ```

  ```yaml С форматированием измерений theme={null}
  type: table_v2
  columns:
    - type: dimension
      member:
        kind: basic
        value: orders.status
      title: Статус
      conditional_formatting:
        type: background
        values:
          "Новый": [227, 242, 253]
          "В работе": [255, 243, 224]
          "Выполнен": [200, 230, 201]
          "Отменён": [255, 205, 210]
    - type: measure
      member: orders.count
      title: Количество
  ```
</CodeGroup>

***

## См. также

<CardGroup cols={2}>
  <Card icon="sitemap" href="../features/dimension-hierarchy" title="Иерархии измерений">
    Drill-down и группировка строк
  </Card>

  <Card icon="palette" href="../features/conditional-formatting" title="Условное форматирование">
    Цвета, градиенты, иконки
  </Card>

  <Card icon="mouse-pointer-click" href="../features/data-point-actions" title="Действия с данными">
    Drill-through и ссылки
  </Card>

  <Card icon="layer-group" href="../features/dimensions" title="Измерения">
    Типы измерений
  </Card>
</CardGroup>

***

← [Плитки](./tile) | → [Сводные таблицы](./pivot-table)
