Как убрать справа нули в поле ввода числового типа
По теме из базы знаний
Найденные решения
Процедура ТестОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
Если Окр(ЭлементыФормы.Тест.Значение) = ЭлементыФормы.Тест.Значение Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=0";
ИначеЕсли Окр(ЭлементыФормы.Тест.Значение,1) = ЭлементыФормы.Тест.Значение Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=1";
ИначеЕсли Окр(ЭлементыФормы.Тест.Значение,2) = ЭлементыФормы.Тест.Значение Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=2";
КонецЕсли;
КонецПроцедуры
Процедура ТестАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
Если ЭлементыФормы.Тест.Формат <> "ЧЦ=12; ЧДЦ=3" Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=3";
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) Как вариант
СтрокаПроверки = "12000123000000";
НомерПервойЦифры = СтрДлина(СтрокаПроверки);
Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
КодСимвола = КодСимвола(Сред(СтрокаПроверки, НомерПервойЦифры, НомерПервойЦифры-1));
Если КодСимвола = 48 Тогда
СтрокаПроверки = ЛЕв(СтрокаПроверки, НомерПервойЦифры-1);
Иначе
Прервать;
КонецЕсли;
НомерПервойЦифры = НомерПервойЦифры - 1;
КонецЦикла;
Сообщить(Строкапроверки);
Показать
(19)АА, оо...уууу :) Не помню, хоть убей, есть у обычных форм условное оформление или нет. Если есть, можно попробовать через него замутить. Суть идеи в том, чтобы брать числа после запятой проверяем, умножаем на 1000, проверяем на равенство 0. Если число равно нулю. значит в условном оформлении ставим формат число 12,0. Если не равно нулю, делим на 10, проверяем, поделилось без остатка или нет, если нет, то формат ставим 12,3. Если остатка от деления нету, делим еще раз на 10, опять проверяем, есть ли остаток от деления. Если остатка нет, значит формат 12,1, если есть, формат 12,2. Ну и все это вешаем на процедуру приИзменении. Ну, я бы как-то так попробовал.
(1)
в любом случае Формат и Формат редактирования - надо убрать все флаги, тогда автоматом будет:
123,230 - 123,23
123,200 - 123,2
123,000 - 123
а если прям вот так надо длина 12 и точность 3 - то уже после ввода программно проверять корректность ;)
Поле ввода число (длина-12, точность -3)
в любом случае Формат и Формат редактирования - надо убрать все флаги, тогда автоматом будет:
123,230 - 123,23
123,200 - 123,2
123,000 - 123
а если прям вот так надо длина 12 и точность 3 - то уже после ввода программно проверять корректность ;)
Процедура ТестОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
Если Окр(ЭлементыФормы.Тест.Значение) = ЭлементыФормы.Тест.Значение Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=0";
ИначеЕсли Окр(ЭлементыФормы.Тест.Значение,1) = ЭлементыФормы.Тест.Значение Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=1";
ИначеЕсли Окр(ЭлементыФормы.Тест.Значение,2) = ЭлементыФормы.Тест.Значение Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=2";
КонецЕсли;
КонецПроцедуры
Процедура ТестАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
Если ЭлементыФормы.Тест.Формат <> "ЧЦ=12; ЧДЦ=3" Тогда
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=3";
КонецЕсли;
КонецПроцедуры
Показать
(25)Можно слегка изменить
Процедура ТестОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
Ч = 0;
Пока Окр(ЭлементыФормы.Тест.Значение, Ч) <> ЭлементыФормы.Тест.Значение Цикл
Ч = Ч + 1;
КонецЦикла;
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=" + Строка(Ч);
КонецПроцедуры
Процедура ТестОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
Ч = 0;
Пока Окр(ЭлементыФормы.Тест.Значение, Ч) <> ЭлементыФормы.Тест.Значение Цикл
Ч = Ч + 1;
КонецЦикла;
ЭлементыФормы.Тест.Формат = "ЧЦ=12; ЧДЦ=" + Строка(Ч);
КонецПроцедуры
Если Реквизит Формы, тогда можно использовать свойство "ФиксДробнаяЧасть" = Ложь.
а вот с реквизитом объекта это не работает.
Может только у меня?
а вот с реквизитом объекта это не работает.
Может только у меня?
Прикрепленные файлы:
КоличествоРазрядов.epf
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день