Здравствуйте, подскажите, пожалуйста, решение проблемы. Есть Реквизит формы тип число, длина 12, точность 3. Реквизит расположен на управляемой форме в виде поля ввода. Как при отображении убрать лишние нули после запятой? Чтоб 1,000 = 1; 1,020 = 1,02?
---
Решил через динамическое изменение формата редактирования:
            Точность = Макс(СтрДлина(Макс(Количество,-Количество)%1)-2,0);
      Элементы.Количчество.ФорматРедактирования = "ЧДЦ=" + СокрЛП(Точность);
только при вводе, НачалоВыбора приходится всегда ставить точность 3 иначе не дает вводить
---
Как вариант:
Добавить реквизит формы строкового типа. Его выводить на форму в режиме только просмотр. Добавить кнопку ввода числа, по которой открывать окно ввода числа. Полученное число сохранять в реквизите числового типа и форматировать это число в реквизит строкового типа.
Предусмотреть первоначальное отображение форматированного значения для отображения в строковом типе.
---
Как вариант, использовать реквизит формы типа "Произвольный". У поля ввода отключить выбор типа.
---
Похоже никак. Форматирование доступно в печатных и отчетных формах.
---
что за клевета? Если ФорматРедактирования не поможет, то можно условным форматированием настроить формат. Разве нет?
---
Разве нет?
Нет. Форматирование возвращает строку. Поле ввода числового типа не является строкой.
---
Да, условное форматирование не влияет на числовые поля. Увы
---
Однако на это влияет свойство ФорматРедактирования. Как видите, тут число целым выглядит.
---
и как это поможет задаче?
Как при отображении убрать лишние нули после запятой? Чтоб 1,000 = 1; 1,020 = 1,02?
---
на картинке вы видете, что вместо 22.000 в поле ввода отображается 22. Что непонятного?
---
да я и обработку посмотрел. Теперь введите 22.09
Что отображается?
---
22 отображается.
---
а по условию задачи должно 22.09 отображаться. Но даже 22.09 ввести не получится в самом поле ввода с предложенным ФорматРедактирования.
---
22.09 не отобразится, там не округляется, это да. Но 22.09 ввести можно, почему нельзя? только что проверил, вводится
Но если принципиально, можете использовать формат редактирования "ЧФ=22.09" (т.е. расчитывать формат), правда, перед началом редактирования (активизацией) элемента надо этот формат убрать. Или редактирование по отдельной кнопке делать.
---
Но 22.09 ввести можно, почему нельзя?
Дословно мое сообщение: "Но даже 22.09 ввести не получится в самом поле ввода".
В самом поле ввода нельзя ввести. Через кнопку (открытие окна ввода чисел) можно, но и все равно не будет правильно отображаться. Так что не вариант.

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

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

(14) Или редактирование по отдельной кнопке делать.
И по трудозатратам будет намного сложнее, чем дополнительный строковый реквизит.
---
Непомню писанное или не писанное правило в 1с. Если число сумма, два знака после запятой, если число количество то три знака, везде так, все так привыкнуть должны были уже давно
---
в самом поле ввода ввести пожно, в чем проблема то? Вводится нормально с таким форматом редактирвоания.
---
с форматом редактирования ЧДЦ=0, не дает ввести разделитель дробной части (точка/запятая).
Даже само название ФорматРедактирования означает, что накладывается формат на само редактирование.
Можете видео сделать?
---
Я вас правильно понял, вы предлагаете через подмену реквизита на форме. В один заносить данные, а в другой присваивать данные из первого. При этом один реквизит 0,000, а другой 0,00. Правильно?
---
если вводимое число необходимо для последующих расчетов, то делать два реквизита формы. Один числового типа, второй строкового.
На форме отображать строковый тип без возможности редактирования (ТолькоДляЧтения). Рядом добавить кнопку, по которой открывать ВводЧисла. После ввода числа, сохранять его в оба реквизита.
---
Я конечно понимаю, что идея хорошая, но почему бы пользователям просто не объяснить, что есть какой-то инструмент, который не обязательно дорабатывать до неуемных желаний пользователя. Очень громоздко получается и необходимости глобальной я не вижу. Думаю и создатели многих языков программирования не вдуплили бы в подобные изыски.
---
Необходимость подобной работы 1С не очевидна. Мне кажется надо решать через переговоры с заказчиком.
---
Решил через динамическое изменение формата редактирования:
            Точность = Макс(СтрДлина(Макс(Количество,-Количество)%1)-2,0);
      Элементы.Количчество.ФорматРедактирования = "ЧДЦ=" + СокрЛП(Точность);
только при вводе, НачалоВыбора приходится всегда ставить точность 3 иначе не дает вводить
---
Всё-таки можно было сделать проще. Пример в прикреплении.