Перейти к основному содержимому
Версия: 1.23.3

SimpleForm

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

Помимо этого, нижеперечисленные методы можно использовать для настройки зависимостей между полями и значениями. Например, для изменения или удаления значений полей.

внимание
  1. На странице с загруженной формой в консоли браузера нельзя обратиться к форме напрямую через переменную s_form.

  2. В случае, если на странице с формой записи одной таблицы присутствует RE-модель записи другой таблицы, которая добавлена на форму с помощью виджета с Simple-тегом <rem>, или модель выведена с помощью тега <remform>, клиентский скрипт модели не сможет обратиться напрямую к форме через переменную s_form. В данном случае на странице находятся два независимых объекта форм.

  3. Методы для работы с REM-атрибутами предполагают работу с атрибутами, выведенными Simple-тегом <rem> для текущей таблицы.

Для оперирования формой в случаях, указанных выше, используйте конструкцию s_widgets.getForm('formName'), где formName – название представления необходимой формы.

SimpleForm(table, sys_id)


Используйте этот конструктор для создания экземпляра объекта SimpleForm.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
tableStringДаНет
sys_idStringДаНет

Возвращаемое значение:

ТипОписание
ObjectМетод возвращает объект формы.

Пример:

SimpleForm()
window.s_widget_custom.submit = async function () {
await s_widget.serverUpdate();
const tableName = s_widget.getFieldValue('table_name');
const recordId = s_widget.getFieldValue('record_id');

const builtInForm = new SimpleForm(tableName, recordId);

await builtInForm.save().then(s_form.save());
s_modal.setShow(false);
s_go.reloadWindow();
}

modalForm()


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

Чтобы обратиться к объекту, используйте s_form.modalForm.

Возвращаемое значение:

ТипОписание
ObjectМетод возвращает объект формы.

Пример:

modalForm()
s_form.modalForm.setValue('state', '2')

Использование глобальных переменных


Внутри каждой формы записи можно использовать преднастроенные глобальные переменные.

ПеременнаяОписание
currentFieldLabelОпределяет связь поля с объектом его обертки. Эта переменная используется с методом getColumnId(), как в примере: window.currentFieldLabel.getColumnId()
Например, при помощи этой переменной можно получить контекстное меню поля.
currentUiActionЭта переменная содержит объект с ID записи [UI-действия](/platform/developer-help/user-actions/UI actions). Используйте ее при вызове контекстного меню кнопки.

s_form.addErrorMessage(message)


Используйте этот метод для отображения всплывающего окна с сообщением об ошибке в нижнем правом углу окна. Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
messageStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

addErrorMessage()
s_form.addErrorMessage('Пожалуйста, введите email в следующем формате: joe@example.com');

s_form.addInfoMessage(message, durationMilliseconds)


Используйте данный метод для отображения информационного сообщения, которое всплывает в нижнем правом углу окна. Сообщение исчезнет через некоторое время. В параметре durationMilliseconds можно задать это время в миллисекундах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
messageStringДаНет
durationMillisecondsNumberНетНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

addInfoMessage()
s_form.addInfoMessage('Link copied to clipboard', 2000);

s_form.addSuccessMessage(message, durationMilliseconds)


Используйте метод, чтобы отобразить сообщение об успешном действии в нижнем правом углу окна. Сообщение исчезнет через некоторое время. В параметре durationMilliseconds можно задать это время в миллисекундах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
messageStringДаНет
durationMillisecondsNumberНетНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

addSuccessMessage()
s_form.addSuccessMessage('Запись успешно добавлена!', 3000);

s_form.addWarningMessage(message, durationMilliseconds)


Используйте метод, чтобы отобразить сообщение с предупреждением в правом нижнем углу. Сообщение исчезнет через некоторое время. В параметре durationMilliseconds можно задать это время в миллисекундах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
messageStringДаНет
durationMillisecondsNumberНетНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

addWarningMessage()
s_form.addWarningMessage('Эта запись изменена другим пользователем', 3000);

s_form.addOption(fieldName, choiceValue)


Используйте данный метод для добавления опции выбора в конец списка поля типа Choice. Пользователь может добавить значения choiceValue, определенные для колонки fieldName в текущем наборе опций таблицы.

внимание

Это асинхронный метод. Для оптимальной работы системы используйте ключевое слово await, как показано в примере ниже.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
choiceValueStringДаНет

