# Поля документов Поле определяет не только 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_*` и другие) остаются полноценными контрактами для существующих данных. Их нельзя массово переименовывать без отдельной миграции значений и шаблонов. ## Где управлять - **Рубрики и поля → Типы полей** — какие установленные типы доступны при создании нового поля. - **Рубрики и поля → Рубрики** — добавление поля, его настройки, ширина, значение по умолчанию и положение в редакторе документа. - **Документы** — ввод значения по правилам выбранного типа. Отключение типа скрывает его только из списка создания. Уже существующие поля продолжают читаться, редактироваться и выводиться.