
## ATTACH-блоки

Расширенное форматирование сообщений через поле `fields.attach`. Максимальный размер — 60 000 символов после сериализации.

## Два формата передачи

**Полный формат** (с метаданными):

```json
{
  "fields": {
    "attach": {
      "ID": 1,
      "COLOR_TOKEN": "primary",
      "COLOR": "#29619b",
      "BLOCKS": [
        { "MESSAGE": [{ "MESSAGE": "Текст блока", "STYLE": "bold" }] },
        { "DELIMITER": [{ "SIZE": 200, "COLOR": "#c6c6c6" }] }
      ]
    }
  }
}
```

**Сокращённый формат** (массив блоков):

```json
{
  "fields": {
    "attach": [
      { "MESSAGE": [{ "MESSAGE": "Текст блока", "STYLE": "bold" }] },
      { "DELIMITER": [{}] },
      { "GRID": [{ "NAME": "Поле", "VALUE": "Значение" }] }
    ]
  }
}
```

Если в `attach` нет ключа `BLOCKS`, сервер считает, что передан сокращённый формат.

## Типы блоков

### MESSAGE — стилизованный текст

| Поле | Тип | Описание |
|------|-----|---------|
| `MESSAGE` | string | Текст сообщения |
| `STYLE` | string | Стиль: `bold`, `italic`, `base` |

```json
{ "MESSAGE": [{ "MESSAGE": "Статус обновлён", "STYLE": "bold" }] }
```

### USER — карточка пользователя

| Поле | Тип | Описание |
|------|-----|---------|
| `NAME` | string | Имя пользователя |
| `AVATAR` | string | URL аватара |
| `LINK` | string | URL профиля |

```json
{ "USER": [{ "NAME": "Иван Петров", "AVATAR": "https://example.com/avatar.jpg", "LINK": "https://portal.bitrix24.ru/company/personal/user/1/" }] }
```

### LINK — превью ссылки

| Поле | Тип | Описание |
|------|-----|---------|
| `NAME` | string | Заголовок ссылки |
| `LINK` | string | URL |
| `DESC` | string | Описание |
| `PREVIEW` | string | URL изображения-превью |

```json
{ "LINK": [{ "NAME": "Документация API", "LINK": "https://vibecode.bitrix24.tech/docs", "DESC": "Полная документация API Вайбкод" }] }
```

### DELIMITER — линия-разделитель

| Поле | Тип | Описание |
|------|-----|---------|
| `SIZE` | integer | Ширина в пикселях |
| `COLOR` | string | Цвет в формате HEX |

```json
{ "DELIMITER": [{ "SIZE": 200, "COLOR": "#c6c6c6" }] }
```

### GRID — таблица / сетка

| Поле | Тип | Описание |
|------|-----|---------|
| `NAME` | string | Название поля |
| `VALUE` | string | Значение поля |
| `DISPLAY` | string | Отображение: `LINE` (в строку), `BLOCK` (блок), `ROW` (строка) |
| `WIDTH` | integer | Ширина столбца в пикселях |

```json
{
  "GRID": [
    { "NAME": "Задача", "VALUE": "Подготовить отчёт", "DISPLAY": "LINE" },
    { "NAME": "Статус", "VALUE": "Выполнено", "DISPLAY": "LINE" }
  ]
}
```

### IMAGE — изображение

| Поле | Тип | Описание |
|------|-----|---------|
| `LINK` | string | URL полного изображения |
| `NAME` | string | Подпись |
| `PREVIEW` | string | URL превью |
| `WIDTH` | integer | Ширина в пикселях |
| `HEIGHT` | integer | Высота в пикселях |

```json
{ "IMAGE": [{ "LINK": "https://example.com/chart.png", "NAME": "График продаж", "WIDTH": 600, "HEIGHT": 400 }] }
```

### FILE — прикреплённый файл

| Поле | Тип | Описание |
|------|-----|---------|
| `LINK` | string | URL файла |
| `NAME` | string | Имя файла |
| `SIZE` | integer | Размер в байтах |

```json
{ "FILE": [{ "LINK": "https://example.com/report.pdf", "NAME": "report.pdf", "SIZE": 2048576 }] }
```

## Токены цвета (COLOR_TOKEN)

`primary`, `secondary`, `alert`, `base`

## Полный пример

```json
{
  "dialogId": "chat123",
  "fields": {
    "message": "",
    "attach": [
      {
        "MESSAGE": [
          { "MESSAGE": "Статус задачи обновлён", "STYLE": "bold" }
        ]
      },
      { "DELIMITER": [{}] },
      {
        "GRID": [
          { "DISPLAY": "LINE", "NAME": "Задача", "VALUE": "Подготовить отчёт" },
          { "DISPLAY": "LINE", "NAME": "Статус", "VALUE": "Выполнено" },
          { "DISPLAY": "LINE", "NAME": "Исполнитель", "VALUE": "Иванов А.П." }
        ]
      },
      {
        "LINK": [
          { "NAME": "Открыть задачу", "LINK": "https://portal.bitrix24.ru/tasks/42/" }
        ]
      }
    ]
  }
}
```

## Смотрите также

- [Отправить сообщение](/docs/bots/messages/send)
- [Обновить сообщение](/docs/bots/messages/update)
- [Форматирование текста](/docs/bots/messages/formatting)
- [Клавиатура](/docs/bots/messages/keyboard)
