Кастомизация форм элементов
Для форм создания, просмотра и редактирования элемента списка администратор портала может задать:
- Скрипт формы — пользовательский JavaScript (как скрипт страницы).
- Веб-части — до или после стандартных полей (или вместо них).
- Показ стандартной формы — включить/выключить встроенный UI полей.
Библиотеки документов и быстрое редактирование в таблице не затрагиваются.
Где настраивать
Заголовок раздела «Где настраивать»Настройки списка → Формы (нужна роль администратора портала). Три подвкладки: Создание / Просмотр / Редактирование.
Сохранение пишет поле form_config списка (PATCH /api/v1/lists/{id} с formConfig).
Скрипт формы
Заголовок раздела «Скрипт формы»Выполняется в браузере после отрисовки формы. Аргументы:
| Аргумент | Назначение |
|---|---|
$ | jQuery |
context | mode, list, item, fields, user и хелперы |
$container | корень страницы элемента (.list-item-page) |
Хелперы context:
| Метод | Описание |
|---|---|
setFieldDisabled(nameOrId, disabled) | заблокировать поле по internal_name или UUID |
hideField(nameOrId) / showField(nameOrId) | скрыть / показать поле |
getFormValues() | значения формы (create/edit) |
setFieldValue(nameOrId, value, listId) | установить значение (create/edit) |
Можно вернуть функцию dispose для очистки при уходе со страницы.
Пример: запретить менять статус вручную
Заголовок раздела «Пример: запретить менять статус вручную»На вкладке Редактирование (и при необходимости Просмотр):
context.setFieldDisabled('status', true);// или по UUID поля:// context.setFieldDisabled('a1b2c3d4-....', true);Скрипт блокирует только интерфейс. Чтобы нельзя было обойти запрет через API (PATCH элемента), добавьте проверку в Event Receiver на listItem.updating / listItem.updated.
Веб-части на форме
Заголовок раздела «Веб-части на форме»- До формы / После формы (
placement:before|after) — при включённой стандартной форме. - Если «Показывать стандартную форму» выключено — веб-части идут по порядку как тело страницы; кнопки «Создать» / «Сохранить» стандартной формы скрыты. Кастомная логика сохранения — в веб-части (через API списков).
Шапка страницы (назад, заголовок, права, удаление) остаётся.
См. раздел Кастомизация форм (form_config) в API: Списки.
PATCH /api/v1/lists/{listId}Content-Type: application/json
{ "formConfig": { "edit": { "script": "context.setFieldDisabled('status', true);", "showStandardForm": true, "webParts": [] } }}