Возвращаемое значение:

ТипОписание
ObjectМетод возвращает объект Promise object.

Пример:

addOption()
const choices = ['10', '20', '30'];
s_form.clearOptions('contact_type');
for (const optionValue of choices) {
await s_form.addOption('contact_type', optionValue);
}

s_form.clearMessages()


Используйте этот метод для того, чтобы закрывать все виды сообщений (информационные и об ошибке) на форме.

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

clearMessages()
s_i18n.getMessage('Дата и время завершения не могут быть раньше даты и времени начала', (response) => {
s_form.clearMessages();
s_form.addErrorMessage(response);
});

s_form.clearOptions(fieldName)


Используйте данный метод для удаления всех опций из списка с выбором поля типа Choice.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

clearOptions()
const choices = ['10', '20', '30'];
s_form.clearOptions('contact_type');
for (const optionValue of choices) {
await s_form.addOption('contact_type', optionValue);
}

s_form.clearValue(fieldName)


Используйте данный метод для удаления значения любого поля.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает false, если очистить поле не получилось, в следующих случаях:
  • если column_type является True/False или Record Class.
  • если column_type совпадает с sys_id.
  • если column_type было очищено.

Пример:

clearValue()
if (!s_form.getValue('sprint')) {
s_form.clearValue('points');
}

s_form.isFieldChanged(fieldName)


Используйте этот метод, чтобы проверить, изменилось ли значение указанного поля.

примечание

Если клиентский скрипт меняет значение в поле на форме, метод вернет значение true. Изменения могут быть инициированы как скриптом, так и пользователем.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает true, если значение в указанном поле было изменено; в противном случае, метод возвращает false.

Пример:

isFieldChanged()
if (s_form.isFieldChanged('state') && s_form.getValue('state') != 'new') {
return false; // отмена отправки формы
}

s_form.formId


Используйте это свойство класса, чтобы вернуть ID текущей формы. ID формы – это ID записи в таблице Формы (sys_ui_form).

Возвращаемое значение:

ТипОписание
StringМетод возвращает ID записи формы в таблице Формы (sys_ui_form).

Пример:

formId()
const url = new URL(`${API_BASE_URL}/export/excel`);
if (typeof s_form !== "undefined") {
url.searchParams.set('form_id', s_form.formId);
}
window.open(url, "_blank");

s_form.getAllFields()


Используйте метод, чтобы получить список вынесенных на форму полей с их значениями.

Возвращаемое значение содержит два ключа:

  • data – объект, ключами которого являются системные названия полей, а значения – значения этих полей.
  • error – массив с сообщениями об ошибках в случае сохранения формы в текущем состоянии.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
isAllBooleanНетfalse

Возвращаемое значение:

ТипОписание
ObjectПри значении isAll false, метод возвращает информацию о полях, значения которых были изменены.
При значении true возвращается информация обо всех вынесенных на форму полях, из всех секций, в том числе о скрытых клиентскими скриптами.
На форме новой записи, при любом значении isAll, метод возвращает перечень всех полей формы.

Пример:

getAllFields()
if (!s_form.getAllFields(true).data.hasOwnProperty('state')) return;

s_form.getChanges()


Используйте данный метод для получения информации об измененных полях: название поля, предыдущее значение, текущее значение.

примечание

Если выполненный на форме клиентский скрипт менял значения полей, то метод getChanges() вернет массив с информацией обо всех измененных полях. Изменения могут быть инициированы как скриптом, так и пользователем.

Возвращаемое значение:

ТипОписание
Array of ObjectsМетод возвращает массив объектов, содержащих название поля, его предыдущее и текущее значения.

Пример:

getChanges()
if (s_form.isChanged()) {
const changedFields = s_form.getChanges();
let payload = {};
changedFields.forEach((field) => {
payload[field.fieldName] = field.currentValue;
});
SimpleStorage.setItem('payload', payload);
}

s_form.getLabelOf(fieldName)


Используйте метод, чтобы вернуть отображаемое название поля на форме.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает строку, содержащую отображаемое название поля.

Пример:

getLabelOf()
const FIELD_LABEL = s_form.getLabelOf('username');
s_form.addErrorMessage(`Поле "${FIELD_LABEL}" содержит недопустимые символы.`);

s_form.getREMDisplayValue(fieldName)


