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

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-2021, «1С-Битрикс», 2021
Наверх