# Области шаблона страницы

Привязывает другие страницы к областям раскладки страницы — шапке, подвалу, боковой колонке — читает привязки, меняет их по одной и снимает все сразу. Сами страницы при снятии привязки остаются на сайте.

Битрикс24 API: `landing.template.getLandingRef`, `landing.template.setLandingRef`
Скоуп: `landing`

## Операции

- [Получить области шаблона страницы](./template-areas-list.md) — `GET /v1/pages/:id/template-areas`
- [Изменить области шаблона страницы](./template-areas-update.md) — `PATCH /v1/pages/:id/template-areas`
- [Очистить области шаблона страницы](./template-areas-delete.md) — `DELETE /v1/pages/:id/template-areas`

## Ключевые поля

Все три метода возвращают один объект — собственные привязки страницы после вызова.

| Поле | Описание |
|------|----------|
| `areas` | Привязки областей. Ключ — номер области строкой, значение — ID страницы, которая встаёт в эту область. У страницы без своих привязок — пустой объект `{}` |
| номер области | Целое число со знаком от `-2147483648` до `2147483647`, включая `0`. В ответе приходит в десятичной записи: `007` становится `7` |
| ID страницы | ID любой страницы, которую видит пользователь, в том числе со стороннего сайта. Список страниц: [`GET /v1/pages`](/docs/entities/pages/list) |

## Что нужно знать перед работой

1. **Раскладку страницы задаёт поле `tplId`.** Раскладку меняет [`PATCH /v1/pages/:id`](/docs/entities/pages/update), число областей каждой раскладки — на странице [Шаблоны раскладки](/docs/entities/site-templates). Номер области при записи с раскладкой не сверяется: принимается любой номер из допустимого диапазона.
2. **У страницы и у сайта свои наборы областей.** [Области шаблона сайта](/docs/entities/sites/template-areas) читаются и пишутся отдельно. Ответ страницы не содержит областей сайта, очистка областей страницы не трогает области сайта.
3. **Изменение сливается с текущим набором.** `PATCH` меняет только переданные области, значение `null` снимает привязку с одной области. Снять все привязки можно только через `DELETE`: пустой `areas` отвечает `400`.
4. **Запись проверяется перечитыванием.** Методы записи после изменения заново читают области и возвращают их. Если изменение не сохранилось, приходит `422 BITRIX_ERROR`, а не `200`.
5. **Одна запись за раз.** Пока идёт запись областей страницы, вторая запись тех же областей через API отвечает `409 TEMPLATE_AREAS_BUSY` — повторите её позже. Блокировка действует только между запросами API: правки в интерфейсе Битрикс24 она не учитывает.
6. **Страница в отдельной области: база знаний, группа или область `MAINPAGE`.** Для такой страницы передавайте query-параметр `scope` со значением `KNOWLEDGE`, `GROUP` или `MAINPAGE` — без него страница не находится и приходит `404`. Для страницы обычного сайта `scope` не передаётся.

## Типичный сценарий

1. Найти страницы сайта: [`GET /v1/pages?filter[siteId]=:id`](/docs/entities/pages/list).
2. Задать странице раскладку с шапкой и подвалом: [`PATCH /v1/pages/:id`](/docs/entities/pages/update) с `{"tplId": 7}`.
3. Посмотреть текущие привязки: [`GET /v1/pages/:id/template-areas`](./template-areas-list.md).
4. Поставить страницу-шапку в область: [`PATCH /v1/pages/:id/template-areas`](./template-areas-update.md) с `{"areas": {"1": 2387}}`.
5. Опубликовать страницу: `POST /v1/pages/:id/publication`.

## Лимиты

| Лимит | Значение |
|-------|----------|
| Номер области | От `-2147483648` до `2147483647` |
| Одновременные записи | Одна на страницу. Вторая в это же время отвечает `409 TEMPLATE_AREAS_BUSY` |
| Частота запросов | Общие лимиты API — [Лимиты и оптимизация](/docs/optimization) |

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

- [Страницы](/docs/entities/pages)
- [Области шаблона сайта](/docs/entities/sites/template-areas)
- [Шаблоны раскладки](/docs/entities/site-templates)
- [Системные роли страницы](/docs/entities/pages/system-pages)
- [Лимиты и оптимизация](/docs/optimization)
