Выбрать способ получения двумя переключателями

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

Оба переключателя относятся к одной группе. При выборе Самовывоз записывается 1, Доставка — 2 в свой числовой реквизит.

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

Полный модуль собственной обычной формы внешней обработки. Только толстый клиент с обычными формами; действие кнопки — экспортная процедура с первым параметром Элемент, инициировавшим Нажатие.

Подготовка

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

  2. Добавьте обычную кнопку УчебнаяКоманда. ПриОткрытии формы свяжите с одноимённой процедурой из полного модуля; Нажатие кнопки вручную не назначайте.

  3. Кнопка получает собственное Действие в коде. Каждый урок заменяет полный модуль отдельной копии формы; никаких записей документов или настроек нет.

  4. Добавьте реквизит УчебныйСпособ (Число 1.0) и два переключателя УчебныйСамовывоз, УчебнаяДоставка в ОДНОЙ группе переключателей.

  5. В редакторе первый переключатель УчебныйСамовывоз свяжите с УчебныйСпособ; второй включите в ту же группу. Тип группы — Число, не Булево.

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

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

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

  1. Два элемента должны быть одной группой в редакторе. Одинаковые надписи или соседнее расположение этого не обеспечивают.

  2. ВыбираемоеЗначение задаёт число, присваиваемое связанному с группой реквизиту при выборе.

  3. Заголовок — текст для человека, 1 и 2 — собственные значения для расчёта.

  4. Кнопка проверяет фактическое значение после ручного выбора и показывает учебный тариф. Никакого рабочего тарифа или заказа нет.

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

  1. До изменения кнопка выводит Самовывоз: учебная доставка 0 и Истина.

  2. Выберите Доставка мышью: вывод Доставка: учебная доставка 100 и Истина.

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

Группа переключателей управляет конкретным числовым выбором.

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

  1. Не создавайте две независимые булевые группы вместо одного взаимоисключающего выбора.

  2. Тип ВыбираемоеЗначение соответствует описанию типа первого переключателя в группе.

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

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

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

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

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