Платформа 3V/Справочник/Cортировка: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{DISPLAYTITLE:Сортировка источника данных на справочнике (SortingOptions)}} Последовательное располо...»)
 
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{DISPLAYTITLE:Сортировка источника данных на справочнике (SortingOptions)}}
+
{{DISPLAYTITLE:Сортировка элементов справочника (SortingOptions)}}
 
Последовательное расположение в зависимости от выбранного атрибута справочника
 
Последовательное расположение в зависимости от выбранного атрибута справочника
  
Строка 21: Строка 21:
 
! Значение !! Описание
 
! Значение !! Описание
 
|-
 
|-
| [[Платформа_3V/Справочник/Связь_атрибутов|'''"attribute"''']] || описание пути до атрибута, по которому будет производиться сортировка  
+
| [[Платформа_3V/Справочник/Связь_атрибутов|'''attribute''']] || описание пути до атрибута, по которому будет производиться сортировка  
 
|-
 
|-
| "sortDirection": "Descending" / "Ascending" || Направление по убыванию / по возрастанию
+
| sortDirection || Направление по убыванию / по возрастанию ("Descending" / "Ascending")
 
|-
 
|-
| "nullsSortingMode": "PlaceFirst" / "PlaceLast", || нулевые значения в начале / в конце
+
| nullsSortingMode || нулевые значения в начале / в конце ("PlaceFirst" / "PlaceLast")
 
|}
 
|}
 +
 +
== Особенности использования ==
 +
Сортировка по атрибуту справочника с типом '''"числовой, дробный"''' происходит по математической логике упорядочивания чисел (1 < 2 < 10).
 +
 +
Сортировка по атрибуту справочника с типом '''"дата"''' происходит в соответствии с порядком дней в календаре.
 +
 +
Сортировка по '''текстовому атрибуту''' происходит по каждому символу. Порядок по возрастанию, в рамках которого происходит упорядочивание, каждого символа в названии: символы ("-", "!" и т.д.), цифры (от 0 до 9), буквы русские (от А до Я), буквы латинского алфавита ( от A до Z)
 +
 +
== Пример использования в форме и отчете==
 +
Кейс: исходный справочник "Договоры" имеет следующую структуру и типы данных в атрибутах
 +
{| class="wikitable"
 +
|-
 +
! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания
 +
|-
 +
!style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23
 +
|-
 +
!style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата
 +
|-
 +
| 1 || 123 || 1 || 100,00 || 22.04.2021
 +
|-
 +
| 2 || АБ-1-11 || 10 || 100,12 || 04.03.2021
 +
|-
 +
| 3 || 1 || 2 || 98,00 || 22.04.2021
 +
|-
 +
| 4 || 11 || 21 || 1,00 ||
 +
|-
 +
| 5 || -11-АБ || 3 || 11,00 || 05.08.2019
 +
|-
 +
| 6 || 2 || 11 ||  || 14.05.2020
 +
|}
 +
 +
При сортировке по возрастанию по атр. "Наименование" (id=2) порядок будет следующий:
 +
 +
{| class="wikitable"
 +
|-
 +
! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания
 +
|-
 +
!style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23
 +
|-
 +
!style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата
 +
|-
 +
| 5 || '''-11-АБ''' || 3 || 11,00 || 05.08.2019
 +
|-
 +
| 3 || '''1''' || 2 || 98,00 || 22.04.2021
 +
|-
 +
| 4 || '''11''' || 21 || 1,00 ||
 +
|-
 +
| 1 || '''123''' || 1 || 100,00 || 22.04.2021
 +
|-
 +
| 6 || '''2''' || 11 ||  || 14.05.2020
 +
|-
 +
| 2 || '''АБ-1-11''' || 10 || 100,12 || 04.03.2021
 +
|}
 +
 +
