Поля

Поля определяют схему таблицы Base. У каждого поля есть тип, конфигурация, значение по умолчанию и такие возможности, как сортировка, фильтрация, группировка и отображение на карточках.

Типы полей

НазначениеBaseFieldType
Текст и контактыText, Link, Phone, Email
Числа и прогрессNumber, Currency, Progress, Rating
Выбор и участникиCheckbox, SingleSelect, MultiSelect, Person, Group
Даты и вложенияDate, Attachment
Вычисления и связиFormula, RecordLink
Автоматические значения и аудитNumbering, RecordId, CreatedBy, UpdatedBy, CreatedAt, UpdatedAt

Для выбора используйте ID вариантов, для участников — ID из приложения. Нумерацией и аудитом управляет система. См. формулы и связи записей.

Добавление полей

TypeScript
const table = base.getTableById('tasks')if (!table) throw new Error('Tasks table not found')const title = table.addField('Title', univerAPI.Enum.BaseFieldType.Text)const priority = table.addField(  'Priority',  univerAPI.Enum.BaseFieldType.SingleSelect,  {    field: {      config: {        options: [          { id: 'high', name: 'High', color: '#ef4444' },          { id: 'low', name: 'Low', color: '#22c55e' },        ],      },    },  },)

Обновление полей

TypeScript
priority.setName('Impact')priority.update({ description: 'Business priority' })priority.setConfig({  options: [    { id: 'p0', name: 'P0', color: '#dc2626' },    { id: 'p1', name: 'P1', color: '#f97316' },  ],})

Изменение типа поля

TypeScript
priority.changeType(univerAPI.Enum.BaseFieldType.Text, {})

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

Вложения

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

TypeScript
const attachments = table.addField('Files', univerAPI.Enum.BaseFieldType.Attachment)const record = table.getRecords()[0]if (!record) throw new Error('Create a record first')record.setAttachments(attachments.getId(), [{  id: 'brief-1',  name: 'brief.pdf',  mimeType: 'application/pdf',  source: 'https://example.com/files/brief.pdf',}])

setAttachments() заменяет весь список. getAttachments() читает его, а deleteAttachments() удаляет выбранные элементы. Укажите доступный URL и настройте загрузку при существующей регистрации Bases UI:

TypeScript
univer.registerPlugin(UniverBasesUIPlugin, {  attachment: {    accept: ['image/*', '.pdf'],    maxSize: 10 * 1024 * 1024,    upload: uploadAttachment,  },})

Сигнатура uploadAttachment: (file: File) => Promise<IBaseAttachment>; функция возвращает показанные выше данные. maxSize задаётся в байтах. Без загрузчика плагин сначала пробует ввод-вывод изображений, затем Base64, увеличивая снимок. В рабочей среде подключите хранилище и проверяйте тип, размер и права скачивания на сервере.

Пользователи и группы

Задайте варианты через personOptions и groupOptions Bases UI. У каждого элемента есть id, name и необязательный avatar. Это параметры отображения; вход и права доступа остаются ответственностью приложения.

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.