# Структура данных доски

- Human documentation: [https://docs.univer.ai/ru-RU/guides/boards/model/board-data](https://docs.univer.ai/ru-RU/guides/boards/model/board-data)

- Agent Markdown: [https://docs.univer.ai/ru-RU/guides/boards/model/board-data.md](https://docs.univer.ai/ru-RU/guides/boards/model/board-data.md)

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

- Source: [boards/model/board-data.ru-RU.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/boards/model/board-data.ru-RU.mdx)

---

## IBoardData

`IBoardData` — это формат снимка состояния, используемый в Univer Boards. Он описывает одну доску, включая порядок и данные страниц, ресурсы, темы, активную страницу, масштаб и настройки уровня доски.

### Свойства

| Свойство        | Тип                                 | Описание                                                                                              |                                       |
| --------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------- |
| id              | `string`                            | Уникальный идентификатор доски.                                                                       |                                       |
| rev?            | `number`                            | Необязательный номер редакции, используемый слоями хранения данных или совместной работы.             |                                       |
| name            | `string`                            | Название доски.                                                                                       |                                       |
| appVersion      | `string`                            | Версия пакета, создавшего снимок состояния.                                                           |                                       |
| locale?         | `string`                            | Локаль доски.                                                                                         |                                       |
| defaultPageSize | `IBoardPageSize`                    | Размер страницы по умолчанию для страниц доски.                                                       |                                       |
| pageOrder       | `string[]`                          | Упорядоченный список идентификаторов страниц доски.                                                   |                                       |
| pages           | `Record\<string, IBoardPage\>`      | Снимки состояния страниц с идентификаторами страниц в качестве ключей.                                |                                       |
| activePageId?   | `string`                            | Идентификатор активной страницы.                                                                      |                                       |
| theme?          | `IBoardThemeData`                   | Текущая тема доски.                                                                                   |                                       |
| themes?         | `Record\<string, IBoardThemeData\>` | Дополнительные именованные темы.                                                                      |                                       |
| zoomRatio?      | `number`                            | Текущий масштаб.                                                                                      |                                       |
| resources?      | `IResources`                        | Внешние ресурсы, используемые изображениями, форматированным текстом, таблицами и другими элементами. |                                       |
| custom?         | \`Record\<string, unknown>          | null\`                                                                                                | Метаданные, определяемые приложением. |
| boardSettings?  | `IBoardSettings`                    | Настройки интерфейса и взаимодействия на уровне доски.                                                |                                       |

### Данные страницы

`IBoardPage` хранит элементы по идентификаторам и использует `elementOrder` для определения порядка отрисовки. Если вы создаёте снимок состояния самостоятельно, поддерживайте обе структуры согласованными.

```ts
const boardData = {
  id: 'board-1',
  name: 'Planning board',
  appVersion: '1.0.0',
  defaultPageSize: { width: 1920, height: 1080 },
  pageOrder: ['page-1'],
  pages: {
    'page-1': {
      id: 'page-1',
      pageType: 'page',
      name: 'Page 1',
      elementOrder: ['text-1'],
      elements: {
        'text-1': {
          id: 'text-1',
          type: 'text',
          transform: { left: 120, top: 96, width: 240, height: 80 },
          text: 'Kickoff',
        },
      },
    },
  },
  activePageId: 'page-1',
}
```

## Использование

`IBoardData` в основном используется, чтобы:

1. Создавать доску типа `UniverInstanceType.UNIVER_BOARD`.
2. Сохранять и восстанавливать документы доски.
3. Подготавливать данные для импорта, экспорта или обработки на сервере.
4. Наполнять доску страницами, элементами и настройками до начала отрисовки.

> [!WARNING]
> Объекты снимков состояния предназначены для хранения данных. После запуска доски используйте Facade API вместо непосредственного изменения объекта снимка состояния.
