Тип: Булево, Неопределено. Содержит признак наличия/отсутствия кнопки выбора значения в поле. Неопределено - автоматическое определение.
Полное описание, параметры и ограничения
Расширение поля формы для поля ввода.КнопкаВыбора (Form field extension for a text box.ChoiceButton)
Расширение поля формы для поля ввода (Form field extension for a text box)
КнопкаВыбора (ChoiceButton)
Доступен, начиная с версии 8.2.
Использование:
Чтение и запись.
Описание:
Тип: Булево, Неопределено.
Содержит признак наличия/отсутствия кнопки выбора значения в поле.
Неопределено - автоматическое определение.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Создать поле цены с границами, регулированием и отдельной проверкой
Учебная цена начинается с 12.34. Ограничиваем ввод диапазоном 0–9999.99, показываем формат редактирования и не подменяем проверку данных оформлением поля.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.
Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.
В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.
Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
ТипРеквизита = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 2));
Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
ЭтаФорма.ИзменитьРеквизиты(Новые);
ЭтаФорма.ЗначениеПримера = 12.34;
Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "ЗначениеПримера";
Поле.Заголовок = "Учебная цена";
Поле.МинимальноеЗначение = 0;
Поле.МаксимальноеЗначение = 9999.99;
Поле.КнопкаРегулирования = Истина;
Поле.КнопкаОчистки = Истина;
Поле.КнопкаВыбора = Ложь;
Поле.КнопкаОткрытия = Ложь;
Поле.КнопкаСоздания = Ложь;
Поле.ФорматРедактирования = "ЧДЦ=2; ЧН=0";
Поле.ВыделятьОтрицательные = Истина;
Поле.Ширина = 18;
Поле.ЦветТекста = Новый Цвет(25, 45, 70);
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить учебную цену";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Если ЗначениеПримера < 0 Или ЗначениеПримера > 9999.99 Тогда
Сообщить("Цена должна быть от 0 до 9999.99. Обработка не выполнена.");
Возврат;
КонецЕсли;
Сообщить("Допустимая учебная цена: " + Формат(ЗначениеПримера, "ЧДЦ=2; ЧН=0"));
Сообщить("Цена никуда не записана");
КонецПроцедуры
Разбор по шагам
Реквизит с числовыми квалификаторами хранит значение с двумя дробными разрядами. Поле — только интерфейс для этого реквизита.
МинимальноеЗначение и МаксимальноеЗначение ограничивают интерактивное поле. КнопкаРегулирования включает стандартные стрелки изменения числа.
Неиспользуемые кнопки выбора, создания и открытия скрываем: это простое число, не ссылка на справочник.
ФорматРедактирования задаёт вид текста, а не алгоритм расчёта НДС или суммы документа.
Команда отдельно проверяет диапазон значения до дальнейшей обработки. Серверные бизнес-операции должны повторять проверку перед записью.
Как проверить результат
Начальная цена 12.34 показана в принятом региональными настройками формате числа.
Введите 0 и 9999.99: проверка разрешает оба граничных значения.
Проверьте стрелки регулирования и попытку ручного ввода отрицательной цены/10000. Не должно быть записи рабочего документа.
Ожидаемый результат
Создано понятное поле числового ввода с диапазоном и самостоятельной проверкой значения.
На что обратить внимание
Ноль здесь разрешён: ЗначениеЗаполнено не подходит как единственная проверка цены.
Цвет выделения отрицательных не является защитой от некорректного значения.
Внешние данные могут попасть в реквизит без интерактивного поля, поэтому ограничения интерфейса не заменяют серверную проверку.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Очистить картинки поля, сохранив его значение
Пустая картинка убирает оформление поля и кнопки выбора. Учебная строка Книга остаётся неизменной.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.
Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.
В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.
Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
ТипРеквизита = Новый ОписаниеТипов("Строка");
Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
ЭтаФорма.ИзменитьРеквизиты(Новые);
ЭтаФорма.ЗначениеПримера = "Книга";
Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "ЗначениеПримера";
Поле.Заголовок = "Очистить картинки поля, сохранив его значение";
ПустаяКартинка = Новый Картинка;
Поле.Картинка = ПустаяКартинка;
Поле.КартинкаКнопкиВыбора = ПустаяКартинка;
Поле.КнопкаВыбора = Ложь;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить свой пример";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.ПолеПримера;
Сообщить(ТипЗнч(Поле.Картинка) = Тип("Картинка"));
Сообщить(ТипЗнч(Поле.КартинкаКнопкиВыбора) = Тип("Картинка"));
Сообщить(ЗначениеПримера = "Книга");
КонецПроцедуры
Разбор по шагам
Новый Картинка без параметров создаёт пустое значение; путь к файлу не используется.
Картинка относится к полю, КартинкаКнопкиВыбора — к отдельной кнопке.
Кнопка выбора выключена, потому что строка не связана с выбором рабочего объекта.
Команда проверяет тип двух свойств и сохранность собственного значения.
Очистка оформления не очищает реквизит и не удаляет изображение с диска.
Как проверить результат
До ручного изменения строки три сообщения Истина.
Нет файловых операций и внешних запросов.
Ожидаемый результат
Безопасно показана очистка оформления собственного поля.
На что обратить внимание
Тип Картинка сам по себе не доказывает наличие непустых пикселей.
Если вручную изменили Книга, сравнение сохранности исходной строки может стать Ложь.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.