Тип: Число. Минимальное значение полосы регулирования.
Полное описание, параметры и ограничения
Расширение поля формы для поля полосы регулирования.МинимальноеЗначение (Form field extension for a track bar field.MinValue)
Расширение поля формы для поля полосы регулирования (Form field extension for a track bar field)
МинимальноеЗначение (MinValue)
Доступен, начиная с версии 8.2.
Использование:
Чтение и запись.
Описание:
Тип: Число.
Минимальное значение полосы регулирования.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Разделить шаг изменения и видимые деления шкалы
Изменение идёт по единице, крупный шаг по пять, разметка по десять с обеих сторон. Расчёт использует значение реквизита, а не количество видимых делений.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебнаяСкидка85 с пустой управляемой основной формой. Тонкий клиент Windows.
Не добавляйте реквизит УчебнаяСкидка, элемент УчебнаяПолоса и кнопку вручную: они создаются полным модулем урока.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Связанный реквизит — неотрицательное целое число. Полоса меняет именно УчебнаяСкидка, а не неизвестное свойство Значение элемента.
Исходная сумма — собственные 3 × 250 = 750. Первое нажатие при 10% рассчитывает 75 скидки и 675 к оплате. После движения полосы снова нажимайте кнопку.
Каждый урок выполняйте в отдельной копии формы. Расчёт существует только в памяти и сообщениях; рабочие документы и настройки не меняются.
Запуск и отображение в 1С не проверены. Клавиатурную чувствительность, вид шкалы и размеры проверяйте в указанном клиенте вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Реквизиты = Новый Массив;
Реквизиты.Добавить(Новый РеквизитФормы("УчебнаяСкидка", Новый ОписаниеТипов("Число",
Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный))));
ЭтаФорма.ИзменитьРеквизиты(Реквизиты);
ЭтаФорма.УчебнаяСкидка = 10;
Поле = Элементы.Добавить("УчебнаяПолоса", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеПолосыРегулирования;
Поле.ПутьКДанным = "УчебнаяСкидка";
Поле.МинимальноеЗначение = 0;
Поле.МаксимальноеЗначение = 30;
Поле.Шаг = 1;
Поле.БольшойШаг = 5;
Поле.Ориентация = ОриентацияЭлементаФормы.Горизонтально;
Поле.ОтображениеРазметки = ОтображениеРазметкиПолосыРегулирования.СОбоихСторон;
Поле.ШагРазметки = 10;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Рассчитать свою скидку";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.УчебнаяПолоса;
Если ТипЗнч(УчебнаяСкидка) <> Тип("Число") Тогда
ВызватьИсключение "Учебная скидка должна быть числом";
КонецЕсли;
Если УчебнаяСкидка < 0 ИЛИ УчебнаяСкидка > 30 Тогда
ВызватьИсключение "Допустима учебная скидка от 0 до 30";
КонецЕсли;
ИсходнаяСумма = 3 * 250;
СуммаСкидки = Окр(ИсходнаяСумма * УчебнаяСкидка / 100, 2);
КОплате = ИсходнаяСумма - СуммаСкидки;
Сообщить(ИсходнаяСумма = 750);
Сообщить(СуммаСкидки >= 0 И СуммаСкидки <= 225);
Сообщить(КОплате >= 525 И КОплате <= 750);
Сообщить(КОплате + СуммаСкидки = ИсходнаяСумма);
Сообщить(СтрШаблон("Скидка: %1 процентов; сумма скидки: %2; к оплате: %3", УчебнаяСкидка, СуммаСкидки, КОплате));
Сообщить(Поле.Шаг = 1 И Поле.БольшойШаг = 5);
Сообщить(Поле.ШагРазметки = 10);
Сообщить(Поле.ОтображениеРазметки = ОтображениеРазметкиПолосыРегулирования.СОбоихСторон);
КонецПроцедуры
Разбор по шагам
Связанный реквизит и диапазон совпадают с собственным калькулятором скидки: 0…30, начальное 10.
ШагРазметки 10 настраивает внешний вид шкалы, но не запрещает значения 11 или 12.
СОбоихСторон задаёт сторону рисования делений. Это не два реквизита и не два разных диапазона.
После одного малого шага от 10 получите 11 и расчёт 82.5 скидки, 667.5 к оплате.
Точные размеры и плотность делений зависят от поля и клиента; математический расчёт от этого не меняется.
Как проверить результат
При исходном значении ожидаются семь Истина и 75 / 675. После малого шага вправо от 10 — 82.5 / 667.5.
Осмотрите деления с обеих сторон. Не утверждайте, что на коротком поле каждый тик обязательно будет различим.
Ожидаемый результат
Три разных понятия шага изучаются на одном собственном числовом расчёте.
На что обратить внимание
ШагРазметки не округляет числовой реквизит и не заменяет Шаг.
Не подставляйте отображение разметки обычного элемента вместо другого перечисления по похожему названию.
Размер выплаты вычисляет код, а не внешний вид шкалы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Выбрать скидку полосой и вычислить сумму к оплате
Полоса управляемой формы меняет своё целое число от 0 до 30. Кнопка проверяет диапазон, рассчитывает скидку и проверяет сохранение исходной суммы.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебнаяСкидка85 с пустой управляемой основной формой. Тонкий клиент Windows.
Не добавляйте реквизит УчебнаяСкидка, элемент УчебнаяПолоса и кнопку вручную: они создаются полным модулем урока.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Связанный реквизит — неотрицательное целое число. Полоса меняет именно УчебнаяСкидка, а не неизвестное свойство Значение элемента.
Исходная сумма — собственные 3 × 250 = 750. Первое нажатие при 10% рассчитывает 75 скидки и 675 к оплате. После движения полосы снова нажимайте кнопку.
Каждый урок выполняйте в отдельной копии формы. Расчёт существует только в памяти и сообщениях; рабочие документы и настройки не меняются.
Запуск и отображение в 1С не проверены. Клавиатурную чувствительность, вид шкалы и размеры проверяйте в указанном клиенте вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Реквизиты = Новый Массив;
Реквизиты.Добавить(Новый РеквизитФормы("УчебнаяСкидка", Новый ОписаниеТипов("Число",
Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный))));
ЭтаФорма.ИзменитьРеквизиты(Реквизиты);
ЭтаФорма.УчебнаяСкидка = 10;
Поле = Элементы.Добавить("УчебнаяПолоса", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеПолосыРегулирования;
Поле.ПутьКДанным = "УчебнаяСкидка";
Поле.МинимальноеЗначение = 0;
Поле.МаксимальноеЗначение = 30;
Поле.Шаг = 1;
Поле.БольшойШаг = 5;
Поле.Ориентация = ОриентацияЭлементаФормы.Горизонтально;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Рассчитать свою скидку";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.УчебнаяПолоса;
Если ТипЗнч(УчебнаяСкидка) <> Тип("Число") Тогда
ВызватьИсключение "Учебная скидка должна быть числом";
КонецЕсли;
Если УчебнаяСкидка < 0 ИЛИ УчебнаяСкидка > 30 Тогда
ВызватьИсключение "Допустима учебная скидка от 0 до 30";
КонецЕсли;
ИсходнаяСумма = 3 * 250;
СуммаСкидки = Окр(ИсходнаяСумма * УчебнаяСкидка / 100, 2);
КОплате = ИсходнаяСумма - СуммаСкидки;
Сообщить(ИсходнаяСумма = 750);
Сообщить(СуммаСкидки >= 0 И СуммаСкидки <= 225);
Сообщить(КОплате >= 525 И КОплате <= 750);
Сообщить(КОплате + СуммаСкидки = ИсходнаяСумма);
Сообщить(СтрШаблон("Скидка: %1 процентов; сумма скидки: %2; к оплате: %3", УчебнаяСкидка, СуммаСкидки, КОплате));
Сообщить(Поле.МинимальноеЗначение = 0 И Поле.МаксимальноеЗначение = 30);
Сообщить(Поле.Шаг = 1 И Поле.БольшойШаг = 5);
Сообщить(Поле.Ориентация = ОриентацияЭлементаФормы.Горизонтально);
КонецПроцедуры
Разбор по шагам
Сначала создаём числовой реквизит, затем поле правильного вида и связь ПутьКДанным.
Минимум 0 и максимум 30 задают фактические значения скидки. Движок на середине диапазона означает 15, а не автоматически 50 процентов.
Шаг 1 относится к клавишам курсора; БольшойШаг 5 — к PgUp/PgDn. Это не шаг видимой разметки.
Код перед вычислением проверяет тип и диапазон реквизита, а затем считает сумму скидки с округлением до двух знаков.
Четыре проверки контролируют исходные 750, границы скидки, границы оплаты и арифметическое равенство двух частей.
Как проверить результат
При исходных 10 ожидаются семь Истина и строка 10%, 75, 675. При 0 — 0 и 750; при 30 — 225 и 525.
Установите фокус на полосе, нажмите стрелку и PgUp. Проверяйте выбранное число после нажатия кнопки; на границе шаг ограничен диапазоном.
Ожидаемый результат
Настоящий элемент управляемой формы выбирает входное число для проверяемого собственного расчёта.
На что обратить внимание
У этого расширения нет метода ПерейтиКЗначению: такой метод относится к тестируемому элементу автоматизации.
Диапазон поля не заменяет проверку вводных данных; прямое присваивание реквизиту проверяется отдельно.
Учебный процент не является реальным правилом скидок вашей конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.