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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 7 промежуточных версий 2 участников)
Строка 3: Строка 3:
 
== Описание ==
 
== Описание ==
  
Для того, чтобы изменить тип атрибута на связанный, необходимы прописать "Linked" в настройке '''type''' и прописать настройку '''attributeLink''':
+
Если в значениях атрибута, который необходимо связать с другим справочником, выведены идентификаторы связанного справочника, то достаточно указать тип "Связанный" и наименование связанного справочника в Конструкторе. <br>
 +
Если же в значениях атрибута, который необходимо связать с другим справочником, выведены не идентификаторы, а другие значения, то необходимо прописать "Linked" в настройке '''type''' и прописать настройку '''attributeLink''':
  
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
Строка 15: Строка 16:
 
         "type": "Linked",
 
         "type": "Linked",
 
         "attributeLink": {
 
         "attributeLink": {
           "name": ...,
+
           "name": "Справочник",
           "linkedDictionaryId": ...,
+
           "linkedDictionaryId": 134,
           "linkedAttributeId": ...,
+
           "linkedAttributeId": 2,
           "linkedAttributeNameId": ...,
+
           "linkedAttributeNameId": 3,
 
           "canSelect": null
 
           "canSelect": null
 
         },
 
         },
Строка 34: Строка 35:
 
'''attributeLink.linkedAttributeId''' - в связанном справочнике идентификатор атрибута, по которому необходимо связать данные <br>
 
'''attributeLink.linkedAttributeId''' - в связанном справочнике идентификатор атрибута, по которому необходимо связать данные <br>
 
'''attributeLink.linkedAttributeNameId''' - в связанном справочнике идентификатор атрибута, значения которого необходимо отобразить в текущем справочнике <br>
 
'''attributeLink.linkedAttributeNameId''' - в связанном справочнике идентификатор атрибута, значения которого необходимо отобразить в текущем справочнике <br>
 +
 +
Важно! Для создания связей в справочнике НЕ по идентификатору обязательно [[Платформа 3V/Справочник/Настройка уникального индекса в справочнике|'''наличие уникального индекса в связанном справочнике''']] на соответствующем поле атрибута! Данное требование существует из-за необходимости подтверждения уникальности элементов по атрибуту связанного справочника, чтобы исключить ситуацию нескольких элементов с одинаковыми значениями атрибута в связанном справочнике.
  
 
== Пример ==
 
== Пример ==

Текущая версия на 10:23, 13 сентября 2021

Содержание

Описание

Если в значениях атрибута, который необходимо связать с другим справочником, выведены идентификаторы связанного справочника, то достаточно указать тип "Связанный" и наименование связанного справочника в Конструкторе.
Если же в значениях атрибута, который необходимо связать с другим справочником, выведены не идентификаторы, а другие значения, то необходимо прописать "Linked" в настройке type и прописать настройку attributeLink:

 1 {
 2   ...
 3   "dictionaryStructure": {
 4     "attributes": [
 5      ...
 6       {
 7         ...
 8         "type": "Linked",
 9         "attributeLink": {
10           "name": "Справочник",
11           "linkedDictionaryId": 134,
12           "linkedAttributeId": 2,
13           "linkedAttributeNameId": 3,
14           "canSelect": null
15         },
16         ...
17       }
18     ],
19     ...
20   },
21   ...
22 }

attributeLink.name - наименование связанного справочника
attributeLink.linkedDictionaryId - идентификатор связанного справочника
attributeLink.linkedAttributeId - в связанном справочнике идентификатор атрибута, по которому необходимо связать данные
attributeLink.linkedAttributeNameId - в связанном справочнике идентификатор атрибута, значения которого необходимо отобразить в текущем справочнике

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

Пример

В справочнике имеется атрибут assignee с типом "Custom", в значениях которого указан логин:

Атрибут assignee.png
















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

1. Меняем значение "Custom" на "Linked" в настройке type:

Атрибут assignee type Linked.png
























2. В настройке attributeLink прописываем:

  • Вариант 1. Отображение логина (тех же значений):

attributeLink.name - "Пользователи"
attributeLink.linkedDictionaryId - 9
attributeLink.linkedAttributeId - 21 (так как связываем данные по логину, то ищем в связанном справочнике "Пользователи" атрибут с логином и указываем его идентификатор)
attributeLink.linkedAttributeNameId - 21 (так как хотим оставить в значениях логин в текущем справочнике, то указываем идентификатор атрибута с логином в справочнике "Пользователи")

Атрибут assignee attributeLink 21.png
















  • Вариант 2. Отображение Фамилии и Имени:

attributeLink.name - "Пользователи"
attributeLink.linkedDictionaryId - 9
attributeLink.linkedAttributeId - 21 (так как связываем данные по логину, то ищем в связанном справочнике "Пользователи" атрибут с логином и указываем его идентификатор)
attributeLink.linkedAttributeNameId - 2 (так как хотим заменить логин на Фамилию и Имя в текущем справочнике, то указываем идентификатор атрибута с Фамилией и Именем в справочнике "Пользователи")

Атрибут assignee attributeLink 2.png