Настройка карточек и форм позволяет адаптировать сущности системы под ваши рабочие процессы. Конфигурация задаётся в формате JSON. Настраиваются:
Примечание
Для доступа к настройке требуется набор прав для роли Администратор с активными правами для гранулы «Настройки менеджера объектов».
Настройка разделена на две вкладки:

На обеих вкладках работает редактор JSON с двумя вспомогательными функциями:
Важно
Откройте вкладку Настройки карточки и нажмите «Вставить системные настройки». За заголовок отвечает раздел headerParams:
{
"headerParams": {
"mainProperties": [
{
"property": "code",
"type": "link",
"copyAllowed": true
},
{
"property": "organization",
"type": "popup",
"copyAllowed": null
},
{
"property": "manager",
"type": "popup",
"copyAllowed": null
},
{
"property": "project",
"type": "popup",
"copyAllowed": null
},
{
"property": "created",
"type": "text",
"copyAllowed": null
}
]
}
}
mainProperties — массив главных свойств, которые отображаются рядом с названием сделки. Каждое свойство описывается параметрами:
property — системное название поля (например, organization, manager);type — тип отображения:
popup — для навигационных свойств: при клике откроется всплывающее окно связанной сущности, из которого можно перейти в её карточку. Всплывающее окно доступно для:
link — для навигационных свойств: отображается как обычная ссылка на карточку связанной сущности. Работает только для сущностей, у которых в системе есть карточка. Для полей-справочников и других значений без карточки используйте text;text — для любых свойств: отображается как обычный текст;copyAllowed — если true, рядом со значением появляется кнопка копирования в буфер обмена. Значение null равнозначно отсутствию свойства.Чтобы скрыть свойство из заголовка, удалите его объект из массива. Чтобы добавить — создайте новый объект с property и type.
Примечание
Полный перечень свойств сущности доступен на вкладке Свойства её карточки в Менеджере сущностей.
Вкладками карточки управляет массив tabs на той же вкладке Настройки карточки. Каждая вкладка описывается тремя свойствами:
state — уникальный системный идентификатор. Он становится частью URL при переходе на вкладку (например, ../deals/DEAL-1/profile);header — название вкладки: ключ перевода ("shared.groups.main") или обычный текст ("Дополнительно");order — позиция вкладки: чем меньше число, тем левее она расположена.Чтобы добавить собственную вкладку, создайте в массиве новый объект с уникальным state и сохраните настройки. В примере ниже к стандартным вкладкам сделки добавлена вкладка Дополнительно:
{
"tabs": [
{
"state": "profile",
"header": "shared.groups.main",
"order": 101
},
{
"state": "issues",
"header": "shared.groups.issues",
"order": 102
},
{
"state": "contracts",
"header": "shared.groups.contracts",
"order": 103
},
{
"state": "interactions",
"header": "shared.groups.interactions",
"order": 104
},
{
"state": "feed",
"header": "shared.groups.feed",
"order": 105
},
{
"state": "additional",
"header": "Дополнительно",
"order": 106
}
]
}
Здесь же можно скрыть вкладку (удалите её объект из массива) или поменять порядок (измените order).
Важно
Если изменить state стандартной вкладки, на которой есть список сущностей (например, Задачи или Договоры), список отображён не будет — он жёстко привязан к стандартному стейту.
Новая вкладка будет пустой, состав её полей задаётся на вкладке Настройка форм.
Откройте вкладку Настройка форм. Перед редактором расположены селекторы, определяющие, какой макет вы изменяете:
Выберите в селекторах нужную форму и вкладку, нажмите «Вставить системные настройки» и отредактируйте конфигурацию — так проще, чем описывать секции и поля с нуля.

