TEnum

Категория (перечисление)

Создавать TEnum вручную обычно не требуется.

Варианты автоматически формируются из настроек поля и передаются через EnumField.variants. При работе с формой допускается временно добавлять варианты в свойство EnumField.data.variants через скрипт. Такие варианты отображаются в интерфейсе и могут использоваться в текущей сессии формы. После обновления страницы они не сохраняются, однако выбранные значения доступны в контексте текущего экземпляра формы.

Где встречается TEnum:

  • как доступный вариант — в EnumField.variants и Context.fields.<field>.data.variants;
  • как выбранное значение — в Context.data.<field> (одиночный: TEnum<T>; множественный: TEnum<T>[]).

Type parameters

  • T: string

Hierarchy

  • TEnum

Properties

code

code: T

Код варианта.

Задаётся один раз и используется в логике и сравнениях. Генерируется автоматически из названия варианта или указывается вручную.

Правила преобразования кода:

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

Примеры преобразования:

  • «Бизнес-процесс» — «biznes-process»;
  • «Client Type» — «client_type»;
  • «Тип#1» — «tip_1»;
  • «Заказы v2.0» — «zakazy_v2_0».

Примеры использования:

// Получение варианта по его коду
const dict = Context.fields.category.variants;

// Коды с недопустимыми для JS-идентификатора символами указываются только в квадратных скобках
const vNum   = dict["1n"];           // Начинается с цифры
const vDash  = dict["order-type"];   // Содержит дефис

// Допустимый идентификатор указывается через точку или в квадратных скобках
const v_Ok1 = dict.code1;
const v_Ok2 = dict["code1"];

// Установка выбора для поля типа Категория (Одиночный)
Context.data.category = v_Ok1;

// Установка выбора для поля типа Категория (Множественный)
Context.data.category_multi = [v_Ok1, vDash].filter(Boolean);

// Добавление доступных вариантов в интерфейс через `data.variants`
// Временные варианты, которые доступны только в текущей форме для тестирования или разовых действий
Context.fields.category.data.variants.push({ code: "temp_one", name: "Temp ONE" });
Context.fields.category.data.variants.push({ code: "temp_two", name: "Temp TWO" });

// Получение кодов выбранных значений для поля типа Категория (Множественный)
const selectedCodes: string[] = (Context.data.category_multi ?? []).map(v => v.code);

// Получение кодов доступных вариантов
const availableCodes: string[] = Context.fields.category.data.variants.map(v => v.code);

// Сравнение по коду
if (v_Ok1.code === "code1") {
// ...
}

// Отображение названия варианта
console.log(v_Ok1.name);

name

name: string

Отображаемое название варианта, которое видит пользователь.

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