Платформа 3V/Формы/Источники данных/Справочник/Создание нового элемента при открытии формы
Описание
Новый элемент справочника можно создавать с помощью Action (CreateNewElementInDictionaryAction), но если выполнение этого Action запускается при открытии формы, то происходит следующее:
1. Запрашиваются все источники, которые используются в форме;
2. Выполняются Действия, установленные на открытии формы (ConditionActionIdsOnOpen), в т.ч. создается новый элемент справочника;
3. Перестраиваются источники, которые зависят от этого элемента.
Если все источники зависят от одного главного справочника, то это, по сути, приводит к двойному построению формы. Метод defaultNewElementSettings срабатывает еще по первого построения источников и позволяет уйти от двойного запроса одних и тех же справочников и пивотов.
Для того, чтобы при открытии формы сразу создавался элемент справочника, необходимо в источнике данных (DictionaryDataSource ) прописать defaultNewElementSettings:
"entryDataSources": {} |
---|
1 "defaultNewElementSettings": {
2 "createElementConditionId": 111100,
3 "defaultValues": [
4 {
5 "attributeId": 2,
6 "value": "Новый объект",
7 "expressionId": null
8 },
9 {
10 "attributeId": 3,
11 "value": null,
12 "expressionId": 1001
13 }
14 ],
15 "saveElementOnInitialize": true
16 },
|
Поле | Описание |
---|---|
createElementConditionId | Условие, при выполнении которого необходимо создавать новый элемент (binaryConditionsRules) |
defaultValues | Значения атрибутов, которые присваиваются новому элементу |
saveElementOnInitialize | Сохранять элемент при инициализации формы |
Особенности использования
Новому элементу можно сразу при создании присвоить дефолтые значения атрибутов. Эти значения могут быть константой либо вычислены в expression. Но есть одно ограничение: этот метод не сможет подставить значение из других справочников, т.к. он срабатывает ДО построения источников