Формат числа

1. user1284841 25.03.22 15:52 Сейчас в теме
Здравствуйте, подскажите, пожалуйста, решение проблемы. Есть Реквизит формы тип число, длина 12, точность 3. Реквизит расположен на управляемой форме в виде поля ввода. Как при отображении убрать лишние нули после запятой? Чтоб 1,000 = 1; 1,020 = 1,02?
По теме из базы знаний
Найденные решения
23. user1284841 28.03.22 12:35 Сейчас в теме
Решил через динамическое изменение формата редактирования:
Точность = Макс(СтрДлина(Макс(Количество,-Количество)%1)-2,0);
Элементы.Количчество.ФорматРедактирования = "ЧДЦ=" + СокрЛП(Точность);
только при вводе, НачалоВыбора приходится всегда ставить точность 3 иначе не дает вводить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. spacecraft 26.03.22 11:48 Сейчас в теме
(1) Как вариант:
Добавить реквизит формы строкового типа. Его выводить на форму в режиме только просмотр. Добавить кнопку ввода числа, по которой открывать окно ввода числа. Полученное число сохранять в реквизите числового типа и форматировать это число в реквизит строкового типа.
Предусмотреть первоначальное отображение форматированного значения для отображения в строковом типе.
11. SlavaKron 26.03.22 15:35 Сейчас в теме
(1) Как вариант, использовать реквизит формы типа "Произвольный". У поля ввода отключить выбор типа.
2. user_as_01 13 26.03.22 11:19 Сейчас в теме
Похоже никак. Форматирование доступно в печатных и отчетных формах.
3. fixin 4258 26.03.22 11:40 Сейчас в теме
(2) что за клевета? Если ФорматРедактирования не поможет, то можно условным форматированием настроить формат. Разве нет?
4. spacecraft 26.03.22 11:45 Сейчас в теме
(3)
Разве нет?

Нет. Форматирование возвращает строку. Поле ввода числового типа не является строкой.
6. fixin 4258 26.03.22 12:09 Сейчас в теме
(4) Да, условное форматирование не влияет на числовые поля. Увы
Прикрепленные файлы:
ТестЧисловогоПоля.epf
7. fixin 4258 26.03.22 12:11 Сейчас в теме
Однако на это влияет свойство ФорматРедактирования. Как видите, тут число целым выглядит.
Прикрепленные файлы:
ТестЧисловогоПоля.epf
8. spacecraft 26.03.22 12:16 Сейчас в теме
(7) и как это поможет задаче?
Как при отображении убрать лишние нули после запятой? Чтоб 1,000 = 1; 1,020 = 1,02?
9. fixin 4258 26.03.22 13:46 Сейчас в теме
(8) на картинке вы видете, что вместо 22.000 в поле ввода отображается 22. Что непонятного?
10. spacecraft 26.03.22 14:17 Сейчас в теме
(9) да я и обработку посмотрел. Теперь введите 22.09
Что отображается?
12. fixin 4258 26.03.22 17:17 Сейчас в теме
13. spacecraft 26.03.22 18:00 Сейчас в теме
(12) а по условию задачи должно 22.09 отображаться. Но даже 22.09 ввести не получится в самом поле ввода с предложенным ФорматРедактирования.
14. fixin 4258 27.03.22 22:38 Сейчас в теме
(13) 22.09 не отобразится, там не округляется, это да. Но 22.09 ввести можно, почему нельзя? только что проверил, вводится
Но если принципиально, можете использовать формат редактирования "ЧФ=22.09" (т.е. расчитывать формат), правда, перед началом редактирования (активизацией) элемента надо этот формат убрать. Или редактирование по отдельной кнопке делать.
15. spacecraft 28.03.22 01:10 Сейчас в теме
(14)
Но 22.09 ввести можно, почему нельзя?

Дословно мое сообщение: "Но даже 22.09 ввести не получится в самом поле ввода".
В самом поле ввода нельзя ввести. Через кнопку (открытие окна ввода чисел) можно, но и все равно не будет правильно отображаться. Так что не вариант.

Но если принципиально, можете использовать формат редактирования "ЧФ=22.09" (т.е. расчитывать формат),

Что как минимум подразумевает программный расчет формата.

правда, перед началом редактирования (активизацией) элемента надо этот формат убрать.

И какой обработчик использовать, при условии изменения числа в самом поле ввода?

(14)
Или редактирование по отдельной кнопке делать.

И по трудозатратам будет намного сложнее, чем дополнительный строковый реквизит.
16. muskul 28.03.22 02:26 Сейчас в теме
Непомню писанное или не писанное правило в 1с. Если число сумма, два знака после запятой, если число количество то три знака, везде так, все так привыкнуть должны были уже давно
17. fixin 4258 28.03.22 07:56 Сейчас в теме
(15) в самом поле ввода ввести пожно, в чем проблема то? Вводится нормально с таким форматом редактирвоания.
18. spacecraft 28.03.22 09:23 Сейчас в теме
(17) с форматом редактирования ЧДЦ=0, не дает ввести разделитель дробной части (точка/запятая).
Даже само название ФорматРедактирования означает, что накладывается формат на само редактирование.
Можете видео сделать?
19. AlexandrSmith 69 28.03.22 09:43 Сейчас в теме
(15) Я вас правильно понял, вы предлагаете через подмену реквизита на форме. В один заносить данные, а в другой присваивать данные из первого. При этом один реквизит 0,000, а другой 0,00. Правильно?
20. spacecraft 28.03.22 09:48 Сейчас в теме
(19) если вводимое число необходимо для последующих расчетов, то делать два реквизита формы. Один числового типа, второй строкового.
На форме отображать строковый тип без возможности редактирования (ТолькоДляЧтения). Рядом добавить кнопку, по которой открывать ВводЧисла. После ввода числа, сохранять его в оба реквизита.
21. AlexandrSmith 69 28.03.22 09:54 Сейчас в теме
(20) Я конечно понимаю, что идея хорошая, но почему бы пользователям просто не объяснить, что есть какой-то инструмент, который не обязательно дорабатывать до неуемных желаний пользователя. Очень громоздко получается и необходимости глобальной я не вижу. Думаю и создатели многих языков программирования не вдуплили бы в подобные изыски.
22. AlexandrSmith 69 28.03.22 09:55 Сейчас в теме
(20) Необходимость подобной работы 1С не очевидна. Мне кажется надо решать через переговоры с заказчиком.
23. user1284841 28.03.22 12:35 Сейчас в теме
Решил через динамическое изменение формата редактирования:
Точность = Макс(СтрДлина(Макс(Количество,-Количество)%1)-2,0);
Элементы.Количчество.ФорматРедактирования = "ЧДЦ=" + СокрЛП(Точность);
только при вводе, НачалоВыбора приходится всегда ставить точность 3 иначе не дает вводить
24. SlavaKron 28.03.22 13:49 Сейчас в теме
(23) Всё-таки можно было сделать проще. Пример в прикреплении.
Прикрепленные файлы:
ВнешняяОбработка1.epf
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот