Платформа 3V/Формы/Источники данных/Справочник/Установка значений атрибутов по умолчанию: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 21: Строка 21:
 
           }
 
           }
 
         ],
 
         ],
         "saveElementOnInitialize": true,
+
         "saveElementOnInitialize": false,
         "conditionExpressionId": 100
+
         "conditionExpressionId": null
 
       },
 
       },
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 38: Строка 38:
 
|  defaultValues.value|| Статичное значение атрибута
 
|  defaultValues.value|| Статичное значение атрибута
 
|-
 
|-
|  defaultValues.expressionId|| Идентификатор выражения, с помощью которого будет вычисляться значение по умолчанию
+
|  defaultValues.expressionId|| Идентификатор [[Платформа_3V/Формы/Выражения | '''выражения''']], с помощью которого будет вычисляться значение по умолчанию
 
|-
 
|-
|  saveElementOnInitialize || Сохранять элемент при открытии формы
+
|  saveElementOnInitialize || Сохранять элемент [[Платформа_3V/Формы/Источники_данных/Справочник/Создание_нового_элемента_при_открытии_формы | '''при открытии формы''']]
 
|-
 
|-
|  conditionExpressionId|| Идентификатор выражения с условием, при выполнении которого необходимо создавать новый элемент
+
|  conditionExpressionId|| Идентификатор [[Платформа_3V/Формы/Выражения | '''выражения''']] с условием, при выполнении которого необходимо создавать новый элемент
 
|}
 
|}
  
 
'''Важно!''' атрибуты, которым заданы значения по умолчанию, обязательно должны быть добавлены на форму, в ином случае значение по умолчанию проставлено не будет.  
 
'''Важно!''' атрибуты, которым заданы значения по умолчанию, обязательно должны быть добавлены на форму, в ином случае значение по умолчанию проставлено не будет.  
 
Если данные поля не должны отображаться на форме, их возможно скрыть с помощью флага "Отображать"
 
Если данные поля не должны отображаться на форме, их возможно скрыть с помощью флага "Отображать"
 +
 +
<div class="NavFrame collapsed" style="width:1200px; overflow:auto;">
 +
  <div class="NavHead">Пример</div>
 +
  <div class="NavContent">
 +
