# Поля документов
Поле определяет не только HTML-инпут. Один тип владеет полным контрактом значения:
- редактированием документа в панели управления;
- настройками поля в конструкторе рубрики;
- нормализацией и серверной валидацией;
- форматом хранения и числовым индексом;
- выводом в документе и в элементах запросов;
- доступными фильтрами каталога;
- событиями до и после обработки значения.
Типы регистрирует `App\Content\Fields\FieldRegistry`. Ядро содержит базовый набор
в `system/App/Content/Fields/Types`, а прикладной тип рекомендуется поставлять
вместе с модулем. Панель управления и публичный сайт используют один реестр,
поэтому
отдельного обработчика поля для старой админки нет.
## Карта раздела
| Страница | Назначение |
| --- | --- |
| [Справочник типов](types.md) | Что делает каждый штатный тип и чем рекомендуемые типы отличаются от legacy-типов. |
| [Устройство и хранение](storage.md) | Таблицы, `FieldContext`, scalar/JSON, числовой индекс и этапы обработки. |
| [Настройки и валидация](settings.md) | `settingsSchema()`, доступные контролы и стандартные правила проверки. |
| [Разработка своего типа](development.md) | Рабочий класс поля, регистрация через модуль и проверка. |
| [Публичный вывод и шаблоны](templates.md) | `doc`/`req`, точечные PHP-шаблоны и доступный контекст. |
| [Управление типами](operations.md) | Включение для новых рубрик, совместимость и безопасное удаление модуля. |
## Базовый выбор типа
Для нового проекта сначала используйте универсальные нативные типы:
| Задача | Тип |
| --- | --- |
| Обычный, форматированный текст или код | `content` |
| Число, цена, процент, единица измерения | `number` |
| Один или несколько стабильных вариантов | `choice` |
| Дата или дата со временем | `date_time` |
| Email, телефон или URL | `contact` |
| Диапазон значений | `range` |
| Длина, ширина и высота | `dimensions` |
| Несколько грузовых мест | `packages` |
| Структурированный адрес | `address` |
| Период с началом и окончанием | `period` |
Старые типы (`single_line`, `multi_line`, `drop_down`, `image_*` и другие)
остаются полноценными контрактами для существующих данных. Их нельзя массово
переименовывать без отдельной миграции значений и шаблонов.
## Где управлять
- **Рубрики и поля → Типы полей** — какие установленные типы доступны при
создании нового поля.
- **Рубрики и поля → Рубрики** — добавление поля, его настройки, ширина,
значение по умолчанию и положение в редакторе документа.
- **Документы** — ввод значения по правилам выбранного типа.
Отключение типа скрывает его только из списка создания. Уже существующие поля
продолжают читаться, редактироваться и выводиться.