Сравнить вертикальную и автоматическую ориентацию обычной полосы

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

В высокой узкой области обычной формы переключаем явную вертикальную ориентацию и Авто. Объясняем выбор Авто по геометрии, не подменяя его управляемым перечислением.

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

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

Подготовка

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

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

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

  4. На обычной форме добавьте числовой реквизит УчебнаяСкидка, длина 3, точность 0, неотрицательный. Это собственное значение формы, не реквизит заказа.

  5. Добавьте элемент Полоса регулирования, имя УчебнаяПолоса. В свойстве Данные выберите УчебнаяСкидка. Не создавайте ПолеФормы управляемого клиента.

  6. Для уроков с горизонтальной полосой сделайте элемент шире, чем выше. Для вертикального урока — выше, чем шире. Размеры меняйте в редакторе обычной формы.

  7. Начальная скидка 10 задаётся при открытии. Исходная сумма вычисляется из собственных 3 книг по 250, расчёт выводится только в сообщения.

  8. Работа и вид в 1С не проверены. Примеры не записывают документы, справочники, файлы или настройки и не вызывают сеть.

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

Процедура ВыполнитьУчебныйШаг(Элемент) Экспорт
    Полоса = ЭтаФорма.ЭлементыФормы.УчебнаяПолоса;
    Если ТипЗнч(УчебнаяСкидка) <> Тип("Число") Тогда
        ВызватьИсключение "Учебная скидка должна быть числом";
    КонецЕсли;
    Если УчебнаяСкидка < 0 ИЛИ УчебнаяСкидка > 30 Тогда
        ВызватьИсключение "Допустима учебная скидка от 0 до 30";
    КонецЕсли;
    ИсходнаяСумма = 3 * 250;
    СуммаСкидки = Окр(ИсходнаяСумма * УчебнаяСкидка / 100, 2);
    КОплате = ИсходнаяСумма - СуммаСкидки;
    Сообщить(ИсходнаяСумма = 750);
    Сообщить(СуммаСкидки >= 0 И СуммаСкидки <= 225);
    Сообщить(КОплате >= 525 И КОплате <= 750);
    Сообщить(КОплате + СуммаСкидки = ИсходнаяСумма);
    Сообщить(СтрШаблон("Скидка: %1 процентов; сумма скидки: %2; к оплате: %3", УчебнаяСкидка, СуммаСкидки, КОплате));
    Если Полоса.Ориентация = Ориентация.Вертикально Тогда
        Полоса.Ориентация = Ориентация.Авто;
    Иначе
        Полоса.Ориентация = Ориентация.Вертикально;
    КонецЕсли;
    Сообщить(Полоса.Ориентация = Ориентация.Авто ИЛИ Полоса.Ориентация = Ориентация.Вертикально);
    Сообщить(Полоса.ОтображениеРазметки = ОтображениеРазметкиПолосыРегулирования.СверхуИлиСлева);
    Сообщить(Полоса.ШагРазметки = 5);
    Сообщить("Настройка ориентации: " + Строка(Полоса.Ориентация));
КонецПроцедуры

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

  1. В редакторе сделайте УчебнаяПолоса выше, чем шире, и оставьте учебную кнопку отдельно.

  2. Явная Вертикально не зависит от отношения сторон. Авто выбирает вертикальный вид, когда высота больше ширины.

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

  4. СверхуИлиСлева даёт левую сторону вертикальных делений. Деления на одной стороне прижимают полосу к противоположной границе.

  5. Смена ориентации не меняет диапазон скидки и исходную сумму; кнопка выполняет тот же собственный расчёт.

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

  1. Ожидаются семь Истина и строка режима: сначала Авто, затем Вертикально.

  2. В отдельной копии редактором сделайте область широкой: в режиме Авто вид должен стать горизонтальным. Проверка требует запуска толстого клиента.

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

Обычная полоса демонстрирует обе стратегии ориентации на конкретном собственном диапазоне.

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

  1. В управляемом поле используется ОриентацияЭлементаФормы; значение Ориентация.Авто туда не переносите.

  2. Обычный элемент не имеет управляемых свойств Высота, Ширина и АвтоМаксимальнаяВысота из соседнего урока.

  3. Переключение визуального направления не является изменением формулы или знака скидки.

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

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

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

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

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