Платформа 3V/Календарный справочник

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Календарный справочник – это иерархическое представление временной шкалы данных по уровням временных отрезков: день, неделя, месяц, квартал, полугодие, год.
Для начала работы с календарным справочником создайте новый календарный справочник или откройте существующий.

Создание нового календарного справочника

Для создания нового календарного справочника выполните одно из действий:

  • нажмите на тип объектов Календарный справочник в разделе «Создать» на главной странице;
  • выберите в раскрывающемся списке тип объектов Календарный справочник при нажатии на кнопку Создать в навигаторе объектов;
  • нажмите кнопку Справочники в разделе «Календарные справочники» на боковой панели.

После выполнения одного из действий календарный справочник будет создан в текущей открытой папке или в корневом каталоге навигатора по умолчанию и открыт для просмотра и редактирования на новой вкладке, расположенной в наборе вкладок:

Новый календарный справочник










Для удобного создания справочника используйте шаблон метаописания в формате JSON

Открытие существующего календарного справочника

Для открытия существующего календарного справочника выполните одно из действий:

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

Открытый календарный справочник










Для передачи прямой ссылки на открытый календарный справочник скопируйте ссылку с помощью кнопки Скопировать ссылку на боковой панели календарного справочника в правой части страницы.

JSON календарного справочника

Для удобного создания справочника используйте шаблон метаописания в формате JSON:

JSON календарного справочника
  1 {
  2   "calendarModel": {
  3     "calendarLevels": [
  4       0,
  5       1,
  6       4
  7     ],
  8     "customRootName": "Всего",
  9     "calendarStartDate": {
 10       "isFixedDate": true,
 11       "fixedDate": "2016-01-01T00:00:00",
 12       "relativeOffset": 0,
 13       "calendarLevel": 1
 14     },
 15     "calendarEndDate": {
 16       "isFixedDate": true,
 17       "fixedDate": "2019-12-31T00:00:00",
 18       "relativeOffset": 2,
 19       "calendarLevel": 1
 20     },
 21     "dictionaryType": 1,
 22     "id": 0,
 23     "name": "",
 24     "code": "",
 25     "tableName": "",
 26     "sequenceName": "",
 27     "databaseId": 0,
 28     "isNew": true,
 29     "attributes": [],
 30     "indexes": []
 31   },
 32   "dictionaryStructure": {
 33     "dictionaryType": 2,
 34     "id": 0,
 35     "name": "Каледнарный справочник 2",
 36     "code": "DICT_CALENDAR_NEW",
 37     "tableName": "T_636916396666133745",
 38     "sequenceName": "",
 39     "databaseId": 0,
 40     "isNew": true,
 41     "attributes": [
 42       {
 43         "attributeLink": null,
 44         "id": 1,
 45         "name": "Идентификатор",
 46         "code": "ID",
 47         "dataType": 2,
 48         "type": 1,
 49         "isNullable": false,
 50         "hasMultipleValues": false,
 51         "isVisible": false,
 52         "isReadonly": true,
 53         "formula": "",
 54         "tableName": "",
 55         "identIndex": {
 56           "dbIndexName": null,
 57           "code": null,
 58           "isUnique": false,
 59           "fields": []
 60         },
 61         "referenceIndex": {
 62           "dbIndexName": null,
 63           "code": null,
 64           "isUnique": false,
 65           "fields": []
 66         }
 67       },
 68       {
 69         "attributeLink": null,
 70         "id": 2,
 71         "name": "Наименование",
 72         "code": "NAME",
 73         "dataType": 1,
 74         "type": 2,
 75         "isNullable": false,
 76         "hasMultipleValues": false,
 77         "isVisible": true,
 78         "isReadonly": false,
 79         "formula": "",
 80         "tableName": "",
 81         "identIndex": {
 82           "dbIndexName": null,
 83           "code": null,
 84           "isUnique": false,
 85           "fields": []
 86         },
 87         "referenceIndex": {
 88           "dbIndexName": null,
 89           "code": null,
 90           "isUnique": false,
 91           "fields": []
 92         }
 93       },
 94       { 
 95         "attributeLink": null,
 96         "id": 3,
 97         "name": "Порядок",
 98         "code": "ORD",
 99         "dataType": 2,
100         "type": 3,
101         "isNullable": true,
102         "hasMultipleValues": false,
103         "isVisible": false,
104         "isReadonly": false,
105         "formula": "",
106         "tableName": "",
107         "identIndex": {
108           "dbIndexName": null,
109           "code": null,
110           "isUnique": false,
111           "fields": []
112         },
113         "referenceIndex": {
114           "dbIndexName": null,
115           "code": null,
116           "isUnique": false,
117           "fields": []
118         }
119       },
120       {
121         "attributeLink": null,
122         "id": 4,
123         "name": "Родитель",
124         "code": "PARENT_ID",
125         "dataType": 2,
126         "type": 4,
127         "isNullable": true,
128         "hasMultipleValues": false,
129         "isVisible": true,
130         "isReadonly": false,
131         "formula": "",
132         "tableName": "",
133         "identIndex": {
134           "dbIndexName": null,
135           "code": null,
136           "isUnique": false,
137           "fields": []
138         },
139         "referenceIndex": {
140           "dbIndexName": null,
141           "code": null,
142           "isUnique": false,
143           "fields": []
144         }
145       },
146       {
147         "attributeLink": null,
148         "id": 5,
149         "name": "Дата начала",
150         "code": "START_DATE",
151         "dataType": 4,
152         "type": 5,
153         "isNullable": true,
154         "hasMultipleValues": false,
155         "isVisible": true,
156         "isReadonly": false,
157         "formula": "",
158         "tableName": "",
159         "identIndex": {
160           "dbIndexName": null,
161           "code": null,
162           "isUnique": false,
163           "fields": []
164         },
165         "referenceIndex": {
166           "dbIndexName": null,
167           "code": null,
168           "isUnique": false,
169           "fields": []
170         }
171       },
172       {
173         "attributeLink": null,
174         "id": 6,
175         "name": "Дата окончания",
176         "code": "END_DATE",
177         "dataType": 4,
178         "type": 6,
179         "isNullable": true,
180         "hasMultipleValues": false,
181         "isVisible": true,
182         "isReadonly": false,
183         "formula": "",
184         "tableName": "",
185         "identIndex": {
186           "dbIndexName": null,
187           "code": null,
188           "isUnique": false,
189           "fields": []
190         },
191         "referenceIndex": {
192           "dbIndexName": null,
193           "code": null,
194           "isUnique": false,
195           "fields": []
196         }
197       },
198       {
199         "attributeLink": null,
200         "id": 7,
201         "name": "Уровень календаря",
202         "code": "CALENDAR_LEVEL",
203         "dataType": 2,
204         "type": 7,
205         "isNullable": true,
206         "hasMultipleValues": false,
207         "isVisible": true,
208         "isReadonly": false,
209         "formula": "",
210         "tableName": "",
211         "identIndex": {
212           "dbIndexName": null,
213           "code": null,
214           "isUnique": false,
215           "fields": []
216         },
217         "referenceIndex": {
218           "dbIndexName": null,
219           "code": null,
220           "isUnique": false,
221           "fields": []
222         }
223       }
224     ],
225     "indexes": []
226   }
227 }