При сортировке по возрастанию по атр. "Порядковый номер" (id=21) порядок будет следующий:
 +
 +
{| class="wikitable"
 +
|-
 +
! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания
 +
|-
 +
!style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23
 +
|-
 +
!style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата
 +
|-
 +
| 1 || 123 || '''1''' || 100,00 || 22.04.2021
 +
|-
 +
| 3 || 1 || '''2''' || 98,00 || 22.04.2021
 +
|-
 +
| 5 || -11-АБ || '''3''' || 11,00 || 05.08.2019
 +
|-
 +
| 2 || АБ-1-11 || '''10''' || 100,12 || 04.03.2021
 +
|-
 +
| 6 || 2 || '''11''' ||  || 14.05.2020
 +
|-
 +
| 4 || 11 || '''21''' || 1,00 ||
 +
|}
 +
 +
При сортировке по убыванию по атр. "Сумма по договору" (id=22) и расположению пустых атрибутов в конце списка порядок будет следующий:
 +
 +
{| class="wikitable"
 +
|-
 +
! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания
 +
|-
 +
!style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23
 +
|-
 +
!style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата
 +
|-
 +
| 2 || АБ-1-11 || 10 || '''100,12''' || 04.03.2021
 +
|-
 +
| 1 || 123 || 1 || '''100,00''' || 22.04.2021
 +
|-
 +
| 3 || 1 || 2 || '''98,00''' || 22.04.2021
 +
|-
 +
| 5 || -11-АБ || 3 || '''11,00''' || 05.08.2019
 +
|-
 +
| 4 || 11 || 21 || '''1,00''' ||
 +
|-
 +
| 6 || 2 || 11 ||  || 14.05.2020
 +
|}
 +
 +
При сортировке по убыванию по атр. "Дата подписания" (id=22)  и расположению пустых атрибутов в начале списка порядок будет следующий:
 +
 +
{| class="wikitable"
 +
|-
 +
! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания
 +
|-
 +
!style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23
 +
|-
 +
!style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата
 +
|-
 +
| 4 || 11 || 21 || 1,00 ||
 +
|-
 +
| 1 || 123 || 1 || 100,00 || '''22.04.2021'''
 +
|-
 +
| 3 || 1 || 2 || 98,00 || '''22.04.2021'''
 +
|-
 +
| 2 || АБ-1-11 || 10 || 100,12 || '''04.03.2021'''
 +
|-
 +
| 6 || 2 || 11 ||  || '''14.05.2020'''
 +
|-
 +
| 5 || -11-АБ || 3 || 11,00 || '''05.08.2019'''
 +
|}
 +
 +
=== Пример использования в форме===
 +
 +
<br>
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;">JSON серверной карточки со всеми примерами сортировки</div>
 +
