Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
Можно ли в одном элементе управляемой формы «Поле ввода» вводить значения разных типов (например, то ссылку на справочник, то строку), и при каком условии это будет доступно пользователю?
Да, если поле ввода связано с реквизитом составного типа и у элемента включено свойство «Выбирать тип».
Правильно: Разные типы в одном поле возможны только когда связанный реквизит допускает несколько типов (составной тип). Чтобы пользователь мог переключать тип значения прямо в интерфейсе, у поля ввода нужно включить «Выбирать тип», тогда появится механизм выбора типа при вводе/очистке.
Да, достаточно чтобы поле ввода было связано с реквизитом составного типа - дополнительных настроек не требуется.
Неправильно: Составной тип у реквизита действительно является базовым условием, но без свойства «Выбирать тип» пользователь обычно не сможет удобно вводить разные типы в одном и том же поле через интерфейс. В этом случае поле, как правило, фиксируется на текущем типе/предустановленном типе, а выбор типа не предлагается.
Нет, одно «Поле ввода» всегда принимает значения только одного типа.
Неправильно: Поле ввода может работать с составным типом и принимать значения разных типов, если это разрешено типом реквизита. Ограничение «только один тип» справедливо лишь для реквизитов с одиночным (не составным) типом.
Пояснение
В 1С возможность вводить в одном «Поле ввода» значения разных типов связана не с самим элементом формы, а с типом реквизита, к которому он привязан.
Как это работает:
1) Сначала у реквизита формы/объекта должен быть задан составной тип (например: «СправочникСсылка.Контрагенты» + «Строка», или «ФизЛица» + «Пользователи» и т.п.). Если реквизит не составной, разные типы в поле в принципе невозможны.
2) Затем у элемента формы «Поле ввода» нужно включить свойство «Выбирать тип». Тогда пользователь сможет выбирать, какой именно тип сейчас вводится (обычно это проявляется при выборе/очистке значения или при вводе - система предлагает выбрать тип из допустимых).
Практический пример:
- Реквизит «Ответственный» допускает два типа: «СправочникСсылка.Пользователи» и «СправочникСсылка.ФизическиеЛица».
- На форме для поля «Ответственный» включают «Выбирать тип».
- Пользователь сможет выбрать: указать сотрудника как пользователя системы или как физлицо, и поле корректно сохранит значение нужного типа.
Полезные нюансы для разработчика:
- Если нужно, наоборот, запретить пользователю переключать тип и всегда работать только с одним (из составных), можно отключить «Выбирать тип» и/или задать «Ограничение типа» у поля ввода, чтобы оставить только нужные типы.
- Если конструктор/пользователь жалуется, что при очистке значения снова предлагается выбор типа - это как раз поведение, которое управляется свойством «Выбирать тип» и настройками ограничения типов.