§ 4.4. Виды полей: одно значение, разные способы показать
Выделите поле «Артикул» и раскройте в палитре список у строки «Вид»: выбран в нём один вариант — тот, что подставила платформа, глядя на строковый тип. Выбор этот не окончательный: вариант в списке меняют, как любую другую настройку. Здесь и становится видно во всей полноте, что элемент и то, что он показывает, — разные вещи: артикул один, а способов его показать несколько.
1. Свойство «Вид» и кто его заполняет
У поля есть свойство, которое решает, чем оно будет на экране.
| кто задаёт | когда |
|---|---|
| платформа | сама, по типу данных из пути |
| разработчик | когда выбор платформы не подходит |
Значение по умолчанию — не приказ, а предложение. Строка получает поле ввода потому, что это самый ходовой вид для строки, а не потому, что иначе нельзя.
2. Пять рабочих видов
Своих видов у поля около двух десятков — не путать с пятью видами элементов из начала главы, — но в обычной форме встречаются в основном пять.
| вид | что показывает | ввод |
|---|---|---|
| поле ввода | значение любого типа | да |
| поле надписи | значение, которое менять нельзя | нет |
| поле флажка | булево: да или нет | да |
| поле переключателя | выбор одного варианта из нескольких | да |
| поле картинки | картинку | нет |
Остальные нужны для особых задач: поле календаря показывает месяц целиком, поле индикатора — шкалу заполнения, поля табличного и текстового документа — встроенный документ. Встретив такое поле в чужой форме, вы узнаете его по имени вида и по тому, что оно показывает.
Доступен, впрочем, не весь набор сразу: выбор сужает тип данных, на которые поле указывает.
3. Вид ограничен типом
Свобода тут не полная, и ограничивают её данные.
| тип данных | какие виды подойдут |
|---|---|
| строка, число, дата | ввод, надпись |
| булево | флажок, ввод, надпись |
| ссылка на запись | ввод, надпись |
| набор вариантов | переключатель |
Правило простое: вид меняет способ показа, но не сам показываемый предмет. Флажок возможен, когда за полем булево, — и то лишь один из допустимых видов: булево показывают и полем ввода, и надписью. А строку флажком не покажешь: нечего ставить и снимать.
Тип решает, что показывают. Вид решает, как. Второе выбирают из того, что позволяет первое.
4. Надпись и декорация — не одно и то же
Самая полезная пара в этом параграфе. Оба показывают текст, который нельзя изменить, а различаются тем, откуда текст берётся.
| поле надписи | декорация | |
|---|---|---|
| это | поле — тот же элемент, что и поле ввода, только вид другой | другой вид элемента, не поле |
| путь к данным | есть | нет |
| что на экране | значение из данных | текст, набранный разработчиком |
| меняется ли | да, когда меняется значение | нет, он записан в форме |
Отсюда правило чтения чужой формы: увидели текст, который выглядит как подпись, — посмотрите в структуре, что это за элемент, и проверьте путь к данным. Поле с путём — данные, показанные без права ввода. Декорация — просто надпись, пути к данным у неё не бывает.
5. Зачем менять вид
Поводов немного, и все они про работу пользователя.
| повод | что делают |
|---|---|
| значение показать, но не давать менять | вид «поле надписи» |
| выбор из двух-трёх вариантов на виду | вид «поле переключателя» |
| признак, который читают глазами | вид «поле картинки» |
Первая строка — самая частая, и у неё есть соперник: свойство поведения, которое запрещает изменение, оставляя поле полем. Разница в том, что видит пользователь: надпись выглядит как текст, а запрещённое к изменению поле — как поле, в которое не пускают.
6. Один реквизит — два вида рядом
Раз вид принадлежит элементу, одно значение можно показать дважды и по-разному на одной форме.
Объект.Артикул
├── поле ввода ← в карточке правят
└── поле надписи ← в шапке показывают
Оба элемента смотрят по одному адресу: изменили в поле ввода — надпись обновилась. Это прямое продолжение правила из разговора о том, почему элементы не равны данным: сколько угодно элементов на один реквизит, и каждый настроен по-своему.
7. В Конфигураторе и в Предприятии
Опыт на две минуты: одно значение, два способа показать.
- Откройте форму элемента «Товаров» и выделите поле «Артикул». Найдите в палитре свойство «Вид» и посмотрите, что предлагает список.
-
Смените вид на «поле надписи». Обновите конфигурацию базы данных и откройте карточку товара: артикул виден, но не вводится.
-
Верните полю вид «поле ввода»: карточка снова даёт править артикул.
-
Выделите поле-флажок «ПоказыватьПодробности» и посмотрите список видов у него. Он короче — тип булево позволяет меньше.
-
Ничего не меняя, закройте форму. Если что-то поменяли — верните: база серии должна остаться прежней.
Второй шаг стоит проделать даже тем, кому он кажется очевидным. Поле, ставшее надписью, — самый наглядный пример того, что данные и их показ живут врозь: в базе ничего не изменилось, а работать с карточкой стало иначе.
Главное в одном абзаце
У поля есть свойство «Вид», и платформа заполняет его сама по типу данных из пути — но это предложение, а не приказ. Рабочих видов пять: поле ввода, поле надписи, поле флажка, поле переключателя, поле картинки; всего же видов у поля около двух десятков, и остальные нужны для особых задач. Свобода выбора ограничена типом: флажок возможен, когда за полем булево, переключатель — когда есть набор вариантов, а строку ни тем ни другим не покажешь. Отсюда правило: тип решает, что показывают, вид — как. Поле надписи и декорация выглядят одинаково, но первое связано с данными и меняется вместе с ними, а второе показывает текст, записанный в форме, — различает их путь к данным. Менять вид стоит ради работы пользователя: показать без права ввода, дать выбор на виду, показать признак картинкой; и одно значение спокойно показывают два элемента разного вида на одной форме.
Вид выбран, путь задан, значение на экране. Но поле может оказаться невидимым, недоступным для ввода или без подписи — и всё это тоже чьи-то решения. Где они записаны?
Контрольные вопросы
- Какое свойство решает, чем поле будет на экране, и кто его заполняет?
- Назовите пять видов полей, которые встречаются чаще всего.
- Почему нельзя показать строку полем флажка?
- Чем поле надписи отличается от декорации и как их различить в чужой форме?
- Зачем менять вид поля? Назовите два повода.
- Что произойдёт со значением в базе, если сменить вид поля?
- Можно ли показать один реквизит двумя полями разного вида на одной форме?
Упражнения
По образцу. Смените вид поля «Телефон» в форме элемента «Контрагентов» на надпись, посмотрите в Предприятии и верните обратно.
Своё: подберите вид. Какой вид вы дадите полю для каждого случая: ИНН, который менеджеру нельзя править; признак «архивный» у контрагента; выбор способа доставки из трёх вариантов; логотип контрагента.
Ловушка: «сделай поле некликабельным». Заказчик просит, чтобы поле суммы в документе «нельзя было трогать». Назовите два способа и объясните, чем они отличаются для пользователя; точные настройки второго разберём дальше.
Обратный ход. В чужой форме текст показывается и меняется при изменении данных, а ввести в него ничего нельзя. Что это за элемент и как проверить догадку?
На чтение. В форме поле связано с реквизитом типа Булево, а вид у него — поле ввода. Что увидит пользователь и зачем так могли сделать?
Ответы — в конце части.