Выбрать статус в обычном поле выбора

Учебные задачи

Настоящее ПолеВыбора связано со своей строкой. Из двух представлений выбирается значение draft или published.

Где и как запускать

Полный модуль собственной обычной формы внешней обработки. Только толстый клиент с обычными формами.

Подготовка

  1. Создайте отдельную внешнюю обработку с обычной формой в учебной базе. Только толстый клиент с обычными формами: не управляемая форма и не веб-клиент.

  2. Создайте реквизит УчебныйСтатус (Строка 20) и элемент ПолеСтатуса именно вида ПолеВыбора, свяжите его Данные с этим реквизитом. Добавьте самостоятельное ПолеКалендаря с именем УчебныйКалендарь и обычную кнопку УчебнаяКоманда.

  3. Свяжите ПриОткрытии формы и действие кнопки с одноимёнными процедурами из полного модуля. Каждый урок заменяет модуль только своей копии формы.

  4. Поля относятся только к этой учебной форме. Нет чтения рабочих справочников, записи документов, изменения производственного календаря или передачи данных.

Процедура ПриОткрытии()
    УчебныйСтатус = "draft";
    Поле = ЭтаФорма.ЭлементыФормы.ПолеСтатуса;
    Варианты = Новый СписокЗначений;
    Варианты.Добавить("draft", "Черновик");
    Варианты.Добавить("published", "Опубликован");
    Поле.СписокВыбора = Варианты;
    Календарь = ЭтаФорма.ЭлементыФормы.УчебныйКалендарь;
    Календарь.НачалоПериодаОтображения = Дата(2026, 10, 1);
    Календарь.КонецПериодаОтображения = Дата(2026, 10, 31);
    Календарь.ТекущаяДата = Дата(2026, 10, 4);
    Поле.КнопкаВыбора = Истина;
    Поле.КнопкаОткрытия = Ложь;
    Поле.КнопкаОчистки = Истина;
    Поле.КнопкаРегулирования = Ложь;
    Поле.ВысотаСпискаВыбора = 5;
    Поле.ШиринаСпискаВыбора = 24;
    Поле.Доступность = Истина;
    Поле.ТолькоПросмотр = Ложь;
    Поле.Подсказка = "Выберите один из двух собственных статусов";
КонецПроцедуры

Процедура УчебнаяКоманда(Кнопка)
    Поле = ЭтаФорма.ЭлементыФормы.ПолеСтатуса;
    Выбранный = Поле.СписокВыбора.НайтиПоЗначению(УчебныйСтатус);
    Если Выбранный = Неопределено Тогда
        Сообщить("Сначала выберите собственный статус Черновик или Опубликован");
        Возврат;
    КонецЕсли;
    Сообщить(СтрШаблон("Значение: %1; подпись: %2", Выбранный.Значение, Выбранный.Представление));
    Сообщить(Поле.СписокВыбора.Количество() = 2);
    Сообщить(Поле.Доступность И Не Поле.ТолькоПросмотр);
    Сообщить(Поле.КнопкаВыбора И Поле.КнопкаОчистки);
    Сообщить(Не Поле.КнопкаОткрытия И Не Поле.КнопкаРегулирования);
КонецПроцедуры

Разбор по шагам

  1. Реквизит УчебныйСтатус хранит строку, ПолеСтатуса является отдельным элементом ПолеВыбора.

  2. СписокЗначений содержит значения и представления. Черновик — подпись, draft — значение.

  3. Кнопка открытия объекта и регулирование числа выключены: для собственной строки они не требуются.

  4. Размеры выпадающего списка не являются пикселями или количеством его значений.

  5. После очистки НайтиПоЗначению может не найти пустую строку; результат проверяется до чтения его свойств.

Как проверить результат

  1. Исходно диагностика draft / Черновик и четыре сообщения Истина.

  2. После выбора Опубликован диагностика published / Опубликован.

  3. После очистки появляется просьба выбрать статус, без ошибки обращения к Неопределено.

Ожидаемый результат

Данные своего реквизита отделены от подписей и кнопок обычного поля выбора.

На что обратить внимание

  1. ПолеВыбора не равно ПолеВвода и не является расширением ПолеФормы управляемого интерфейса.

  2. Клиентский список не заменяет серверную проверку допустимых значений в рабочем сохранении.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.