Платформа 3V/Справочник/Задание атрибутов в справочнике/Выбор необходимого типа данных для атрибутов/Изменение типа атрибута на связанный: различия между версиями
V.emke (обсуждение | вклад) |
м (A.kazanceva переименовал страницу Платформа 3V/Справочник/Изменение типа атрибута на связанный в Платформа 3V/Справочник/Задание атрибутов в справочнике/Выбор необходимого типа данных для атрибутов/Изменение типа атрибута на связанный) |
||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 3: | Строка 3: | ||
== Описание == | == Описание == | ||
− | + | Если в значениях атрибута, который необходимо связать с другим справочником, выведены идентификаторы связанного справочника, то достаточно указать тип "Связанный" и наименование связанного справочника в Конструкторе. <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/Справочник/Настройка уникального индекса в справочнике|'''наличие уникального индекса в связанном справочнике''']] на соответствующем поле атрибута! Данное требование существует из-за необходимости подтверждения уникальности элементов по атрибуту связанного справочника, чтобы исключить ситуацию нескольких элементов с одинаковыми значениями атрибута в связанном справочнике. | ||
== Пример == | == Пример == | ||
Строка 49: | Строка 52: | ||
2. В настройке '''attributeLink''' прописываем: | 2. В настройке '''attributeLink''' прописываем: | ||
− | * Вариант 1: | + | * Вариант 1. Отображение логина (тех же значений): |
'''attributeLink.name''' - "Пользователи" <br> | '''attributeLink.name''' - "Пользователи" <br> | ||
Строка 58: | Строка 61: | ||
[[Файл:Атрибут assignee attributeLink 21.png|мини|слева]]<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | [[Файл:Атрибут assignee attributeLink 21.png|мини|слева]]<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | ||
− | * Вариант 2: | + | * Вариант 2. Отображение Фамилии и Имени: |
'''attributeLink.name''' - "Пользователи" <br> | '''attributeLink.name''' - "Пользователи" <br> | ||
'''attributeLink.linkedDictionaryId''' - 9 <br> | '''attributeLink.linkedDictionaryId''' - 9 <br> | ||
'''attributeLink.linkedAttributeId''' - 21 (так как связываем данные по логину, то ищем в связанном справочнике "Пользователи" атрибут с логином и указываем его идентификатор) <br> | '''attributeLink.linkedAttributeId''' - 21 (так как связываем данные по логину, то ищем в связанном справочнике "Пользователи" атрибут с логином и указываем его идентификатор) <br> | ||
− | '''attributeLink.linkedAttributeNameId''' - 2 (так как хотим заменить логин на Имя | + | '''attributeLink.linkedAttributeNameId''' - 2 (так как хотим заменить логин на Фамилию и Имя в текущем справочнике, то указываем идентификатор атрибута с Фамилией и Именем в справочнике "Пользователи") <br> |
[[Файл:Атрибут assignee attributeLink 2.png|мини|слева]] | [[Файл:Атрибут assignee attributeLink 2.png|мини|слева]] |
Текущая версия на 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", в значениях которого указан логин:
Необходимо связать данный атрибут со справочником "Пользователи". Для этого:
1. Меняем значение "Custom" на "Linked" в настройке type:
2. В настройке attributeLink прописываем:
- Вариант 1. Отображение логина (тех же значений):
attributeLink.name - "Пользователи"
attributeLink.linkedDictionaryId - 9
attributeLink.linkedAttributeId - 21 (так как связываем данные по логину, то ищем в связанном справочнике "Пользователи" атрибут с логином и указываем его идентификатор)
attributeLink.linkedAttributeNameId - 21 (так как хотим оставить в значениях логин в текущем справочнике, то указываем идентификатор атрибута с логином в справочнике "Пользователи")
- Вариант 2. Отображение Фамилии и Имени:
attributeLink.name - "Пользователи"
attributeLink.linkedDictionaryId - 9
attributeLink.linkedAttributeId - 21 (так как связываем данные по логину, то ищем в связанном справочнике "Пользователи" атрибут с логином и указываем его идентификатор)
attributeLink.linkedAttributeNameId - 2 (так как хотим заменить логин на Фамилию и Имя в текущем справочнике, то указываем идентификатор атрибута с Фамилией и Именем в справочнике "Пользователи")