Перейти к содержимому

Формы (Portal Forms)

Платный модуль Portal Forms (korport.forms) помогает собрать удобную форму элемента списка: секции, колонки, заголовки и подсказки — без программирования макета.

Подходит администраторам и редакторам контента, которые настраивают списки заявок, реестры и кадровые формы.

Конструктор форм Portal Forms

Конструктор: палитра полей, холст с секциями и панель свойств


Обычная форма списка показывает все поля подряд. Для заявки на командировку или отпуск это неудобно: длинная страница, важные поля теряются.

С конструктором вы:

  • группируете поля в секции (маршрут, бюджет, контакты);
  • раскладываете их в 1–3 колонки;
  • добавляете заголовки и HTML-подсказки;
  • встраиваете веб-части (например, вложения) прямо в макет;
  • отдельно настраиваете формы создания, просмотра и редактирования.

Данные по-прежнему сохраняются в списке — меняется только внешний вид.

Форма создания по макету

Так видит форму сотрудник после настройки макета


  1. Установлен модуль Формы и в лицензии есть entitlement korport.forms.
  2. У вас есть право менять настройки списка (обычно администратор портала или узла).
  3. В списке уже созданы нужные поля.

Без модуля кнопка конструктора скрыта — формы работают как раньше (стек полей + скрипт + веб-части до/после).


  1. Откройте список.
  2. Перейдите в Настройки списка.
  3. Вкладка Формы.
  4. Выберите режим: Создание / Просмотр / Редактирование.
  5. Нажмите Открыть конструктор.

По умолчанию открывается режим Создание — чаще всего его настраивают первым.

Вкладка «Формы» в настройках списка

Вкладка «Формы»: конструктор, возврат стандартной формы, скрипт


ОбластьНазначение
Палитра слеваПоля списка, ещё не размещённые на форме, и блоки: заголовок, HTML, веб-часть
Холст по центруСекции и блоки в том порядке, как увидит пользователь
Свойства справаПодпись, ширина, подсказка, обязательность выбранного блока
Вкладки режимовСоздание / Просмотр / Редактирование — у каждого свой макет
Макет / СкриптВизуальная раскладка или JavaScript формы

Панель свойств можно расширить кнопкой ↔ (как в редакторе рабочих процессов).


  1. Нажмите Секция.
  2. Выберите секцию → в свойствах задайте название и число колонок (1–3).
  3. Лишнюю секцию удалите кнопкой × (хотя бы одна секция должна остаться).

Пример для командировок:

  1. «Маршрут и сроки» — 2 колонки
  2. «Цель и бюджет» — 3 колонки
  3. «Вложения и контакты» — 1 колонка
  • Перетащите поле из палитры на секцию или кликните по полю — оно добавится в выбранную / первую секцию.
  • На холсте перетаскивайте блоки, чтобы изменить порядок.
  • Одно поле в одном режиме можно разместить только один раз.
  • Поля, которых нет на макете, не показываются на форме. Обязательные поля вне макета подсвечиваются предупреждением сверху.
  • Заголовок — подзаголовок внутри секции («Детали поездки»).
  • HTML-блок — короткая подсказка, ссылка на регламент, заметка для сотрудника.
  1. Перетащите блок Веб-часть.
  2. Выберите определение из каталога.
  3. В свойствах откройте Свойства и настройте виджет (как на страницах).

Так можно вставить зону вложений или другой виджет рядом с полями.

Выберите блок на холсте:

  • подпись (вместо названия поля из списка);
  • ширина в колонках секции (span);
  • подсказка под полем;
  • обязательность (для поля).

Нажмите Сохранить. Уведомление появится тостом — не нужно искать полоску внизу страницы.

Проверьте результат: список → Добавить (или открыть / изменить элемент) — форма должна совпасть с макетом выбранного режима.


РежимКогда показывается
СозданиеНовая запись
ПросмотрКарточка элемента
РедактированиеИзменение записи

Макеты независимы: на создании можно показать только нужные поля, на просмотре — больше деталей, на редактировании — запретить часть полей скриптом.


7. «Показывать область формы» — что это значит

Заголовок раздела «7. «Показывать область формы» — что это значит»

На вкладке Формы есть переключатель Показывать область формы.

  • Включён — на странице видна зона полей (стандартный стек или макет конструктора).
  • Выключен — зона полей скрыта, остаются веб-части до/после (полная замена UI).

Этот флаг не отключает макет конструктора. Если макет сохранён, при включённой области формы поля берутся из макета.


Если макет больше не нужен:

  1. Настройки списка → Формы → нужный режим → Вернуть стандартную форму
    или та же кнопка в конструкторе.
  2. Подтвердите Удалить макет.

После удаления снова показываются все поля списка по умолчанию (плюс скрипт и веб-части до/после, если они были).


На вкладке Скрипт в конструкторе или в настройках форм можно добавить небольшой JavaScript. Он выполняется после отрисовки формы.

Типичные задачи:

  • сделать поле только для чтения;
  • скрыть секцию или поле по роли;
  • подставить значение по умолчанию.

Полезные команды:

МетодНазначение
setFieldDisabledЗаблокировать поле
hideField / showFieldСкрыть / показать поле
hideSection / showSectionСкрыть / показать секцию макета
getFormValues / setFieldValueПрочитать / записать значения
getBlockElПолучить DOM-элемент блока
context.layoutТекущий макет или null

Блокировка в интерфейсе не заменяет серверную проверку прав и бизнес-правил.

Подробнее про скрипты и веб-части без конструктора: Кастомизация форм элементов.


В каталоге веб-частей есть Форма списка (portal.list-form).

Свойства:

  • список;
  • режим (new / view / edit);
  • при необходимости — ID элемента и заголовок.

Её можно поставить на страницу узла: заявка создаётся прямо со страницы, без перехода в список.


Почему на форме нет поля, хотя оно есть в списке?
Поле не размещено в макете текущего режима. Добавьте его в конструкторе или верните стандартную форму.

Почему кнопка конструктора не видна?
Нет лицензии модуля Forms или нет прав на настройки списка.

Сохранил макет, а форма не изменилась?
Проверьте режим (создание / просмотр / редактирование), обновите страницу. Убедитесь, что макет сохранён именно для того режима, который открываете.

Нужно ли писать код?
Нет. Макет собирается визуально. Скрипт — только для особых правил поведения.


{ "modules": ["korport.forms"] }

Проверка на клиенте: GET /api/v1/forms/status{ moduleId, entitled }.

Карточка модуля: Формы на korport.ru.