[
{
"type": "fields",
"header": null,
"label": null,
"order": null,
"isAsidePosition": null,
"fields": [
{
"name": "source",
"className": null,
"hint": "",
"position": null
},
{
"name": "probability",
"className": null,
"hint": "",
"position": null
}
]
}
]
type — тип группы:
"fields" — группа полей;"files" — секция вложений (файлов) сущности;"checklist" — секция чек-листа.header — заголовок группы: текст или ключ перевода. Если удалить header, секция станет статичной и потеряет возможность сворачиваться.order — позиция группы среди остальных.fields — массив полей (только для групп типа "fields").label — для "files" и "checklist": выводит секцию с обычной подписью вместо сворачиваемого заголовка.isAsidePosition — для "fields": если true, группа отображается в боковой панели карточки, если такая панель имеется.name — системное название поля (например, "source", "probability").hint — текст всплывающей подсказки. Пустая строка — подсказки нет.className — CSS-класс для стилизации. Например, "w-150" задаёт ширину в 150px.position — точная позиция поля в сетке группы (см. шаг 4).Важно
type — без него секция не отобразится.fields — это приведёт к ошибке отображения карточки.Примечание
В системной конфигурации незаполненные свойства выводятся со значениями null, "" или 0 — это равнозначно их отсутствию. При ручном редактировании такие свойства можно опускать.
По умолчанию поля распределяются по двум колонкам: нечётные слева, чётные справа. Точное расположение задаётся свойством position с параметрами:
row — номер строки (от 1 до N);column — позиция в колонке:
1 — левая колонка;1.5 — правая половина левой колонки;2 — правая колонка;2.5 — правая половина правой колонки;size — занимаемое место:
0.5 — половина колонки;1 — целая колонка;1.5 — полторы колонки;2 — вся строка.На иллюстрации показано, как свойства row, column и size определяют расположение поля:

Дробные значения позволяют размещать поля ещё точнее. В примере ниже поле probability займёт половину левой колонки, а amount — всё оставшееся пространство строки:
[
{
"type": "fields",
"header": "Условия сделки",
"fields": [
{
"name": "probability",
"position": {
"row": 1,
"column": 1,
"size": 0.5
}
},
{
"name": "amount",
"position": {
"row": 1,
"column": 1.5,
"size": 1.5
}
}
]
}
]
Если для сущности создано дополнительное поле и оно отображается в формах, это поле попадает в системные настройки. После «Вставить системные настройки» оно появится в секции Дополнительно (shared.groups.advanced).
Дальше с ним можно работать как с любым другим полем: перенести объект в другую секцию или на другую вкладку, задать position, hint и className.
Если макет уже сохранён, новое дополнительное поле само не появится — вставьте системные настройки ещё раз или добавьте поле в массив fields вручную по его системному названию.
{
"type": "fields",
"header": "shared.groups.advanced",
"label": null,
"order": 1,
"isAsidePosition": null,
"fields": [
{
"name": "directorySetValue1",
"className": null,
"hint": "",
"position": {
"row": 1,
"column": 1,
"size": 1
}
}
]
}
Если для какого-то вида сущности (например, типа сделки) нужен свой набор полей, выберите его в селекторе Вид и опишите отдельный макет — он будет применяться только к сущностям этого вида. Пока для вида не задан собственный макет, используется общий («Все виды»).

Тем же способом настраивается Форма создания: выберите её в селекторе Форма и задайте поля, которые пользователь видит в окне создания сущности. У формы создания нет вкладок, поэтому селектор Вкладка для неё не отображается.

Подсказка задаётся свойством hint — она отобразится рядом с полем:
{
"name": "manager",
"className": null,
"hint": "Внимание: менеджер сделки должен иметь доступ к области «Продажи»!",
"position": {
"row": 4,
"column": 1,
"size": 2
}
}

Для стилизации используйте свойство className — подойдёт любой доступный класс из библиотеки Bootstrap. Например, выделим сумму зелёным, а вероятность — красным:
[
{
"type": "fields",
"header": "Условия сделки",
"label": null,
"order": null,
"isAsidePosition": null,
"fields": [
{
"name": "amount",
"className": "text-success",
"hint": "",
"position": null
},
{
"name": "probability",
"className": "text-danger",
"hint": "",
"position": null
}
]
}
]

Похоже, вам удобнее русский язык. Перейти на русскую версию?