Сортировка элементов справочника (SortingOptions)
Последовательное расположение в зависимости от выбранного атрибута справочника
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 |
Пример использования в форме
1 {
2 "id": 53,
3 "name": "Сортировка справочника договоры",
4 "description": "",
5 "title": "",
6 "entrySettings": null,
7 "uiSources": [
8 {
9 "dataSourceId": 1,
10 "nameTemplate": "",
11 "displayAttribute": null,
12 "hasMultipleValue": false,
13 "hasNullableValue": false,
14 "maxElements": null,
15 "hasServerFiltration": false,
16 "id": 11,
17 "caption": "Без сортировки",
18 "enable": true,
19 "visible": true,
20 "hint": null,
21 "uiDataSource": null,
22 "doActionOnChangeValue": true,
23 "onAfterChangeValueConditionalActions": null,
24 "onAfterChangeValueByClientConditionalActions": null,
25 "rebuildDependentsObjectOnChange": true,
26 "enableRuleIds": [],
27 "visibleRuleIds": [],
28 "access": null,
29 "isValueChanged": true,
30 "expressionId": null,
31 "discriminator": "DictionarySourceEntry"
32 },
33 {
34 "dataSourceId": 2,
35 "nameTemplate": "",
36 "displayAttribute": null,
37 "hasMultipleValue": false,
38 "hasNullableValue": false,
39 "maxElements": null,
40 "hasServerFiltration": false,
41 "id": 12,
42 "caption": "По возрастанию (по наименованию)",
43 "enable": true,
44 "visible": true,
45 "hint": null,
46 "uiDataSource": null,
47 "doActionOnChangeValue": true,
48 "onAfterChangeValueConditionalActions": null,
49 "onAfterChangeValueByClientConditionalActions": null,
50 "rebuildDependentsObjectOnChange": true,
51 "enableRuleIds": [],
52 "visibleRuleIds": [],
53 "access": null,
54 "isValueChanged": true,
55 "expressionId": null,
56 "discriminator": "DictionarySourceEntry"
57 },
58 {
59 "dataSourceId": 3,
60 "nameTemplate": "[2] (Порядковый номер:[21])",
61 "displayAttribute": null,
62 "hasMultipleValue": false,
63 "hasNullableValue": false,
64 "maxElements": null,
65 "hasServerFiltration": false,
66 "id": 13,
67 "caption": "По возрастанию (по порядковому номеру)",
68 "enable": true,
69 "visible": true,
70 "hint": null,
71 "uiDataSource": null,
72 "doActionOnChangeValue": true,
73 "onAfterChangeValueConditionalActions": null,
74 "onAfterChangeValueByClientConditionalActions": null,
75 "rebuildDependentsObjectOnChange": true,
76 "enableRuleIds": [],
77 "visibleRuleIds": [],
78 "access": null,
79 "isValueChanged": true,
80 "expressionId": null,
81 "discriminator": "DictionarySourceEntry"
82 },
83 {
84 "dataSourceId": 4,
85 "nameTemplate": "[2] (Сумма: [22])",
86 "displayAttribute": null,
87 "hasMultipleValue": false,
88 "hasNullableValue": false,
89 "maxElements": null,
90 "hasServerFiltration": false,
91 "id": 14,
92 "caption": "По убыванию (по сумме)",
93 "enable": true,
94 "visible": true,
95 "hint": null,
96 "uiDataSource": null,
97 "doActionOnChangeValue": true,
98 "onAfterChangeValueConditionalActions": null,
99 "onAfterChangeValueByClientConditionalActions": null,
100 "rebuildDependentsObjectOnChange": true,
101 "enableRuleIds": [],
102 "visibleRuleIds": [],
103 "access": null,
104 "isValueChanged": true,
105 "expressionId": null,
106 "discriminator": "DictionarySourceEntry"
107 },
108 {
109 "dataSourceId": 5,
110 "nameTemplate": "[2] (Дата подписания: [23])",
111 "displayAttribute": null,
112 "hasMultipleValue": false,
113 "hasNullableValue": false,
114 "maxElements": null,
115 "hasServerFiltration": false,
116 "id": 15,
117 "caption": "По убыванию (по дата подписания)",
118 "enable": true,
119 "visible": true,
120 "hint": null,
121 "uiDataSource": null,
122 "doActionOnChangeValue": true,
123 "onAfterChangeValueConditionalActions": null,
124 "onAfterChangeValueByClientConditionalActions": null,
125 "rebuildDependentsObjectOnChange": true,
126 "enableRuleIds": [],
127 "visibleRuleIds": [],
128 "access": null,
129 "isValueChanged": true,
130 "expressionId": null,
131 "discriminator": "DictionarySourceEntry"
132 }
133 ],
134 "entryDataSources": [
135 {
136 "dictionaryId": 67,
137 "hierarchyId": null,
138 "filter": null,
139 "sortingOptions": null,
140 "groupingOptions": null,
141 "dictionaryAttributes": null,
142 "defaultValue": [],
143 "defaultValueExpressionId": null,
144 "parameterId": null,
145 "dictionarySourceSelectionMode": "None",
146 "dataSourceAttributesAdditionsSettings": [],
147 "externalFileStorageUrl": null,
148 "filePrefix": null,
149 "defaultNewElementSettings": null,
150 "id": 1,
151 "name": null,
152 "isReadOnly": true,
153 "dataEditRuleIds": [],
154 "beforeSaveDataActions": [],
155 "afterSaveDataActions": [],
156 "discriminator": "DictionaryDataSource"
157 },
158 {
159 "dictionaryId": 67,
160 "hierarchyId": null,
161 "filter": null,
162 "sortingOptions": {
163 "attributes": [
164 {
165 "attribute": {
166 "id": 2,
167 "discriminator": "OwnAttributeDefinitionDto"
168 },
169 "sortDirection": "Ascending",
170 "nullsSortingMode": "PlaceFirst"
171 }
172 ]
173 },
174 "groupingOptions": null,
175 "dictionaryAttributes": null,
176 "defaultValue": [],
177 "defaultValueExpressionId": null,
178 "parameterId": null,
179 "dictionarySourceSelectionMode": "None",
180 "dataSourceAttributesAdditionsSettings": [],
181 "externalFileStorageUrl": null,
182 "filePrefix": null,
183 "defaultNewElementSettings": null,
184 "id": 2,
185 "name": null,
186 "isReadOnly": true,
187 "dataEditRuleIds": [],
188 "beforeSaveDataActions": [],
189 "afterSaveDataActions": [],
190 "discriminator": "DictionaryDataSource"
191 },
192 {
193 "dictionaryId": 67,
194 "hierarchyId": null,
195 "filter": null,
196 "sortingOptions": {
197 "attributes": [
198 {
199 "attribute": {
200 "id": 21,
201 "discriminator": "OwnAttributeDefinitionDto"
202 },
203 "sortDirection": "Ascending",
204 "nullsSortingMode": "PlaceFirst"
205 }
206 ]
207 },
208 "groupingOptions": null,
209 "dictionaryAttributes": null,
210 "defaultValue": [],
211 "defaultValueExpressionId": null,
212 "parameterId": null,
213 "dictionarySourceSelectionMode": "None",
214 "dataSourceAttributesAdditionsSettings": [],
215 "externalFileStorageUrl": null,
216 "filePrefix": null,
217 "defaultNewElementSettings": null,
218 "id": 3,
219 "name": null,
220 "isReadOnly": true,
221 "dataEditRuleIds": [],
222 "beforeSaveDataActions": [],
223 "afterSaveDataActions": [],
224 "discriminator": "DictionaryDataSource"
225 },
226 {
227 "dictionaryId": 67,
228 "hierarchyId": null,
229 "filter": null,
230 "sortingOptions": {
231 "attributes": [
232 {
233 "attribute": {
234 "id": 22,
235 "discriminator": "OwnAttributeDefinitionDto"
236 },
237 "sortDirection": "Descending",
238 "nullsSortingMode": "PlaceLast"
239 }
240 ]
241 },
242 "groupingOptions": null,
243 "dictionaryAttributes": null,
244 "defaultValue": [],
245 "defaultValueExpressionId": null,
246 "parameterId": null,
247 "dictionarySourceSelectionMode": "None",
248 "dataSourceAttributesAdditionsSettings": [],
249 "externalFileStorageUrl": null,
250 "filePrefix": null,
251 "defaultNewElementSettings": null,
252 "id": 4,
253 "name": null,
254 "isReadOnly": true,
255 "dataEditRuleIds": [],
256 "beforeSaveDataActions": [],
257 "afterSaveDataActions": [],
258 "discriminator": "DictionaryDataSource"
259 },
260 {
261 "dictionaryId": 67,
262 "hierarchyId": null,
263 "filter": null,
264 "sortingOptions": {
265 "attributes": [
266 {
267 "attribute": {
268 "id": 23,
269 "discriminator": "OwnAttributeDefinitionDto"
270 },
271 "sortDirection": "Descending",
272 "nullsSortingMode": "PlaceFirst"
273 }
274 ]
275 },
276 "groupingOptions": null,
277 "dictionaryAttributes": null,
278 "defaultValue": [],
279 "defaultValueExpressionId": null,
280 "parameterId": null,
281 "dictionarySourceSelectionMode": "None",
282 "dataSourceAttributesAdditionsSettings": [],
283 "externalFileStorageUrl": null,
284 "filePrefix": null,
285 "defaultNewElementSettings": null,
286 "id": 5,
287 "name": null,
288 "isReadOnly": true,
289 "dataEditRuleIds": [],
290 "beforeSaveDataActions": [],
291 "afterSaveDataActions": [],
292 "discriminator": "DictionaryDataSource"
293 }
294 ],
295 "parameters": [],
296 "binaryConditionsRules": [],
297 "submitValidateRules": [],
298 "expressions": [],
299 "controlsValueCalculateRules": [],
300 "actions": [],
301 "conditionActionIdsOnOpen": [],
302 "conditionalActions": [],
303 "selectionSets": [],
304 "reportTemplates": [],
305 "useNewDependenciesBuilder": null
306 }
Пример использования в отчете
1 {
2 "workflowId": null,
3 "leftHeader": {
4 "useLazyDataLoadingStrategy": false,
5 "dictionaries": [
6 {
7 "showDataIfAbsentFilter": null,
8 "coordAttribute": null,
9 "cartesianOptions": "Default",
10 "canSelectAttribute": null,
11 "groupingOptions": null,
12 "groupingMethod": "Default",
13 "sortingOptions": {
14 "attributes": [
15 {
16 "attribute": {
17 "id": 2,
18 "discriminator": "OwnAttributeDefinitionDto"
19 },
20 "sortDirection": "Ascending",
21 "nullsSortingMode": "PlaceFirst"
22 }
23 ]
24 },
25 "rootElement": null,
26 "virtualElements": null,
27 "displayValueOptions": null,
28 "displayAttribute": null,
29 "dictionaryId": 67,
30 "filter": {
31 "value": null,
32 "skipIfValueNull": false,
33 "attributeId": null,
34 "attribute": {
35 "id": 1,
36 "discriminator": "OwnAttributeDefinitionDto"
37 },
38 "conditionType": "AllElements",
39 "inversion": false,
40 "discriminator": "ValueConditionalDictionaryFilterDto"
41 },
42 "selection": null,
43 "hierarchyId": null,
44 "limit": null
45 }
46 ],
47 "dictionaryAttributesLinks": [],
48 "specialFilters": {
49 "filtersByDataOptions": {
50 "filtersByData": [],
51 "needRestoreFullHierachy": false,
52 "joinOption": "Or",
53 "restoreElements": null
54 },
55 "dictionaryAttributesLinks": [],
56 "needRestoreFullHierachy": false,
57 "restoreElements": null
58 },
59 "isEditable": false
60 },
61 "topHeader": {
62 "topHeaderItems": [
63 {
64 "dictionaryAttributes": [
65 {
66 "dictionaryId": 67,
67 "attribute": {
68 "id": 2,
69 "discriminator": "OwnAttributeDefinitionDto"
70 },
71 "filter": null,
72 "sortingOptions": null,
73 "attributeId": null,
74 "displayAttributeType": "AttributeName",
75 "displayAttributeName": null,
76 "addFirstElementValue": false,
77 "overwriteNotFirstElementValues": true,
78 "delimiter": ", ",
79 "hideAttributeNameInHeader": false,
80 "headerNameDelimiter": " / ",
81 "duplicateValuesForNextDictionaries": true,
82 "duplicateValuesForNextRows": true,
83 "displayValueOptions": null,
84 "linkedAttributeSettings": null,
85 "skippedFilterAttributesByLink": [],
86 "filterOptionsByLinks": null
87 }
88 ],
89 "settings": null,
90 "hyperlinkOptions": null,
91 "hasImage": false,
92 "columnOptions": null,
93 "discriminator": "AttributeHeaderItemDto"
94 },
95 {
96 "dictionaryAttributes": [
97 {
98 "dictionaryId": 67,
99 "attribute": {
100 "id": 21,
101 "discriminator": "OwnAttributeDefinitionDto"
102 },
103 "filter": null,
104 "sortingOptions": null,
105 "attributeId": null,
106 "displayAttributeType": "AttributeName",
107 "displayAttributeName": null,
108 "addFirstElementValue": false,
109 "overwriteNotFirstElementValues": true,
110 "delimiter": ", ",
111 "hideAttributeNameInHeader": false,
112 "headerNameDelimiter": " / ",
113 "duplicateValuesForNextDictionaries": true,
114 "duplicateValuesForNextRows": true,
115 "displayValueOptions": null,
116 "linkedAttributeSettings": null,
117 "skippedFilterAttributesByLink": [],
118 "filterOptionsByLinks": null
119 }
120 ],
121 "settings": null,
122 "hyperlinkOptions": null,
123 "hasImage": false,
124 "columnOptions": null,
125 "discriminator": "AttributeHeaderItemDto"
126 },
127 {
128 "dictionaryAttributes": [
129 {
130 "dictionaryId": 67,
131 "attribute": {
132 "id": 22,
133 "discriminator": "OwnAttributeDefinitionDto"
134 },
135 "filter": null,
136 "sortingOptions": null,
137 "attributeId": null,
138 "displayAttributeType": "AttributeName",
139 "displayAttributeName": null,
140 "addFirstElementValue": false,
141 "overwriteNotFirstElementValues": true,
142 "delimiter": ", ",
143 "hideAttributeNameInHeader": false,
144 "headerNameDelimiter": " / ",
145 "duplicateValuesForNextDictionaries": true,
146 "duplicateValuesForNextRows": true,
147 "displayValueOptions": null,
148 "linkedAttributeSettings": null,
149 "skippedFilterAttributesByLink": [],
150 "filterOptionsByLinks": null
151 }
152 ],
153 "settings": null,
154 "hyperlinkOptions": null,
155 "hasImage": false,
156 "columnOptions": null,
157 "discriminator": "AttributeHeaderItemDto"
158 },
159 {
160 "dictionaryAttributes": [
161 {
162 "dictionaryId": 67,
163 "attribute": {
164 "id": 23,
165 "discriminator": "OwnAttributeDefinitionDto"
166 },
167 "filter": null,
168 "sortingOptions": null,
169 "attributeId": null,
170 "displayAttributeType": "AttributeName",
171 "displayAttributeName": null,
172 "addFirstElementValue": false,
173 "overwriteNotFirstElementValues": true,
174 "delimiter": ", ",
175 "hideAttributeNameInHeader": false,
176 "headerNameDelimiter": " / ",
177 "duplicateValuesForNextDictionaries": true,
178 "duplicateValuesForNextRows": true,
179 "displayValueOptions": null,
180 "linkedAttributeSettings": null,
181 "skippedFilterAttributesByLink": [],
182 "filterOptionsByLinks": null
183 }
184 ],
185 "settings": null,
186 "hyperlinkOptions": null,
187 "hasImage": false,
188 "columnOptions": null,
189 "discriminator": "AttributeHeaderItemDto"
190 }
191 ],
192 "needFilterAttributesByLinks": false,
193 "enableFilterByLinks": false,
194 "numerationSettings": null,
195 "filterOptions": null
196 },
197 "parameters": [],
198 "styles": [],
199 "styleOptions": [],
200 "stylesTemplate": [],
201 "filtersByDataOptions": null,
202 "view": null,
203 "externalExecutions": null,
204 "settings": null,
205 "code": "P_Сортировка элементов справочника (SortingOptions)",
206 "id": 82,
207 "name": "Сортировка элементов справочника (SortingOptions)"
208 }