[https://study.3v-cloud.com/navigator/#/home?objectId=2689 Форма с установленными атрибутами по умолчанию]
 +
  </div>
 +
</div>
 +
<br>
  
 
== Особенности использования ==
 
== Особенности использования ==
Новому элементу можно сразу при создании присвоить дефолтые значения атрибутов. Эти значения могут быть константой либо вычислены в expression. Но есть одно ограничение: этот метод не сможет подставить значение из других справочников, т.к. он срабатывает ДО построения источников
+
При необходимости выставления значения из атрибутов на основании элемента справочника требуется использовать НЕ источник - справочник с фильтром в форме в качестве источника данных, а выражение [[Платформа_3V/Формы/Выражения/Параметры/На_справочнике_-_объекте_репозитория_(EntryExpressionByDictionaryRequest)| '''на справочнике - объекте репозитория''']] с требуемыми фильтрами.
  
 +
Пример: в параметр формы приходит определенный элемент справочника, значения атрибутов которого требуется подставить в новый создаваемый элемент
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
+
<div class="NavFrame collapsed" style="width:1200px; overflow:auto;">
<div style="font-weight:bold;line-height:1.6;">JSON серверной карточки</div>
+
  <div class="NavHead">Пример</div>
<div class="mw-collapsible-content mw-collapsed-content">
+
  <div class="NavContent">
<syntaxhighlight lang="JSON" line>
+
[https://study.3v-cloud.com/navigator/#/home?objectId=3391 Пример по выставлению атрибутов элемента справочника]
{
+
   </div>
  "id": 1,
+
</div>
  "name": "Создание элемента справочника",
+
<br>
  "description": null,
+
 
  "ConditionActionIdsOnOpen": [],
+
Для выставления значений по умолчанию в поле с типом "Раскрывающийся список" или “Выбор из списка” при наличии "Источника данных", т.е. при необходимости сохранять данные в связанный источник, используйте текущий описанный механизм. В случае отстутвия источника данных, например, при использовании списков в качестве фильтров в реестровых формах, возможно воспользоваться [[Платформа_3V/Формы/Источники_данных/Справочник/Выбор_элементов_по_умолчанию| '''следующим способом''']], однако он не будет работать в первом случае
   "uiSources": [
 
    {
 
      "defaultValue": null,
 
      "value": null,
 
      "id": 105,
 
      "hasMultipleValue": false,
 
      "caption": "Справочник",
 
      "enable": true,
 
      "visible": true,
 
      "dataSourceId": 105,
 
      "hint": null,
 
      "uiDataSource": {
 
        "attributeId": 1,
 
        "sourceId": 105,
 
        "discriminator": "UiDataSourceDictionary"
 
      },
 
      "doActionOnChangeValue": true,
 
      "onAfterChangeValueConditionalActions": null,
 
      "onAfterChangeValueByClientConditionalActions": [],
 
      "enableRuleIds": [],
 
      "visibleRuleIds": [],
 
      "access": {
 
        "read": {
 
          "roles": [],
 
          "inversion": false,
 
          "default": true
 
        },
 
        "edit": {
 
          "roles": [],
 
          "inversion": false,
 
          "default": true
 
        }
 
      },
 
      "isValueChanged": false,
 
      "expressionId": null,
 
      "discriminator": "DictionarySourceEntry"
 
    }
 
  ],
 
  "entryDataSources": [
 
    {
 
      "discriminator": "DictionaryDataSource",
 
      "dictionaryId": 105,
 
      "filter": null,
 
      "dictionarySourceSelectionMode": "None",
 
      "id": 105,
 
      "name": "Справочник",
 
      "isReadOnly": false,
 
      "defaultNewElementSettings": {
 
        "createElementConditionId": 111100,
 
        "defaultValues": [
 
          {
 
            "attributeId": 2,
 
            "value": "Новый объект1",
 
            "expressionId": null
 
          },
 
          {
 
            "attributeId": 21,
 
            "value": null,
 
            "expressionId": 3001
 
          }
 
        ],
 
        "saveElementOnInitialize": true
 
      }
 
    }
 
  ],
 
  "parameters": [
 
    {
 
      "id": 1,
 
      "name": "Элемент справочника",
 
      "defaultValue": []
 
    }
 
  ],
 
  "binaryConditionsRules": [
 
    {
 
      "id": 111100,
 
      "binaryCondition": {
 
        "expressionId": 111100,
 
        "value": null,
 
        "conditionType": "ValueIsNotNull",
 
        "inversion": true,
 
        "discriminator": "BinaryConditionExpressionOperand"
 
      }
 
    }
 
  ],
 
  "SubmitValidateRules": [],
 
  "expressions": [
 
    {
 
      "id": 3001,
 
      "expression": "Now()",
 
      "returnFirstParameterValue": true,
 
      "parameters": [],
 
      "comment": "Текущая дата"
 
    },
 
    {
 
      "id": 111100,
 
      "expression": null,
 
      "returnFirstParameterValue": true,
 
      "parameters": [
 
        {
 
          "parameterId": 1,
 
          "id": 0,
 
          "allowMultipleValues": false,
 
          "discriminator": "EntryExpressionCardParameterDto"
 
        }
 
      ],
 
      "comment": "Возвращает значение параметр карточки [1]"
 
    }
 
  ],
 
  "actions": [],
 
  "conditionalActions": [],
 
  "selectionSets": []
 
}
 
</syntaxhighlight>
 
</div></div>
 

Текущая версия на 05:27, 2 августа 2022

Описание

Для того чтобы при открытии формы у атрибутов справочника задавались значения по умолчанию, в источнике (DictionaryDataSource ) необходимо прописать defaultNewElementSettings и прописать условия заполнения атрибутов:

"entryDataSources": {}
 1  "defaultNewElementSettings": {
 2           "defaultValues": [
 3           {
 4             "attributeId": 2,
 5             "value": "Новый объект",
 6             "expressionId": null
 7           },    
 8           {
 9             "attributeId": 3,
10             "value": null,
11             "expressionId": 1001
12           }
13         ],
14         "saveElementOnInitialize": false,
15         "conditionExpressionId": null
16       },
Поле Описание
defaultValues Значения атрибутов, которые присваиваются новому элементу
defaultValues.attributeId Идентификатор атрибута, которому требуется задать значение по умолчанию
defaultValues.value Статичное значение атрибута
defaultValues.expressionId Идентификатор выражения, с помощью которого будет вычисляться значение по умолчанию
saveElementOnInitialize Сохранять элемент при открытии формы
conditionExpressionId Идентификатор выражения с условием, при выполнении которого необходимо создавать новый элемент

Важно! атрибуты, которым заданы значения по умолчанию, обязательно должны быть добавлены на форму, в ином случае значение по умолчанию проставлено не будет. Если данные поля не должны отображаться на форме, их возможно скрыть с помощью флага "Отображать"


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

При необходимости выставления значения из атрибутов на основании элемента справочника требуется использовать НЕ источник - справочник с фильтром в форме в качестве источника данных, а выражение на справочнике - объекте репозитория с требуемыми фильтрами.

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


Для выставления значений по умолчанию в поле с типом "Раскрывающийся список" или “Выбор из списка” при наличии "Источника данных", т.е. при необходимости сохранять данные в связанный источник, используйте текущий описанный механизм. В случае отстутвия источника данных, например, при использовании списков в качестве фильтров в реестровых формах, возможно воспользоваться следующим способом, однако он не будет работать в первом случае