# Таблицы, поля и записи

- Human documentation: [https://docs.univer.ai/ru-RU/guides/bases/model/tables-fields-records](https://docs.univer.ai/ru-RU/guides/bases/model/tables-fields-records)

- Agent Markdown: [https://docs.univer.ai/ru-RU/guides/bases/model/tables-fields-records.md](https://docs.univer.ai/ru-RU/guides/bases/model/tables-fields-records.md)

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

- Source: [bases/model/tables-fields-records.ru-RU.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/model/tables-fields-records.ru-RU.mdx)

---

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

Новые таблицы создаются без записей; добавляйте их явно через Facade API или импортируемый снимок.

## Снимок таблицы

| Свойство       | Тип                                 | Описание                                                      |
| -------------- | ----------------------------------- | ------------------------------------------------------------- |
| id             | `string`                            | Идентификатор таблицы.                                        |
| name           | `string`                            | Название таблицы.                                             |
| fields         | `Record\<string, IFieldSnapshot\>`  | Определения полей, где ключом служит идентификатор поля.      |
| fieldOrder     | `string[]`                          | Упорядоченный список идентификаторов полей.                   |
| records        | `Record\<string, IRecordSnapshot\>` | Данные записей, где ключом служит идентификатор записи.       |
| recordOrder?   | `string[]`                          | Упорядоченный список идентификаторов записей.                 |
| primaryFieldId | `string`                            | Идентификатор основного поля.                                 |
| views          | `Record\<string, IViewSnapshot\>`   | Представления, где ключом служит идентификатор представления. |
| viewOrder      | `string[]`                          | Упорядоченный список идентификаторов представлений.           |
| resources?     | `IBaseResources`                    | Общие ресурсы вариантов выбора, участников и вложений.        |

## Снимок поля

| Свойство      | Тип                         | Описание                                           |
| ------------- | --------------------------- | -------------------------------------------------- |
| id            | `string`                    | Идентификатор поля.                                |
| name          | `string`                    | Название поля.                                     |
| description?  | `string`                    | Описание поля.                                     |
| type          | `BaseFieldType`             | Тип поля.                                          |
| config        | `Record\<string, unknown\>` | Конфигурация поля, зависящая от его типа.          |
| defaultValue? | `BaseCellValue`             | Значение по умолчанию для новых записей.           |
| system?       | `boolean`                   | Указывает, управляется ли поле системой.           |
| readonly?     | `boolean`                   | Указывает, доступны ли значения только для чтения. |

## Типы полей

К распространённым типам полей относятся `text`, `number`, `currency`, `progress`, `rating`, `checkbox`, `singleSelect`, `multiSelect`, `person`, `group`, `date`, `attachment`, `formula`, `createdAt`, `updatedAt`, `createdBy` и `updatedBy`.

При разработке приложения используйте перечисления Facade:

```ts
const field = table.addField('Due date', univerAPI.Enum.BaseFieldType.Date)
```

## Снимок записи

| Свойство   | Тип                               | Описание                                                       |
| ---------- | --------------------------------- | -------------------------------------------------------------- |
| id         | `string`                          | Идентификатор записи.                                          |
| values     | `Record\<string, BaseCellValue\>` | Значения, где ключом служит идентификатор поля.                |
| orderKey   | `string`                          | Стабильный ключ сортировки.                                    |
| createdAt  | `number`                          | Временная метка создания.                                      |
| updatedAt  | `number`                          | Временная метка обновления.                                    |
| createdBy? | `string`                          | Идентификатор создателя.                                       |
| updatedBy? | `string`                          | Идентификатор пользователя, выполнившего последнее обновление. |

## Пример использования Facade

```ts
const table = base.insertTable('Tasks', { primaryFieldName: 'Title' })
const title = table.getPrimaryField()
const status = table.addField('Status', univerAPI.Enum.BaseFieldType.SingleSelect)

const record = table.addRecord({
  [title.getId()]: 'Write guide',
  [status.getId()]: 'In progress',
})
```