Редактирование календарного справочника

Для редактирования календарного справочника:

  1. Откройте метаописание календарного справочника с помощью кнопки JSON на боковой панели календарного справочника в правой части страницы. Метаописание объекта формируется в формате JSON. После выполнения действий будет открыт раздел «JSON»:
JSON календарного справочника










  1. Измените необходимые параметры календарного справочника в коде метаописания или создайте новую структуру JSON для построения календарного справочника.
  2. Нажмите кнопку Сохранить изменения.

После выполнения действий календарный справочник будет отредактирован в соответствии с заданными параметрами, описание элементов справочника или измененная структура будет отображена в таблице календарного справочника.
Для обновления метаописания календарного справочника нажмите кнопку Обновить.

Операции над календарным справочником

В открытом календарном справочнике доступно обновление и сохранение данных календарного справочника.

Для сохранения календарного справочника при изменении нажмите кнопку Сохранить на панели инструментов.

Для обновления данных календарного справочника нажмите кнопку Обновить на панели инструментов.

Для календарного справочника выполняется работа с иерархиями, настройка оформления календарного справочника и экспорт аналогично простому справочнику. Перейдите к разделам: Работа с иерархиями справочника, Настройка оформления справочника, Экспорт справочника.

Настройки календарного справочника

Уровни

Уровни календаря задаются в поле calendarLevels:

1 {
2   "calendarModel": {
3     "calendarLevels": [
4     ...
5     ],
6   ...
7   }
8 }

Возможны два формата для задачи уровней:

Уровень Числовой формат Текстовый формат
Всего 0 Root
Год 1 Year
Полугодие 2 HalfYear
Квартал 3 Quarter
Месяц 4 Month
День 6 Day

Примеры:

 1 {
 2   "calendarModel": {
 3     "calendarLevels": [
 4       0,
 5       1,
 6       4
 7     ],
 8   ...
 9   }
10 }
 1 {
 2   "calendarModel": {
 3     "calendarLevels": [
 4       "Root",
 5       "Year",
 6       "Month"
 7     ],
 8   ...
 9   }
10 }

Форматы даты

Формат дат в календаре задается в поле attributesCustomText:

 1 {
 2   "calendarModel": {
 3     ...
 4     "attributesCustomText": [
 5       {
 6         "attributeId": ...,
 7         "levelFormats": [
 8           {
 9             "calendarLevel": ...,
10             "format": "..."
11           }
12         ]
13       }
14     ],
15   ...
16   }
17 }
Поле Описание
attributeId Идентификатор атрибута, в котором необходимо изменить формат
calendarLevel Уровень даты, формат которой необходимо изменить
format Необходимый формат даты

Возможные форматы дат:

Формат Описание
{YYYY} Год в виде четырехзначного числа
{YY} Год, в диапазоне от 00 до 99
{HY} Полугодие арабскими цифрами
{HYR} Полугодие римскими цифрами
{Q} Квартал арабскими цифрами
{QR} Квартал римскими цифрами
{MMMM} Полное название месяца
{MMGN} Полное название месяца родительном падеже
{MM} Месяц, в диапазоне от 01 до 12
{M} Месяц, в диапазоне от 1 до 12
{DD} День месяца, в диапазоне от 01 до 31
{D} День месяца, в диапазоне от 1 до 31
Примеры Результаты
 1 {
 2   "calendarModel": {
 3     ...
 4     "attributesCustomText": [
 5       {
 6         "attributeId": 2,
 7         "levelFormats": [
 8           {
 9             "calendarLevel": "Day",
10             "format": "{D} {MMGN}"
11           }
12         ]
13       }
14     ],
15   ...
16   }
17 }
Пример формата даты 1.png
 1 {
 2   "calendarModel": {
 3     ...
 4     "attributesCustomText": [
 5       {
 6         "attributeId": 2,
 7         "levelFormats": [
 8           {
 9             "calendarLevel": 0,
10             "format": "Пользовательское наименование"
11           },
12           {
13             "calendarLevel": 1,
14             "format": "{YYYY} год"
15           },
16           {
17             "calendarLevel": 2,
18             "format": "{QR} квартал {YYYY} год"
19           }
20         ]
21       }
22     ],
23   ...
24   }
25 }
Пример формата даты 2.png