Реквизит допускает Строка/Число, поле разрешает ввод только строки. Показано отличие интерфейсного ОграничениеТипа от типа самого реквизита.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.
Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.
В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.
Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
ТипРеквизита = Новый ОписаниеТипов("Строка,Число");
Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
ЭтаФорма.ИзменитьРеквизиты(Новые);
ЭтаФорма.ЗначениеПримера = "Книга";
Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "ЗначениеПримера";
Поле.Заголовок = "Учебное составное значение";
Поле.ОграничениеТипа = Новый ОписаниеТипов("Строка");
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить строковое значение";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Если ТипЗнч(ЗначениеПримера) <> Тип("Строка") Тогда
Сообщить("Для этой команды нужна строка, а не число");
Возврат;
КонецЕсли;
Если ПустаяСтрока(ЗначениеПримера) Тогда
Сообщить("Заполните собственное учебное название");
Возврат;
КонецЕсли;
Сообщить("Допустимое название: " + ЗначениеПримера);
КонецПроцедуры
Разбор по шагам
При создании реквизита задаём составной тип Строка,Число, а начальное значение Книга.
ОграничениеТипа поля сужает доступный пользователю ввод до строки, не переписывает схему реквизита.
Команда отдельно проверяет фактический тип перед использованием строковых операций.
Пустую строку отклоняем отдельным правилом. Интерфейсное ограничение не объявляется полной валидацией данных.
Как проверить результат
Исходная Книга проходит команду; пустая строка даёт просьбу заполнить название.
В отдельной копии измените начальное значение в коде на 42: независимо от его отображения команда отклоняет числовой тип.
Ожидаемый результат
Разделены тип реквизита, ограничение поля и проверка команды.
На что обратить внимание
Сужение поля не заменяет проверки при программном присваивании или серверной записи.
Нельзя расширить этим свойством тип за пределы допустимого типа реквизита.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.