<div class="mw-collapsible-content mw-collapsed-content">
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
  "id": 53,
 +
  "name": "Сортировка справочника договоры",
 +
  "description": "",
 +
  "title": "",
 +
  "entrySettings": null,
 +
  "uiSources": [
 +
    {
 +
      "dataSourceId": 1,
 +
      "nameTemplate": "",
 +
      "displayAttribute": null,
 +
      "hasMultipleValue": false,
 +
      "hasNullableValue": false,
 +
      "maxElements": null,
 +
      "hasServerFiltration": false,
 +
      "id": 11,
 +
      "caption": "Без сортировки",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": null,
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": true,
 +
      "expressionId": null,
 +
      "discriminator": "DictionarySourceEntry"
 +
    },
 +
    {
 +
      "dataSourceId": 2,
 +
      "nameTemplate": "",
 +
      "displayAttribute": null,
 +
      "hasMultipleValue": false,
 +
      "hasNullableValue": false,
 +
      "maxElements": null,
 +
      "hasServerFiltration": false,
 +
      "id": 12,
 +
      "caption": "По возрастанию (по наименованию)",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": null,
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": true,
 +
      "expressionId": null,
 +
      "discriminator": "DictionarySourceEntry"
 +
    },
 +
    {
 +
      "dataSourceId": 3,
 +
      "nameTemplate": "[2] (Порядковый номер:[21])",
 +
      "displayAttribute": null,
 +
      "hasMultipleValue": false,
 +
      "hasNullableValue": false,
 +
      "maxElements": null,
 +
      "hasServerFiltration": false,
 +
      "id": 13,
 +
      "caption": "По возрастанию (по порядковому номеру)",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": null,
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": true,
 +
      "expressionId": null,
 +
      "discriminator": "DictionarySourceEntry"
 +
    },
 +
    {
 +
      "dataSourceId": 4,
 +
      "nameTemplate": "[2] (Сумма: [22])",
 +
      "displayAttribute": null,
 +
      "hasMultipleValue": false,
 +
      "hasNullableValue": false,
 +
      "maxElements": null,
 +
      "hasServerFiltration": false,
 +
      "id": 14,
 +
      "caption": "По убыванию (по сумме)",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": null,
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": true,
 +
      "expressionId": null,
 +
      "discriminator": "DictionarySourceEntry"
 +
    },
 +
    {
 +
      "dataSourceId": 5,
 +
      "nameTemplate": "[2] (Дата подписания: [23])",
 +
      "displayAttribute": null,
 +
      "hasMultipleValue": false,
 +
      "hasNullableValue": false,
 +
      "maxElements": null,
 +
      "hasServerFiltration": false,
 +
      "id": 15,
 +
      "caption": "По убыванию (по дата подписания)",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": null,
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": true,
 +
      "expressionId": null,
 +
      "discriminator": "DictionarySourceEntry"
 +
    }
 +
  ],
 +
  "entryDataSources": [
 +
    {
 +
      "dictionaryId": 67,
 +
      "hierarchyId": null,
 +
      "filter": null,
 +
      "sortingOptions": null,
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": null,
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 1,
 +
      "name": null,
 +
      "isReadOnly": true,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    },
 +
    {
 +
      "dictionaryId": 67,
 +
      "hierarchyId": null,
 +
      "filter": null,
 +
      "sortingOptions": {
 +
        "attributes": [
 +
          {
 +
            "attribute": {
 +
              "id": 2,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "sortDirection": "Ascending",
 +
            "nullsSortingMode": "PlaceFirst"
 +
          }
 +
        ]
 +
      },
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": null,
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 2,
 +
      "name": null,
 +
      "isReadOnly": true,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    },
 +
    {
 +
      "dictionaryId": 67,
 +
      "hierarchyId": null,
 +
      "filter": null,
 +
      "sortingOptions": {
 +
        "attributes": [
 +
          {
 +
            "attribute": {
 +
              "id": 21,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "sortDirection": "Ascending",
 +
            "nullsSortingMode": "PlaceFirst"
 +
          }
 +
        ]
 +
      },
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": null,
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 3,
 +
      "name": null,
 +
      "isReadOnly": true,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    },
 +
    {
 +
      "dictionaryId": 67,
 +
      "hierarchyId": null,
 +
      "filter": null,
 +
      "sortingOptions": {
 +
        "attributes": [
 +
          {
 +
            "attribute": {
 +
              "id": 22,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "sortDirection": "Descending",
 +
            "nullsSortingMode": "PlaceLast"
 +
          }
 +
        ]
 +
      },
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": null,
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 4,
 +
      "name": null,
 +
      "isReadOnly": true,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    },
 +
    {
 +
      "dictionaryId": 67,
 +
      "hierarchyId": null,
 +
      "filter": null,
 +
      "sortingOptions": {
 +
        "attributes": [
 +
          {
 +
            "attribute": {
 +
              "id": 23,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "sortDirection": "Descending",
 +
            "nullsSortingMode": "PlaceFirst"
 +
          }
 +
        ]
 +
      },
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": null,
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 5,
 +
      "name": null,
 +
      "isReadOnly": true,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    }
 +
  ],
 +
  "parameters": [],
 +
  "binaryConditionsRules": [],
 +
  "submitValidateRules": [],
 +
  "expressions": [],
 +
  "controlsValueCalculateRules": [],
 +
  "actions": [],
 +
  "conditionActionIdsOnOpen": [],
 +
  "conditionalActions": [],
 +
  "selectionSets": [],
 +
  "reportTemplates": [],
 +
  "useNewDependenciesBuilder": null
 +
}
 +
</syntaxhighlight>
 +
</div></div>
 +
<br>
 +
[[Файл:Сортировки в форме.jpg|600px|безрамки|без]]
 +
=== Пример использования в отчете===
 +
 +
<br>
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;">JSON отчета с сортировкой по возрастанию атр."Наименование"</div>
 +
<div class="mw-collapsible-content mw-collapsed-content">
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
  "workflowId": null,
 +
  "leftHeader": {
 +
    "useLazyDataLoadingStrategy": false,
 +
    "dictionaries": [
 +
      {
 +
        "showDataIfAbsentFilter": null,
 +
        "coordAttribute": null,
 +
        "cartesianOptions": "Default",
 +
        "canSelectAttribute": null,
 +
        "groupingOptions": null,
 +
        "groupingMethod": "Default",
 +
        "sortingOptions": {
 +
          "attributes": [
 +
            {
 +
              "attribute": {
 +
                "id": 2,
 +
                "discriminator": "OwnAttributeDefinitionDto"
 +
              },
 +
              "sortDirection": "Ascending",
 +
              "nullsSortingMode": "PlaceFirst"
 +
            }
 +
          ]
 +
        },
 +
        "rootElement": null,
 +
        "virtualElements": null,
 +
        "displayValueOptions": null,
 +
        "displayAttribute": null,
 +
        "dictionaryId": 67,
 +
        "filter": {
 +
          "value": null,
 +
          "skipIfValueNull": false,
 +
          "attributeId": null,
 +
          "attribute": {
 +
            "id": 1,
 +
            "discriminator": "OwnAttributeDefinitionDto"
 +
          },
 +
          "conditionType": "AllElements",
 +
          "inversion": false,
 +
          "discriminator": "ValueConditionalDictionaryFilterDto"
 +
        },
 +
        "selection": null,
 +
        "hierarchyId": null,
 +
        "limit": null
 +
      }
 +
    ],
 +
    "dictionaryAttributesLinks": [],
 +
    "specialFilters": {
 +
      "filtersByDataOptions": {
 +
        "filtersByData": [],
 +
        "needRestoreFullHierachy": false,
 +
        "joinOption": "Or",
 +
        "restoreElements": null
 +
      },
 +
      "dictionaryAttributesLinks": [],
 +
      "needRestoreFullHierachy": false,
 +
      "restoreElements": null
 +
    },
 +
    "isEditable": false
 +
  },
 +
  "topHeader": {
 +
    "topHeaderItems": [
 +
      {
 +
        "dictionaryAttributes": [
 +
          {
 +
            "dictionaryId": 67,
 +
            "attribute": {
 +
              "id": 2,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "filter": null,
 +
            "sortingOptions": null,
 +
            "attributeId": null,
 +
            "displayAttributeType": "AttributeName",
 +
            "displayAttributeName": null,
 +
            "addFirstElementValue": false,
 +
            "overwriteNotFirstElementValues": true,
 +
            "delimiter": ", ",
 +
            "hideAttributeNameInHeader": false,
 +
            "headerNameDelimiter": " / ",
 +
            "duplicateValuesForNextDictionaries": true,
 +
            "duplicateValuesForNextRows": true,
 +
            "displayValueOptions": null,
 +
            "linkedAttributeSettings": null,
 +
            "skippedFilterAttributesByLink": [],
 +
            "filterOptionsByLinks": null
 +
          }
 +
        ],
 +
        "settings": null,
 +
        "hyperlinkOptions": null,
 +
        "hasImage": false,
 +
        "columnOptions": null,
 +
        "discriminator": "AttributeHeaderItemDto"
 +
      },
 +
      {
 +
        "dictionaryAttributes": [
 +
          {
 +
            "dictionaryId": 67,
 +
            "attribute": {
 +
              "id": 21,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "filter": null,
 +
            "sortingOptions": null,
 +
            "attributeId": null,
 +
            "displayAttributeType": "AttributeName",
 +
            "displayAttributeName": null,
 +
            "addFirstElementValue": false,
 +
            "overwriteNotFirstElementValues": true,
 +
            "delimiter": ", ",
 +
            "hideAttributeNameInHeader": false,
 +
            "headerNameDelimiter": " / ",
 +
            "duplicateValuesForNextDictionaries": true,
 +
            "duplicateValuesForNextRows": true,
 +
            "displayValueOptions": null,
 +
            "linkedAttributeSettings": null,
 +
            "skippedFilterAttributesByLink": [],
 +
            "filterOptionsByLinks": null
 +
          }
 +
        ],
 +
        "settings": null,
 +
        "hyperlinkOptions": null,
 +
        "hasImage": false,
 +
        "columnOptions": null,
 +
        "discriminator": "AttributeHeaderItemDto"
 +
      },
 +
      {
 +
        "dictionaryAttributes": [
 +
          {
 +
            "dictionaryId": 67,
 +
            "attribute": {
 +
              "id": 22,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "filter": null,
 +
            "sortingOptions": null,
 +
            "attributeId": null,
 +
            "displayAttributeType": "AttributeName",
 +
            "displayAttributeName": null,
 +
            "addFirstElementValue": false,
 +
            "overwriteNotFirstElementValues": true,
 +
            "delimiter": ", ",
 +
            "hideAttributeNameInHeader": false,
 +
            "headerNameDelimiter": " / ",
 +
            "duplicateValuesForNextDictionaries": true,
 +
            "duplicateValuesForNextRows": true,
 +
            "displayValueOptions": null,
 +
            "linkedAttributeSettings": null,
 +
            "skippedFilterAttributesByLink": [],
 +
            "filterOptionsByLinks": null
 +
          }
 +
        ],
 +
        "settings": null,
 +
        "hyperlinkOptions": null,
 +
        "hasImage": false,
 +
        "columnOptions": null,
 +
        "discriminator": "AttributeHeaderItemDto"
 +
      },
 +
      {
 +
        "dictionaryAttributes": [
 +
          {
 +
            "dictionaryId": 67,
 +
            "attribute": {
 +
              "id": 23,
 +
              "discriminator": "OwnAttributeDefinitionDto"
 +
            },
 +
            "filter": null,
 +
            "sortingOptions": null,
 +
            "attributeId": null,
 +
            "displayAttributeType": "AttributeName",
 +
            "displayAttributeName": null,
 +
            "addFirstElementValue": false,
 +
            "overwriteNotFirstElementValues": true,
 +
            "delimiter": ", ",
 +
            "hideAttributeNameInHeader": false,
 +
            "headerNameDelimiter": " / ",
 +
            "duplicateValuesForNextDictionaries": true,
 +
            "duplicateValuesForNextRows": true,
 +
            "displayValueOptions": null,
 +
            "linkedAttributeSettings": null,
 +
            "skippedFilterAttributesByLink": [],
 +
            "filterOptionsByLinks": null
 +
          }
 +
        ],
 +
        "settings": null,
 +
        "hyperlinkOptions": null,
 +
        "hasImage": false,
 +
        "columnOptions": null,
 +
        "discriminator": "AttributeHeaderItemDto"
 +
      }
 +
    ],
 +
    "needFilterAttributesByLinks": false,
 +
    "enableFilterByLinks": false,
 +
    "numerationSettings": null,
 +
    "filterOptions": null
 +
  },
 +
  "parameters": [],
 +
  "styles": [],
 +
  "styleOptions": [],
 +
  "stylesTemplate": [],
 +
  "filtersByDataOptions": null,
 +
  "view": null,
 +
  "externalExecutions": null,
 +
  "settings": null,
 +
  "code": "P_Сортировка элементов справочника (SortingOptions)",
 +
  "id": 82,
 +
  "name": "Сортировка элементов справочника (SortingOptions)"
 +
}
 +
</syntaxhighlight>
 +
</div></div>
 +
<br>
 +
[[Файл:Сортировка в отчете.jpg|600px|безрамки|без]]

Текущая версия на 13:14, 22 апреля 2021

Последовательное расположение в зависимости от выбранного атрибута справочника

 1  "sortingOptions": {
 2         "attributes": [
 3           {
 4             "attribute": {
 5               "id": 1,
 6               "discriminator": "OwnAttributeDefinitionDto"
 7             },
 8             "sortDirection": "Descending",
 9             "nullsSortingMode": "PlaceFirst"
10           }
11         ]
12       }
Значение Описание
attribute описание пути до атрибута, по которому будет производиться сортировка
sortDirection Направление по убыванию / по возрастанию ("Descending" / "Ascending")
nullsSortingMode нулевые значения в начале / в конце ("PlaceFirst" / "PlaceLast")

Особенности использования

Сортировка по атрибуту справочника с типом "числовой, дробный" происходит по математической логике упорядочивания чисел (1 < 2 < 10).

Сортировка по атрибуту справочника с типом "дата" происходит в соответствии с порядком дней в календаре.

Сортировка по текстовому атрибуту происходит по каждому символу. Порядок по возрастанию, в рамках которого происходит упорядочивание, каждого символа в названии: символы ("-", "!" и т.д.), цифры (от 0 до 9), буквы русские (от А до Я), буквы латинского алфавита ( от A до Z)

Пример использования в форме и отчете

Кейс: исходный справочник "Договоры" имеет следующую структуру и типы данных в атрибутах

Идентификатор Наименование Порядковый номер Сумма по договору Дата подписания
1 2 21 22 23
Числовой Текстовый Числовой Дробный Дата
1 123 1 100,00 22.04.2021
2 АБ-1-11 10 100,12 04.03.2021
3 1 2 98,00 22.04.2021
4 11 21 1,00
5 -11-АБ 3 11,00 05.08.2019
6 2 11 14.05.2020

При сортировке по возрастанию по атр. "Наименование" (id=2) порядок будет следующий:

Идентификатор Наименование Порядковый номер Сумма по договору Дата подписания
1 2 21 22 23
Числовой Текстовый Числовой Дробный Дата
5 -11-АБ 3 11,00 05.08.2019
3 1 2 98,00 22.04.2021
4 11 21 1,00
1 123 1 100,00 22.04.2021
6 2 11 14.05.2020
2 АБ-1-11 10 100,12 04.03.2021

При сортировке по возрастанию по атр. "Порядковый номер" (id=21) порядок будет следующий:

Идентификатор Наименование Порядковый номер Сумма по договору Дата подписания
1 2 21 22 23
Числовой Текстовый Числовой Дробный Дата
1 123 1 100,00 22.04.2021
3 1 2 98,00 22.04.2021
5 -11-АБ 3 11,00 05.08.2019
2 АБ-1-11 10 100,12 04.03.2021
6 2 11 14.05.2020
4 11 21 1,00

При сортировке по убыванию по атр. "Сумма по договору" (id=22) и расположению пустых атрибутов в конце списка порядок будет следующий:

Идентификатор Наименование Порядковый номер Сумма по договору Дата подписания
1 2 21 22 23
Числовой Текстовый Числовой Дробный Дата
2 АБ-1-11 10 100,12 04.03.2021
1 123 1 100,00 22.04.2021
3 1 2 98,00 22.04.2021
5 -11-АБ 3 11,00 05.08.2019
4 11 21 1,00
6 2 11 14.05.2020

При сортировке по убыванию по атр. "Дата подписания" (id=22) и расположению пустых атрибутов в начале списка порядок будет следующий:

Идентификатор Наименование Порядковый номер Сумма по договору Дата подписания
1 2 21 22 23
Числовой Текстовый Числовой Дробный Дата
4 11 21 1,00
1 123 1 100,00 22.04.2021
3 1 2 98,00 22.04.2021
2 АБ-1-11 10 100,12 04.03.2021
6 2 11 14.05.2020
5 -11-АБ 3 11,00 05.08.2019

Пример использования в форме


JSON серверной карточки со всеми примерами сортировки


Сортировки в форме.jpg

Пример использования в отчете


JSON отчета с сортировкой по возрастанию атр."Наименование"


Сортировка в отчете.jpg