Используйте тег <Form>, чтобы отобразить виджет формы записи с заданными необходимыми параметрами (такие, как таблица, вид формы, ID записи). Это позволяет пользователю редактировать поля, сохраняя при этом поведение обычной формы. Тег также поддерживает функциональность виджетов, добавленных на форму.

Структура


Данный виджет включает следующие элементы:

  1. Встроенный виджет, содержащий элементы формы.
  2. Блок заголовка:
  3. Блок секций:
    • Секция По умолчанию должна быть первой в списке секций, если их больше одной. 
    • Каждая секция виджета относится к соответствующей секции формы и имеет собственный заголовок.
    • Этот блок обязателен.
  4. Блок нижнего колонтитула, который может содержать UI-действия (кнопки и другое).

Элементы 


Элементы виджета формы, такие как элементы формы, могут быть разных типов. Все функции типов полей, используемые в формах, поддерживаются в виджетах (например, свойства, поведение, скалярный тип и другое).

  • Элементы виджета отображают дату и время в часовом поясе пользователя. 
  • Элементы виджета, содержащие поля типа Translated Text (например, заголовки таблиц и колонок, выбор опций) отображают значения на языке текущего пользователя.  

Атрибуты


Для создания динамической формы, используйте следующие атрибуты:

Атрибут

Тип

Обязательный

Описание

classStringНетУкажите название класса CSS, указанного в поле CSS виджета.
nameStringНет

Этот атрибут содержит название формы.

Задайте название формы через поле Шаблон, как в примере ниже: 

Шаблон
<Form tableName="{data.table_name}" sysId="{data.record_id}" name="custom"></Form>

Затем вызовите его через клиентский скрипт виджета:

Клиентский скрипт
const builtInForm = s_widgets.getForm('custom');
await builtInForm.save();
tableNameStringДаУкажите наименование таблицы.
viewStringНетУкажите название вида формы таблицы, например, По умолчанию.
saveStringНет

Добавьте на форму кнопку сохранения, добавив на нее необходимый текст (см. пример ниже).

Используйте этот атрибут, когда по каким-либо причинам невозможно использовать UI-действия (значение атрибута uiActions  false).

titleHideBooleanНет

Установите значение атрибута true, чтобы отразить заголовок формы. Значение по умолчанию: false.

uiActionsBooleanНетУстановите значение true, чтобы сделать возможным использование UI-действий. В противном случае их использование будет запрещено (кроме кнопки Сохранить, определенной атрибутом save). 
userScriptsBooleanНетУстановите значение атрибута false, чтобы отключить клиентские скрипты выбранной таблицы. Значение по умолчанию: true.
sysidStringНет

Укажите ID записи таблицы. Предварительно нужно указать саму таблицу в атрибуте tableName.

Если не указать sysidто отображается форма создания записи.

Пример:

Form
<form
    name="leadForm"
    tableName="crm_leads"
    view="Modal Form Disqualify"
    uiActions="false"
    userScripts="true"
></form>
<div class="buttonsModalQualify">
    <button buttonType="unstyled" event-click="window.s_widget_custom.cancel()">{data.cancel}</button>
    <button disabled="{data.isDisabled}" buttonType="primary" event-click="window.s_widget_custom.save()">{data.save}</button>
</div>

Шаблон из примера добавляет следующий элемент на страницу:

Дочерний тег IndicatePresence


Используйте тег <IndicatePresence> в сочетании с тегом <Form>, чтобы добавить на форму виджет индикации присутствия других пользователей на записи.

Для отображения виджета, на форме таблицы должен быть установлен флажок Отображать присутствие (indicate_presence=true).

Доступные атрибуты:

АтрибутТипОбязательныйОписание
tableNameStringДа

Укажите название таблицы. Значение должно соответствовать значению атрибута tableName тега <Form>.

recordIdStringДа

Укажите ID записи таблицы. Значение должно соответствовать значению атрибута sysid тега <Form>.

Пример:

IndicatePresence
<IndicatePresence tableName="{data.table_name}" recordId="{data.record_id}"></IndicatePresence>

Шаблон из примера добавляет следующий элемент на страницу:

  • No labels