Расширение поля формы для поля полосы регулирования.Высота

Свойства · Height

Тип: Число. Содержит высоту поля полосы регулирования. Задается в строках.

Полное описание, параметры и ограничения

Расширение поля формы для поля полосы регулирования.Высота (Form field extension for a track bar field.Height)

Расширение поля формы для поля полосы регулирования (Form field extension for a track bar field)

Высота (Height)

Доступен, начиная с версии 8.2.

Использование:
Чтение и запись.
Описание:
Тип: Число.
Содержит высоту поля полосы регулирования. Задается в строках.
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
Изменение свойства на клиенте требует обращения к серверу.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

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

Тот же собственный калькулятор скидки расположен вертикально. Размер, максимумы и направления растягивания задаём при серверном создании формы.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебнаяСкидка85 с пустой управляемой основной формой. Тонкий клиент Windows.

  2. Не добавляйте реквизит УчебнаяСкидка, элемент УчебнаяПолоса и кнопку вручную: они создаются полным модулем урока.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код на уровне модуля, сохраните свою EPF и откройте её в учебной базе.

  4. Связанный реквизит — неотрицательное целое число. Полоса меняет именно УчебнаяСкидка, а не неизвестное свойство Значение элемента.

  5. Исходная сумма — собственные 3 × 250 = 750. Первое нажатие при 10% рассчитывает 75 скидки и 675 к оплате. После движения полосы снова нажимайте кнопку.

  6. Каждый урок выполняйте в отдельной копии формы. Расчёт существует только в памяти и сообщениях; рабочие документы и настройки не меняются.

  7. Запуск и отображение в 1С не проверены. Клавиатурную чувствительность, вид шкалы и размеры проверяйте в указанном клиенте вручную.

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

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Рассчитать свою скидку";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

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

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

  1. Явная Вертикально отличается от автоматического выбора по геометрии обычной формы.

  2. Отключаем автоматические максимумы, затем задаём размеры и ограничения. Высота — в строках, ширина и максимумы — в символах по справке.

  3. Разрешаем вертикальный рост, запрещаем горизонтальное растягивание. Это ограничения компоновки, не фиксированные пиксели.

  4. СнизуИлиСправа для вертикального вида относится к правой стороне. ШагРазметки 5 не меняет числовой шаг 1.

  5. Скидка и собственная арифметика сохранены. Кнопка только рассчитывает и читает настройки, не меняет размеры на клиенте.

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

  1. Ожидаются десять Истина и начальный расчёт 75 / 675.

  2. Измените высоту окна и вручную проверьте расположение, правые деления и ограничение роста в тонком клиенте.

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

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

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

  1. МаксимальнаяВысота = 0 снимает ограничение, а не сворачивает полосу.

  2. ОриентацияЭлементаФормы относится к управляемому полю; Ориентация обычного элемента — другой тип.

  3. Проверка свойств не доказывает фактический вид и расстояния в пикселях.

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

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

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

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

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