Используйте метод, чтобы вернуть отображаемое значение REM атрибута.

Ознакомиться с примерами по типам колонок вы можете в статье Использование типов колонок в клиентских и серверных скриптах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает отображаемое значение атрибута.

Пример:

getREMDisplayValue()
s_form.addErrorMessage(`Сервис "${s_form.getREMDisplayValue('service')}" недоступен.`);

s_form.getREMLabelOf(fieldName)


Используйте метод, чтобы вернуть текстовое значение заголовка REM атрибута.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает значение заголовка атрибута.

Пример:

getREMLabelOf()
const FIELD_LABEL = s_form.getREMLabelOf('phone');
s_form.addErrorMessage(`Поле "${FIELD_LABEL}" содержит недопустимые символы.`);

s_form.getREMValue(fieldName)


Используйте метод, чтобы вернуть значение REM атрибута.

Ознакомиться с примерами по типам колонок вы можете в статье Использование типов колонок в клиентских и серверных скриптах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает значение указанного поля из базы данных.

Пример:

getREMValue()
if (s_form.getREMValue('model')) {
s_form.hideFieldMsg('model');
}

s_form.getSections()


Используйте этот метод, чтобы получить массив секций.

Возвращаемое значение:

ТипОписание
Array of HTML elementsМетод возвращает массив, содержащий секции формы.

Пример:

getSections()
const sectionNames = s_form.getSections().map(section => section.name);
if (sectionNames.length) {
s_form.addInfoMessage(`You can move between ${sectionNames.join(', ')}` sections);
}

s_form.getSectionNames()


Используйте этот метод для получения массива, содержащего названия всех видимых и скрытых секций.

Возвращаемое значение:

ТипОписание
Array of StringМетод возвращает массив, содержащий названия секций.

Пример:

getSectionNames()
const sectionNames = s_form.getSectionNames();
if (sectionNames.length) {
s_form.addInfoMessage(`Вы можете перемещаться между секциями ${sectionNames.join(', ')}`);
}

s_form.getTableName()


Используйте метод, чтобы вернуть название таблицы, к которой относится указанная запись.

примечание

Метод возвращает системное название таблицы, а не ее заголовок. Пример:

  • Системное название таблицы – itsm_incident
  • Заголовок таблицы – Инциденты

Возвращаемое значение:

ТипОписание
StringМетод возвращает системное название таблицы.

Пример:

getTableName()
const TABLE_NAME = s_form.getTableName();
console.log(TABLE_NAME);

s_form.getUniqueValue()


Используйте метод, чтобы вернуть уникальный ID записи.

Возвращаемое значение:

ТипОписание
StringМетод возвращает ID записи; в противном случае, он возвращает значение null.

Пример:

getUniqueValue()
const TABLE_NAME = s_form.getTableName();
const RECORD_ID = s_form.getUniqueValue();
const currentRecord = new SimpleRecord(TABLE_NAME);
currentRecord.get(RECORD_ID, ()=> {
if (currentRecord.sys_id === RECORD_ID) {
s_form.addInfoMessage(currentRecord.sys_created_at);
}
});

s_form.getValue(fieldName)


Используйте метод, чтобы вернуть значение указанного поля из базы данных.

Ознакомиться с примерами по типам колонок вы можете в статье Использование типов колонок в клиентских и серверных скриптах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
feldNameStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает значение указанного поля из базы данных.

Пример:

getValue()
const callerId = s_form.getValue('caller_id');
if (!callerId) {
const callerRecord = new SimpleRecord('employee');
callerRecord.get(callerId, ()=> {
if (callerRecord.sys_id &&
callerRecord.personal_schedule) {
await s_form.setValue('schedule', callerRecord.personal_schedule);
} else {
s_form.addInfoMessage('Расписание пользователя не определено');
}
});
}

s_form.getDisplayValue(fieldName)


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

Ознакомиться с примерами по типам колонок вы можете в статье Использование типов колонок в клиентских и серверных скриптах.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает отображаемое значение указанного поля.

Пример:

getDisplayValue()
s_form.addInfoMessage(`Сервис "${s_form.getDisplayValue('service')}" недоступен`);

s_form.goBack()


Используйте этот метод для перенаправления пользователя на предыдущую страницу. Если это невозможно, пользователь будет перенаправлен на представление записей текущей таблицы в виде списка, например, со страницы записи инцидента на страницу списка инцидентов.

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

