Как добавить символ процента к числу в табличной части на управляемой форме 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке интерфейсов на управляемых формах нередко возникает задача визуального оформления числовых данных — например, отображения показателей выполнения плана, скидок или наценок со знаком процента непосредственно в ячейках таблицы (90%, 100%). Разберем, как решить эту задачу стандартными механизмами платформы 1С:Предприятие и какие нюансы следует учитывать при настройке.

Ограничения механизма условного оформления

Первое, что часто пробуют разработчики — использовать механизм Условного оформления формы. Однако здесь существует строгое платформенное ограничение: для табличных частей, таблиц и деревьев значений условное оформление позволяет установить в свойство «Текст» либо статическую строку-константу, либо значение существующего поля без преобразований. Вычисление выражений или конкатенация строк вида СводнаяТаблица.ВыполнениеПлана + "%" в условном оформлении формы не поддерживаются.

Основное решение: использование шаблона форматирования (параметр ЧФ)

Начиная с версии платформы 1С:Предприятие 8.3.11 (при отключенном режиме совместимости с версиями 8.3.10 и ниже), в форматной строке чисел появился специальный параметр — ЧФ (шаблон форматирования). Он позволяет задавать пользовательский шаблон отображения числа с суффиксами и префиксами.

Разберем по шагам, как правильно настроить элемент формы:

  1. Откроем свойства числового поля ввода в табличной части или дереве значений на управляемой форме.
  2. Найдем свойство Формат и укажем форматную строку с параметром ЧФ. Например: ЧФ='Ч%' или для отображения с пробелом и дробной частью: ЧДЦ=2; ЧФ='Ч %'
  3. Важный нюанс при работе с нулем: параметр ЧФ по умолчанию не форматирует нулевое значение (0). Чтобы ноль также выводился со знаком процента, обязательно дополняем форматную строку параметром ЧН (представление нуля): ЧФ='Ч%'; ЧН='0%' или: ЧДЦ=2; ЧФ='Ч %'; ЧН='0 %'
  4. Разделение формата отображения и редактирования: параметр ЧФ следует прописывать только в свойстве Формат. В свойстве ФорматРедактирования указывать ЧФ нельзя, так как маска шаблона будет конфликтовать со стандартным вводом числа и вызовет ошибки валидации при редактировании ячейки пользователем.

Альтернативные способы реализации

Если конфигурация работает в режиме совместимости с версиями платформы ниже 8.3.11 или обновление платформы временно невозможно, рассмотрим другие надежные варианты решения задачи.

1. Дополнительный реквизит формы для представления

Чтобы не менять структуру метаданных конфигурации, можно добавить строковую колонку непосредственно в реквизиты формы:

  1. В структуре реквизитов формы добавляем в таблицу строковую колонку (например, ПроцентПредставление с типом Строка).
  2. При открытии формы или программном заполнении таблицы рассчитываем строковое представление:
    
    Для Каждого СтрокаТЧ Из Объект.ТабличнаяЧасть Цикл
        СтрокаТЧ.ПроцентПредставление = Формат(СтрокаТЧ.Процент, "ЧДЦ=2") + " %";
    КонецЦикла;
    
  3. В обработчике события ПриИзменении числовой колонки обновляем соответствующее строковое поле:
    
    &НаКлиенте
    Процедура ТабличнаяЧастьПроцентПриИзменении(Элемент)
        ТекущиеДанные = Элементы.ТабличнаяЧасть.ТекущиеДанные;
        Если ТекущиеДанные <> Неопределено Тогда
            ТекущиеДанные.ПроцентПредставление = Формат(ТекущиеДанные.Процент, "ЧДЦ=2") + " %";
        КонецЕсли;
    КонецПроцедуры
    

2. Горизонтальная группа колонок в таблице

Посмотрим на чисто визуальный способ компоновки элементов, не требующий написания программного кода:

  1. В дереве элементов формы внутри таблицы создаем элемент с типом Группа колонок и устанавливаем свойство Группировка в значение Горизонтальная.
  2. Помещаем внутрь группы основное числовое поле ввода процента.
  3. Рядом добавляем поле надписи (вид элемента — Поле надписи) со статическим заголовком % и минимальной шириной.

Такой подход сохраняет полноценный числовой ввод без дополнительных скриптов и строковых колонок.

3. Использование вычисляемых полей для динамических списков

Если задача стоит в контексте динамического списка (список документов, справочников или журналов), проанализируем возможности СКД. В схеме компоновки данных динамического списка можно настроить Вычисляемые поля, где прописать выражение вида:

Формат(ПроцентВыполнения, "ЧДЦ=2") + " %"

Это позволит вывести готовое строковое представление в список без изменения запроса и метаданных объекта.

← На главную