К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как изменить формат числа в 1С

Как изменить формат числа в 1С: настройка форматной строки в конфигураторе, функция Формат(), форматирование в отчетах СКД, типичные ошибки и примеры кода.

Формат числа в 1С определяет, как значение выглядит для пользователя: сколько знаков после запятой отображается, разделяются ли тысячи пробелами, как выводится ноль и отрицательные значения. При этом само хранимое значение не меняется — формат влияет только на представление. Это важно понимать, чтобы не путать «округление при показе» с реальным округлением данных.

Изменить формат числа можно несколькими способами: через свойство «Формат» в конфигураторе, программно функцией Формат(), в настройках отчета на СКД, а также в макетах печатных форм. Выбор способа зависит от того, где именно нужно поменять отображение — в форме документа, в отчете или в печатном документе.

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

Что такое форматная строка и как она устроена

Форматная строка — это набор параметров, записанных через точку с запятой, которые управляют отображением значения. Для чисел основные параметры:

  • ЧЦ — общая длина числа (количество позиций, включая разделитель дробной части);
  • ЧДЦ — количество знаков после запятой;
  • ЧРГ — символ-разделитель групп разрядов (например, пробел для отображения «1 234 567»);
  • ЧН — строка, которая выводится вместо нулевого значения;
  • ЧО — смещение разрядов (деление числа на 1000, 1000000 и т.д. при отображении);
  • ЧС — сдвиг разрядов (аналогично, но с другим поведением округления).

Пример форматной строки: ЧЦ=15; ЧДЦ=2; ЧРГ=" ". Она означает: общая длина 15 символов, два знака после запятой, группы разрядов разделяются пробелом. Число 1234567,8 будет показано как «1 234 567,80».

Важно: если фактическая длина числа превышает значение ЧЦ, 1С отобразит число полностью — ограничение не обрезает значение, а влияет в основном на выравнивание и дополнение. А вот ЧДЦ реально округляет отображаемое значение до указанного числа знаков.

Как изменить формат числа в конфигураторе

Если нужно настроить отображение числа в форме документа, справочника или в табличной части, формат задается в свойствах соответствующего элемента. Это самый простой способ, не требующий программирования.

Настройка формата в конфигураторе
  1. 1
    Откройте конфигуратор и найдите нужный объект (документ, справочник, отчет).
  2. 2
    Откройте форму объекта и выделите поле ввода или колонку таблицы, для которой меняется формат.
  3. 3
    В палитре свойств найдите свойство «Формат» и нажмите кнопку выбора.
  4. 4
    В конструкторе форматной строки задайте длину, точность и разделитель групп либо введите параметры вручную.
  5. 5
    Для реквизита объекта (а не элемента формы) аналогичное свойство «Формат» есть в палитре свойств самого реквизита.
  6. 6
    Обновите конфигурацию базы данных (F7) и проверьте отображение в режиме 1С:Предприятие.

Есть нюанс: свойство «Формат» у элемента формы имеет приоритет над форматом реквизита. Если вы задали формат и там, и там, сработает настройка элемента формы. Поэтому, когда изменение «не применяется», первым делом проверьте, не переопределен ли формат на уровне формы.

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

Как изменить формат числа программно

Когда формат нужно формировать динамически — например, подставлять число в текст письма, наименование документа или заголовок отчета — используется встроенная функция Формат(). Она принимает значение и форматную строку, а возвращает готовый текст.

Сумма = 1234567.891;

Результат = Формат(Сумма, "ЧЦ=15; ЧДЦ=2; ЧРГ=' '");

// Результат: "1 234 567,89"

БезНуля = Формат(0, "ЧН='-'");

// Результат: "-"

ВТысячах = Формат(1500000, "ЧС=3");

// Результат: "1500" (число показано в тысячах)

Обратите внимание на кавычки внутри строки: в коде на встроенном языке внутренние кавычки форматной строки удваиваются либо используются одинарные кавычки внутри двойных, как показано в примере. Ошибка в кавычках — самая частая причина, почему формат «не работает» при программной установке.

Функцию Формат() удобно применять и в запросах через представление, но чаще форматирование делается уже при выводе результата — в макете, в сообщении пользователю или в строковых реквизитах.