goBack()
if (s_form.isChanged()) {
s_form.save().then(() => s_form.goBack());
} else {
s_form.goBack();
}

s_form.isChanged()


Используйте этот метод, чтобы узнать, была ли запись изменена.

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если менялись значения каких-либо полей на форме записи; если изменений не было, метод возвращает значение false.

Пример:

isChanged()
if (s_form.isChanged()) {
s_form.save().then(() => s_form.goBack());
} else {
s_form.goBack();
}

s_form.hideFieldMsg(fieldName)


Используйте метод, чтобы скрыть информационные сообщения или сообщения об ошибке под указанным полем формы.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

hideFieldMsg()
if (s_form.getValue('state')) {
s_form.hideFieldMsg('state');
}

s_form.hideRelatedLists()


Используйте этот метод, чтобы скрыть все связанные списки на форме.

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

hideRelatedList()
if (s_form.getValue('type') == 'internal') {
s_form.hideRelatedLists();
}

s_form.isMandatory(fieldName)


Используйте этот метод, чтобы проверить является ли указанное поле обязательным.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если поле является обязательным, если нет – метод возвращает значение false.

Пример:

isMandatory()
if (s_form.isMandatory('state') && !s_form.getValue('state')) {
s_form.addInfoMessage('Укажите статус');
}

s_form.hideRelatedList(relListTitle)


Используйте этот метод, чтобы указать связанный список, который необходимо скрыть.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
relListTitleStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

hideRelatedList()
if (s_form.getValue('type') == 'external') {
s_form.hideRelatedList('Customer');
}

s_form.isNewRecord()


Используйте этот метод, чтобы проверить является ли текущая запись новой.

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает true на форме еще не созданной записи. В противном случае, метод возвращает значение false.

Пример:

isNewRecord()
if (s_form.isNewRecord()) {
await s_form.setValue('state', 'new');
s_form.setReadOnly('state', true);
}

s_form.isReadonly(fieldName)


Используйте этот метод, чтобы узнать, доступно ли поле для редактирования через интерфейс или оно доступно пользователям только для чтения.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
feldNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если поле доступно только для чтения, в противном случае, метод возвращает значение false.

Пример:

s_from.isReadonly()
if (!s_form.isReadonly('state')) {
await s_form.setValue('state', 'new');
}

s_form.isSectionVisible(sectionName)


Используйте метод, чтобы определить, является ли указанная секция видимой.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
sectionNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если секция видна; если скрыта – false.

Пример:

getSectionNames()
if (s_form.isSectionVisible('Instructions')) {
s_form.addInfoMessage('Check out the "Instructions" section', 5000);
}

s_form.isValid()


Используйте метод, чтобы определить, является ли указанная форма действительной.

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если форма действительна, если нет – метод возвращает значение false.
внимание

Используйте этот метод, только если форма содержит поля типов Даты и времени, так как данный метод не поддерживает проверку полей других типов.

Пример:

isValid()
if (!s_form.isValid()) {
s_form.addErrorMessage('Эта форма недействительна');
}

s_form.isVisible(fieldName)


Используйте этот метод чтобы узнать, является ли указанное поле видимым.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если поле видимое, если нет, метод возвращает false.

Пример:

isVisible()
if (s_form.isVisible('state')) {
s_form.setSectionDisplay('Controls', true);
}

s_form.refreshUiActions()


Используйте этот метод для перезагрузки всех UI-действий на форме и повторной проверки условий отображения кнопки, которые определены для этих UI-действий, без обновления страницы.

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

refreshUiActions()
const stateValue = s_form.getValue('state');
if (stateValue == 'in-progress') {
s_form.refreshUiActions();
}

s_form.removeOption(fieldName, choiceValue)


Используйте этот метод, чтобы удалить определенную опцию из списка c выбором.

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
choiceValueStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

removeOption()
const serviceId = s_form.getValue('service');
if (serviceId) {
const service = new SimpleRecord('sys_cmdb_ci_service');
service.get(serviceId, ()=> {
if (service.business_criticality > '1') {
s_form.removeOption('impact', 'low');
s_form.removeOption('urgency', 'low');
}
});
}

s_form.save()


Используйте данный метод для сохранения записи, не покидая ее формы.

