Платформа 3V/Формы/Правила
Настройка правил видимости/редактируемости позволяет скрыть или заблокировать определенные поля формы (поля ввода, кнопки, таблицы и прочее) при определенных условиях.
Для ограничения видимости или редактируемости элемента необходимо настроить Выражение, на основании которого будет происходить расчет.
Примечание! Итог выражения должен быть равен true или false. Пример выражения:
1 {
2 "id": 4,
3 "expression": "if ([1] = 1, true, false)",
4 "name": "Правило, видимость тип договора = аренда",
5 "operands": [
6 {
7 "uiSourceId": 100,
8 "id": 1,
9 "discriminator": "EntryExpressionUiSourceParameterDto"
10 }
11 ],
12 "comment": "Операнд - это значение определенного элемента и поле будет видимо/редактируемо, если значение этого поля будет = 1 = элемент справочника 'аренда'"
13 }
Настройка правил
Настройка Правил производится двумя способами:
1. В пункте "Правила" в выбранном элементе:
- нажмите + Добавить
- выберите необходимый тип правила
- нажмите + Новое правило
- задайте правило и нажмите "Применить"
2.Добавьте Выражение в соответствующем блоке в левой панели и выберите его уже при настройке элемента в пункте "Правило".
Подробнее о настройке выражения смотрите страницу Выражение.
Пример использования: настройка правила на совпадение текущего пользователя и атрибута "Пользователь"
Пример можно посмотреть здесь.
При условии, что текущий открываемый справочник, например, справочник "Заявок" имеет атрибут, содержащий информацию о логине или связи с пользователем и необходимо сравнить является ли текущий пользователь указанному в атрибуте:
1. Добавляем выражение, которое будет сравнивать атрибут "preferred_username" (логин текущего пользователя) с логином пользователя из атрибута. В данном случае в атрибуте находится справочник пользователей и поэтому мы вычисляем связанный (транзитивный) атрибут (id: 20 атрибут "Пользователь" -> id: 22 атрибут "Логин" спр."Пользователи"). И если они совпадают, выражение возвращает true
{
"expression": "if([1]=[2], true, false)",
"returnFirstParameterValue": false,
"operands": [
{
"dictionarySourceId": 1,
"attributeId": null,
"attribute": {
"innerAttribute": {
"discriminator": "OwnAttributeDefinitionDto",
"id": 22
},
"discriminator": "TransitiveAttributeDefinitionDto",
"id": 20
},
"getFirstElementValue": false,
"useAllInstanceElements": false,
"discriminator": "EntryExpressionDictionarySourceParameter",
"id": 1,
"allowMultipleValues": false
},
{
"attributeId": "preferred_username",
"discriminator": "EntryExpressionTokenAttributeParameter",
"id": 2,
"allowMultipleValues": false
}
],
"id": 1,
"name": "Выражение",
"code": null
}
2. Выставляем данное выражение в правило на видимость поля. В нашем случае - это изображение. Правило на видимость (свойство: "visibleExpressionIds")
3. Измените значение в поле "Создатель" на свой логин, нажмите на "Сохранить" и вы увидите изображение, если сменить на логин произвольного пользователя, то изображение пропадет