bsl
СуммаПрописью = Формат(ИтоговаяСумма, "ЧЦ=17; ЧДЦ=2; ЧРГ=' '; ЧН='0,00'");
Сообщить("Итого к оплате: " + СуммаПрописью + " руб.");

Как изменить формат числа в отчете на СКД

В отчетах, построенных на системе компоновки данных, формат задается в нескольких местах, и у них разный приоритет. Первое место — закладка «Наборы данных» в схеме компоновки: у каждого поля есть свойство «Оформление», где можно задать формат для поля целиком.

Второе место — вкладка «Настройки» в самой схеме или уже в режиме 1С:Предприятие в настройках отчета. Там в разделе «Условное оформление» или через параметр «Формат» у выбранных полей пользователь с правами настройки может поменять отображение без доработки конфигурации.

Практический порядок такой: откройте схему компоновки данных отчета, выберите набор данных, найдите нужное числовое поле, в колонке «Оформление» откройте настройку и укажите формат, например ЧДЦ=2; ЧРГ=' '. После этого поле будет выводиться с заданным форматом во всех вариантах отчета, если вариант не переопределяет оформление.

Если отчет типовой и изменять его в конфигураторе нельзя (конфигурация на поддержке), воспользуйтесь пользовательскими настройками: «Ещё → Изменить вариант отчета», там в оформлении полей можно задать формат и сохранить вариант. Это безопасный путь без снятия конфигурации с поддержки.

Формат числа в макетах и печатных формах

В табличных макетах печатных форм у ячейки есть свойство «Формат», которое работает аналогично: если в ячейку выводится числовой параметр, платформа отформатирует его по заданной строке. Для этого в конфигураторе откройте макет, выделите ячейку, в палитре свойств найдите «Формат» и укажите нужные параметры.

Условие: свойство работает, когда в ячейке используется заполнение «Параметр» или «Шаблон» с числовым значением. Если число подставляется в шаблон как часть текста («Сумма: [Сумма] руб.»), формат ячейки к вложенному параметру может не примениться — тогда форматируйте значение заранее функцией Формат() в коде и передавайте уже строку.

Для сумм в печатных формах принято выводить два знака после запятой и разделитель разрядов: ЧЦ=17; ЧДЦ=2; ЧРГ=' '. Для количества обычно оставляют до трех знаков: ЧЦ=15; ЧДЦ=3.

Где задавать формат

Свойство «Формат» реквизита или поля формы

Подходит для постоянного отображения в формах документов и справочников. Ограничение: переопределяется форматом элемента формы.

Функция Формат() в коде

Подходит для строк, сообщений, печатных форм с шаблонами. Ограничение: результат — строка, с ней нельзя выполнять вычисления.

Оформление поля в СКД

Подходит для отчетов, действует во всех вариантах. Ограничение: требует доступа к схеме компоновки.

Настройки варианта отчета

Подходит для типовых отчетов без доработки конфигурации. Ограничение: действует только в рамках сохраненного варианта.

Типичные ошибки и как их избежать

Первая распространенная ситуация: пользователь ждет, что после установки ЧДЦ=2 число округлится и в данных. На деле округляется только отображение — в базе и в расчетах остается полное значение. Если нужно реальное округление, используйте функцию Окр(), а не формат.

Вторая ошибка — задание формата для реквизита с типом «Строка». Форматные параметры чисел не действуют на строки, даже если в строке записано число. Сначала приведите значение к числу через Число(), а затем форматируйте.

Третья проблема — конфликт настроек. Формат может быть задан на уровне реквизита, элемента формы, условного оформления и кода одновременно. При несоответствии проверяйте по цепочке от более приоритетного к менее приоритетному: элемент формы и условное оформление обычно перекрывают настройки реквизита.

Типичные ошибки
01
Ожидание, что ЧДЦ округлит данные в базе — округляется только отображение; для данных используйте Окр().
02
Применение числового формата к строковому реквизиту — формат игнорируется, сначала преобразуйте значение в число.
03
Ошибки с кавычками в форматной строке внутри кода — внутренние кавычки нужно удваивать или использовать одинарные.
04
Изменение формата реквизита при переопределенном формате элемента формы — настройка не видна, правьте элемент формы.
05
Снятие типовой конфигурации с поддержки ради формата в отчете — сначала попробуйте настройки варианта отчета.