Возвращаемое значение:

ТипОписание
StringМетод возвращает ID сохраненной записи.

Пример:

save()
const sysId = await s_form.save().finally(__resolveServerResponse);
await s_user.setPreference(preferenceApplicationName, packApplicationId);
await s_user.setPreference(preferenceLocalPackName, sysId);
await s_pref.refresh();

s_form.setLabelOf(fieldName, value)


Используйте данный метод для того, чтобы установить текстовое значение для заголовка поля.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
valueStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

setLabelOf()
if (s_form.getTableName() == "employee") {  
s_form.setLabelOf("email", "Личная электронная почта");
s_form.setLabelOf("manager.email", "Электронная почта менеджера");
} else {
s_form.setLabelOf("email", "Электронная почта");
}

s_form.setMandatory(fieldName, mandatory)


Используйте этот метод для того, чтобы сделать указанное поле обязательным.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
mandatoryBooleanНетtrue

Возвращаемое значение:

ТипОписание
BooleanПри успешном выполнении метод возвращает значение true.
Значение false возвращается при следующих условиях:
  • Если поле доступно только для чтения и не содержит никакого значения.
  • Если поле является обязательным на уровне колонки, то невозможно снять флажок Обязательное поле при помощи метода s_form.setMandatory('some_field', false).

Пример:

setMandatory()
const scriptType = s_form.getValue('type');
const mandatoryColumn = ['onChange', 'onCellEdit'].includes(scriptType);
s_form.setVisible('column_id', mandatoryColumn);
s_form.setMandatory('column_id', mandatoryColumn);

s_form.setReadOnly(fieldName, readOnly)


Используйте этот метод, чтобы изменить настройки поля и сделать его редактируемым или доступным только для чтения.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
readOnlyBooleanНетtrue

Возвращаемое значение:

ТипОписание
BooleanПри успешном выполнении метод возвращает значение true.
Значение false возвращается при следующих условиях:
  • Если поле доступно только для чтения на уровне колонки, флажок Только для чтения невозможно снять при помощи метода s_form.setReadOnly('some_field', false).
  • Если установлен запрет на редактирование колонки с помощью правил контроля доступа (ACL).
  • Если обязательное поле пустое или доступно только для чтения.

Пример:

setReadOnly()
if (s_form.getValue('any_tables')){
s_form.setMandatory('table_id', false);
s_form.setReadOnly('table_id', true);
s_form.setVisible('table_id', false);
}

s_form.setREMLabelOf(fieldName, value)


Используйте этот метод, чтобы задать заголовок REM атрибуту.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
valueStringДаНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает присвоенное значение.

Пример:

setREMLabelOf()
if (s_form.getTableName() == 'user') {
s_form.setREMLabelOf('email', 'Электронная почта');
} else {
s_form.setREMLabelOf('email', 'Личная электронная почта');
}

s_form.setREMMandatory(fieldName, mandatory)


Используйте метод для того, чтобы сделать поле, определенное REM атрибутом, обязательным.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
mandatoryBooleanДаtrue

Возвращаемое значение:

ТипОписание
BooleanПри успешном выполнении метод возвращает значение true.
Значение false возвращается при следующих условиях:
  • Если поле доступно только для чтения и не содержит никакого значения.
  • Если поле является обязательным на уровне атрибута, то невозможно снять флажок Обязательное при помощи метода s_form.setMandatory('some_field', false).

Пример:

setREMMandatory()
const isDeliveryFilled = !!s_form.getValue('delivery');
s_form.setREMMandatory('phone', isDeliveryFilled);

s_form.setREMReadOnly(fieldName, readOnly)


Используйте этот метод, чтобы сделать поле, определенное REM атрибутом, доступным только для чтения.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
readOnlyBooleanДаtrue

Возвращаемое значение:

ТипОписание
BooleanПри успешном выполнении метод возвращает значение true.
Значение false возвращается при следующих условиях:
  • Если обязательное поле пустое и доступно только для чтения.
  • Если поле доступно только для чтения, то невозможно снять флажок Только для чтения при помощи метода s_form.setReadOnly('some_field', false).

Пример:

setREMReadOnly()
if (s_form.isNewRecord()) {
s_form.setREMValue('state', 'new');
s_form.setREMReadOnly('state', true);
}

s_form.setREMValue(fieldName, databaseValue)


