Документация для разработчиков
Темная тема

BX.UI.UserField

Описание

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

Модель используется:

На вход конструктора приходит объект UserFieldData со структурой, которую возвращают методы контроллера настроек:

declare type UserFieldData = {
	id: ?number,
	fieldName: string,
	detailUrl: ?string,
	enum: ?Array,
	entityId: string,
	xmlId: ?string,
	sort: number,
	mandatory: string,
	showFilter: string,
	isSearchable: string,
	settings: ?{},
};

Методы

Метод Описание С версии
constructor(data: UserFieldData, params: ?{}) Конструктор. Параметры:
  • data - объект структуры UserFieldData. Можно передать только id, а после вызвать метод load()
  • params - объект дополнительных параметров
    • moduleId - идентификатор модуля. Необходим для работы аякс-действий по сохранению / изменению настроек
    • languageId - идентификатор языка. Если не передан, будет использован текущий язык интерфейса

Ajax-методы

Метод Описание С версии
load(): Promise<UserField,string[]> Метод делает ajax-запрос с попыткой загрузить актуальные данные о настройке пользовательского поля. В случае успеха данные о настройках обновятся автоматически.

Метод вернет Promise. В reject придет массив с сообщениями об ошибках

save(): Promise<UserField,string[]> Метод делает ajax-запрос с попыткой сохранить настройки пользовательского поля. Автоматически определяет, что надо выполнить - добавление (если id не задано) или обновление.

Метод вернет Promise. В reject придет массив с сообщениями об ошибках

delete(): Promise<UserField,string[]> Метод делает аякс-запрос с попыткой удалить настройки пользовательского поля. В случае успеха поле будет помечено как удаленное (метод isDeleted() вернет true).

Вернет Promise. В reject придет массив с сообщениями об ошибках

Геттеры и сеттеры


  • setLanguageId(languageId: string): this
  • getLanguageId(): string
  • setModuleId(moduleId: string): this
  • getId(): number
  • getName(): ?string
  • setName(name: string): this - Не меняется на сохраненном поле
  • getEntityId(): string
  • getUserTypeId(): string
  • setUserTypeId(userTypeId: string): this - Не меняется на сохраненном поле
  • isMultiple(): boolean
  • setIsMultiple(isMultiple: boolean|string): this - Не меняется на сохраненном поле
  • isMandatory(): boolean
  • setIsMandatory(mandatory: boolean): this
  • getDetailUrl(): ?string
  • isDeleted(): boolean - Вернет true, если поле было удалено через метода delete()
  • getEnumeration(): ?Array - Вернет массив с вариантами значений для свойства типа "Список"
  • setEnumeration(items: Array): this - Устанавливает варианты значений для свойства типа "Список"
  • getTitle(): string
  • setTitle(title: string, languageId: ?string): this
  • setData(data: UserFieldData): this - Устанавливает данные о настройках поля
  • getData(): UserFieldData - Возвращает данные о настройках поля

Сериализация

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

Объект целиком нельзя передать корректно из одного окна в другое, поэтому в одном окне объект необходимо сериализовать, а в другом - восстановить из строки.

serialize(): string - метод вернет строку с сериализованными данными об объекте

static unserialize(serializedData: string): UserField - Метод позволяет восстановить объект из сериализованной строки



© «Битрикс», 2001-2024, «1С-Битрикс», 2024