Как проверить результат

После настройки формата проверьте отображение на нескольких контрольных значениях: ноль, большое число с разрядами, число с длинной дробной частью и отрицательное значение. Это покроет все параметры форматной строки.

Контрольные точки

Как проверить результат

Число 1234567,891 при ЧДЦ=2 и ЧРГ с пробелом
Норма

Отображается как «1 234 567,89»

Тревожный признак

Выводится без разделителей или с большим числом знаков — формат не применился

Нулевое значение при заданном ЧН
Норма

Выводится заданная замена, например прочерк

Тревожный признак

Показывается «0» — параметр ЧН не сработал или не задан

Отрицательное число
Норма

Минус отображается корректно, разряды разделены

Тревожный признак

Минус «съедает» разряд или число выводится в скобках неожиданно

Итоги в отчете
Норма

Итоги форматируются так же, как детальные записи

Тревожный признак

Итоги выглядят иначе — у итогового поля отдельное оформление

Если формат задан, но внешний вид не меняется, обновите форму (закройте и откройте заново), а при изменениях в конфигураторе — выполните обновление конфигурации базы данных. В тонком и веб-клиенте иногда помогает перезапуск сеанса, так как настройки форм могут кэшироваться.

Удобный прием: держите под рукой «эталонную» форматную строку для денежных сумм и количества и используйте ее во всех доработках. Это избавляет от ситуации, когда в одном отчете суммы с двумя знаками, в другом — с четырьмя, а пользователи воспринимают это как расхождение данных.
ПЗ
Практическое замечание

Частые вопросы

Как убрать копейки и показывать только целые рубли?

Установите в форматной строке ЧДЦ=0, например: ЧЦ=12; ЧДЦ=0; ЧРГ=' '. Число 1234,56 отобразится как «1 235» — произойдет округление при показе. Само значение в базе останется с копейками; если нужно округлить данные, примените функцию Окр(Значение, 0).

Почему формат, заданный в конфигураторе, не виден в режиме 1С:Предприятие?

Чаще всего не выполнено обновление конфигурации базы данных (клавиша F7 в конфигураторе) либо формат переопределен на уровне элемента формы или условного оформления. Проверьте свойство «Формат» у конкретного поля ввода в форме — оно имеет приоритет над форматом реквизита.

Можно ли изменить формат числа без доступа к конфигуратору?

Да, в отчетах на СКД пользователь с правами на изменение варианта может открыть настройки отчета («Ещё → Изменить вариант»), найти нужное поле в оформлении и задать формат. В формах документов без доработки конфигурации изменить формат обычно нельзя.

Как вывести число прописью, например для суммы в договоре?

Форматная строка этого не умеет. Используйте функцию ЧислоПрописью(Значение, "Л=ru_RU", "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2") — она формирует сумму прописью с учетом валюты и падежей.

Чем ЧС отличается от ЧО в форматной строке?

Оба параметра показывают число в тысячах или миллионах, деля его при отображении. ЧС (сдвиг) просто сдвигает разряды с округлением результата, ЧО (смещение) отбрасывает дробную часть после деления. Для отчетов «в тысячах рублей» чаще применяют ЧС=3, но поведение округления стоит проверить на контрольном значении.

Меняет ли формат числа значение при выгрузке в Excel?

Зависит от способа выгрузки. При выводе в табличный документ число сохраняется как число с форматом ячейки, и в Excel оно обычно уходит числом с тем же отображением. Если значение предварительно преобразовано функцией Формат() в строку, в Excel попадет текст, с которым нельзя выполнять вычисления.

Итог

Что важно запомнить

Формат числа в 1С меняет только отображение, а не данные. Задавайте его через свойство «Формат» в конфигураторе, функцию Формат() в коде или оформление полей в СКД. Ключевые параметры — ЧЦ, ЧДЦ, ЧРГ и ЧН. Для реального округления используйте Окр(), а типовые отчеты по возможности настраивайте через варианты без изменения конфигурации.