ПолосаРегулирования.ШагРазметки

Свойства · MarkingStep

Тип: Число. Содержит значение шага, с которым будет отображаться разметка полосы регулирования.

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

ПолосаРегулирования.ШагРазметки (TrackBar.MarkingStep)

ПолосаРегулирования (TrackBar)

ШагРазметки (MarkingStep)

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

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

Толстый клиент.

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

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

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

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

Разделить цвета фона, движка, рамки и делений

Оформляем собственную обычную полосу без прозрачности: фон, движок и шкала имеют разные свойства. Рамку создаём новым объектом, её свойства не меняем.

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

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

Подготовка

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

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

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

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

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

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

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

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

Процедура ПриОткрытии()
    УчебнаяСкидка = 10;
    Полоса = ЭтаФорма.ЭлементыФормы.УчебнаяПолоса;
    Полоса.МинимальноеЗначение = 0;
    Полоса.МаксимальноеЗначение = 30;
    Полоса.Шаг = 1;
    Полоса.БольшойШаг = 5;
    Полоса.Ориентация = Ориентация.Горизонтально;
    Полоса.ОтображениеРазметки = ОтображениеРазметкиПолосыРегулирования.СОбоихСторон;
    Полоса.ШагРазметки = 5;
    Полоса.ПрозрачныйФон = Ложь;
    Полоса.ЦветФона = Новый Цвет(242, 246, 250);
    Полоса.ЦветФонаКнопки = Новый Цвет(195, 220, 240);
    Полоса.ЦветТекста = Новый Цвет(25, 45, 65);
    Полоса.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Полоса.ЦветРамки = Новый Цвет(75, 105, 135);
    Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
    Кнопка.Заголовок = "Выполнить учебный шаг";
    Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебныйШаг"));
КонецПроцедуры

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

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

  1. Сначала отключаем ПрозрачныйФон, чтобы ЦветФона действительно участвовал в отображении.

  2. ЦветФона относится к общему фону, ЦветФонаКнопки — к движку и полосе. ЦветТекста оформляет разметку, не сумму в сообщении.

  3. Создаём Рамка типа Одинарная с толщиной 1. ТипРамки и Толщина самого объекта доступны только для чтения.

  4. ЦветРамки не гарантирует тот же эффект у выпуклой или вдавленной рамки; здесь такой стиль не используется.

  5. После оформления рассчитываем текущую собственную скидку и проверяем отдельные настройки.

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

  1. Ожидаются десять Истина и начальные 75 / 675. Рамка должна быть одинарной.

  2. Осмотрите четыре визуальные области в толстом клиенте. Точные оттенки и системная тема требуют ручной проверки.

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

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

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

  1. Не присваивайте Полоса.Рамка.Толщина или .ТипРамки: это readonly; заменяйте объект рамки целиком.

  2. ЦветТекста здесь рисует деления, а не символы процента отдельного поля.

  3. Суммы не изменяются от цветов: их вычисляет арифметика кнопки.

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

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

В обычной форме толстого клиента полоса связана с УчебнаяСкидка. Разбираем диапазон, клавиши и содержательную подсказку без методов управляемой формы.

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

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

Подготовка

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

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

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

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

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

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

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

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

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

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

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

  1. Редактором создаём настоящий обычный элемент и связываем его Данные с числовым реквизитом.

  2. ПриОткрытии задаёт диапазон и начальное 10. Действие учебной кнопки назначается в коде.

  3. Шаг и БольшойШаг относятся к клавишам; ШагРазметки — к отображению.

  4. Горизонтально задаём перечислением Ориентация, не ОриентацияЭлементаФормы.

  5. Подсказка объясняет собственный диапазон и клавиши. Кнопка вычисляет скидку и оплату из текущего реквизита.

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

  1. При исходных 10 ожидаются десять Истина и расчёт 75 / 675. На границах 0 и 30 — 0 / 750 и 225 / 525.

  2. Наведите мышь и осмотрите подсказку; проверьте малый и большой клавиатурные шаги.

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

Обычный элемент использован по собственному контракту, без смешения с управляемым полем.

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

  1. У обычного элемента нет свойства Значение: вход расчёта находится в связанном реквизите.

  2. Этот модуль не подходит тонкому клиенту и управляемой форме.

  3. Доступность интерфейса не задаёт реальные права на скидки в конфигурации.

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

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

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

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

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