При помощи этого метода можно установить значение самого атрибута REM.

внимание

Это асинхронный метод. Для оптимальной работы системы используйте ключевое слово await, как показано в примере ниже.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
databaseValueAnyДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

setREMValue()
await s_form.setREMValue('state', 'new');
s_form.save();

s_form.setREMVisible(fieldName, display)


Используйте данный метод, чтобы настроить видимость поля, определенного REM атрибутом.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
displayBooleanДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

setREMVisible()
s_form.setREMVisible('additional_info', !s_form.isNewRecord());

s_form.setSectionDisplay(sectionName, display)


Используйте этот метод, чтобы определить отображение указанной секции.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
sectionNameStringДаНет
displayBooleanДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

setSectionDisplay()
if (s_form.getValue('state') == '7') { // Completed
s_form.setSectionDisplay('Closure Information', true);
s_form.setMandatory('closure_code', true);
s_form.setMandatory('closure_notes', true);
} else {
s_form.setMandatory('closure_code', false);
s_form.setMandatory('closure_notes', false);
s_form.setSectionDisplay('Closure Information', false);
}

s_form.setValue(fieldName, databaseValue)


Используйте данный метод для задания значения полю.

внимание

Используйте метод s_form.clearValue(), чтобы очистить поле, а не устанавливать значение пустой строки.

Это асинхронный метод. Для оптимальной работы системы используйте ключевое слово await, как показано в примере ниже.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
databaseValueStringДаНет

Возвращаемое значение:

ТипОписание
ObjectМетод возвращает объект Promise.

Пример:

setValue()
await s_form.setValue('state', '7'); // Завершено
await s_form.setValue('closure_notes', articleBodies.join('\n'));
await s_form.setValue('closure_code', '1'); // Решено на 1 уровне
s_form.save()
.then(() => {
s_i18n.getMessage(`Применено стандартное решение`, (e) => {
s_form.addInfoMessage(e);
})
});

s_form.setVisible(fieldName, display)


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

внимание

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

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
displayBooleanДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

setVisible()
if (!s_form.isNewRecord()) {
s_form.setVisible('subject', true);
s_form.setVisible('reason', false);
}

s_form.showFieldMsg(fieldName, message, type)


Используйте этот метод для вывода информационных, предупреждающих сообщений или сообщений об ошибке под указанным полем формы.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет
messageStringДаНет
typeStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

showFieldMsg()
s_form.showFieldMsg('subject', 'Не может быть пустым', 'info');
showFieldMsg()
s_form.showFieldMsg('subject', 'Не может быть пустым', 'warning');
showFieldMsg()
s_form.showFieldMsg('subject', 'Не может быть пустым', 'error');

s_form.showRelatedLists()


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

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

showRelatedLists()
s_form.showRelatedLists();

s_form.showRelatedList(listTitle)


Используйте метод, чтобы отобразить определенный список, связанный с формой.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
listTitleStringДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

showRelatedList()
s_form.showRelatedList('UI-действия');

s_form.submit()


Используйте данный метод для передачи формы записи.

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

submit()
s_form.submit();

Устаревшие методы

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

s_form.fieldHasChanges(fieldName)


Данный метод проверяет, было ли изменено указанное поле.

предупреждение

Это устаревший метод, не рекомендуемый к использованию. Используйте вместо него метод s_form.isFieldChanged(fieldName).

примечание

Метод s_form.fieldHasChanges(fieldname) возвращает значение true, если на указанной форме запущен клиентский скрипт, меняющий ее. Изменять форму могут как пользователь, так и скрипт.

Параметры:

НаименованиеТипОбязательноЗначение по умолчанию
fieldNameStringДаНет

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если указанное поле было изменено; в противном случае, метод возвращает значение false.

Пример:

fieldHasChanges()
console.log(s_form.fieldHasChanges('state'));

s_form.hasChanges()


Данный метод проверяет, была ли изменена запись.

предупреждение

Это устаревший метод, не рекомендуемый к использованию. Используйте вместо него метод s_form.isChanged().

Возвращаемое значение:

ТипОписание
BooleanМетод возвращает значение true, если запись была изменена; если изменений не было, метод возвращает значение false.

Пример:

hasChanges()
if (s_form.hasChanges()) {
s_form.save().then(() => s_form.goBack());
} else {
s_form.goBack();
}