Разработка и Конфигурация · 10 мин
Как убрать нули после запятой в 1С
Как убрать нули после запятой в 1С: настройка формата в печатных формах, отчётах, функция Формат() и округление. Пошаговые инструкции с примерами кода.
Числа вида «1 250,00» вместо «1 250» в печатных формах, отчётах и на формах документов — одна из самых частых причин доработок в 1С. Лишние нули после запятой появляются из-за разрядности типа «Число», заданной в конфигурации, либо из-за настроек формата ячейки макета. Сама по себе разрядность не ошибка: она нужна для точности расчётов, поэтому задача — изменить отображение, а не хранение данных.
Убрать нули можно несколькими способами: через свойство «Формат» поля в конфигураторе, через функцию Формат() во встроенном языке, через настройки условного оформления динамического списка или отчёта СКД, а также через округление значения перед выводом. Выбор зависит от того, где именно отображается число и есть ли у вас доступ к конфигуратору.
Почему в 1С отображаются нули после запятой
У реквизитов типа «Число» в конфигураторе задаются два параметра: длина и точность. Точность — это количество знаков после запятой, которые платформа хранит и по умолчанию показывает. Если у реквизита «Количество» точность равна 3, то значение 5 будет выводиться как «5,000», даже если дробная часть не нужна.
Второй источник нулей — печатные формы. В макете табличного документа у ячейки может быть задан формат с фиксированным числом десятичных знаков, и он переопределяет формат самого реквизита. Поэтому число, которое на форме выглядит как «10», в счёте на оплату превращается в «10,00».
Третья причина — отчёты на системе компоновки данных (СКД). Если для поля не задано оформление, платформа выводит значение с точностью типа данных. Итоговые суммы в валюте учёта часто имеют два знака после запятой, что и даёт «0,00» в колонках.
Как убрать нули в конфигураторе через свойство «Формат»
Самый правильный способ для форм документов и списков — задать формат отображения в свойствах поля. Откройте конфигуратор, найдите нужную форму, выделите поле ввода или колонку таблицы и откройте палитру свойств. Найдите свойство «Формат» и нажмите кнопку выбора — откроется конструктор форматной строки.
В конструкторе для типа «Число» доступны параметры: «Число десятичных знаков» (ЧДЦ), «Разделитель групп», «Сдвиг разрядов» и представление нуля. Чтобы убрать нули, установите число десятичных знаков равным 0. Если нужно оставить дробную часть только когда она есть, задайте ЧДЦ=2 и дополнительно используйте параметр отсечения незначащих нулей — это делается уже через форматную строку вручную.
Для полей, не привязанных к форме (например, колонки динамического списка), формат задаётся в свойствах самого реквизита объекта метаданных: откройте свойства реквизита и заполните поле «Формат» там же. Тогда настройка подействует во всех формах, где реквизит выводится без собственного переопределения.
- 1Откройте форму объекта в конфигураторе и выделите нужное поле
- 2В палитре свойств найдите «Формат» и откройте конструктор
- 3Установите число десятичных знаков = 0 или задайте строку вручную
- 4Сохраните конфигурацию, обновите базу и проверьте отображение на форме
Как убрать нули в печатных формах и макетах
В типовых конфигурациях печатные формы формируются программно: значения подставляются в параметры макета табличного документа. Если в ячейке макета задан формат, он применяется к выводимому значению. Откройте макет (общий макет или макет в составе объекта), выделите ячейку с параметром и проверьте свойство «Формат» в палитре свойств.
Если формат в макете не задан, число выводится в представлении по умолчанию — с точностью типа данных. В этом случае формат нужно задать либо в ячейке, либо в модуле менеджера печати при заполнении параметра. Второй вариант предпочтительнее, когда одно и то же значение должно выводиться по-разному в разных областях макета.
Обратите внимание: в типовых конфигурациях количество часто выводится через функции общих модулей (например, формирование представления количества с единицей измерения). Если нули появляются именно из-за такой функции, менять нужно её вызов или параметры, а не ячейку макета.
Функция Формат() и форматная строка во встроенном языке
Когда число выводится программно — в сообщение, надпись, текст письма или параметр макета — используется функция Формат(). Её второй параметр — форматная строка, в которой ключевые параметры для нашей задачи: ЧДЦ (число десятичных знаков) и ЧН (представление нуля).
Например, Формат(Сумма; "ЧДЦ=0") выведет «1250» вместо «1250,00», а Формат(Сумма; "ЧДЦ=0; ЧРГ=' '") добавит разделитель групп разрядов: «1 250». Если нужно показывать дробную часть только когда она ненулевая, используйте конструкцию с явным отсечением: Формат(Количество; "ЧДЦ=3; ЧН=0") всё равно покажет нули, поэтому в таких случаях значение предварительно проверяют или округляют.
// Убрать дробную часть полностью
СтрокаСуммы = Формат(Сумма; "ЧДЦ=0; ЧРГ=' '");
// Два знака, но без вывода нулевого значения
СтрокаКоличества = Формат(Количество; "ЧДЦ=2; ЧН=0");
// Дробная часть только если она есть
Если Количество = Цел(Количество) Тогда
Результат = Формат(Количество; "ЧДЦ=0");
Иначе
Результат = Формат(Количество; "ЧДЦ=3");
КонецЕсли;Помните, что Формат() возвращает строку. Если результат дальше участвует в вычислениях, преобразовывайте обратно через функцию Число() или, лучше, храните исходное числовое значение отдельно и форматируйте его только в момент вывода.
Настройка отображения в отчётах на СКД без конфигуратора
В отчётах на системе компоновки данных формат поля можно изменить прямо в пользовательском режиме, без доработки конфигурации. Откройте отчёт, перейдите в «Ещё» → «Изменить вариант» (или «Настройки» → «Расширенный»), найдите нужное поле на закладке «Поля» и откройте его оформление.
В параметрах оформления есть пункт «Формат». Установите его в «ЧДЦ=0» для целочисленного вывода. Если в вашей версии платформы поле формата недоступно в пользовательском режиме, ту же настройку может выполнить администратор в конфигураторе — в схеме компоновки данных, на закладке «Наборы данных» → «Поля», у поля есть свойство «Оформление».
Учтите, что формат в СКД влияет только на отображение в ячейках табличного документа. При выгрузке отчёта в Excel значения передаются как числа, и вид в Excel будет зависеть уже от формата ячеек электронной таблицы.
Способы убрать нули — что выбрать
Подходит для форм документов и списков. Требует доступа к конфигуратору и доработки конфигурации или расширения.
Для программного вывода: печать, сообщения, надписи. Гибко, но работает только там, где есть код.
Для отчётов. Часто доступно пользователю без конфигуратора, не затрагивает конфигурацию.
Меняет сами данные, а не вид. Оправдано только когда дробная часть не нужна по смыслу учёта.
Округление значения вместо форматирования
Иногда дробная часть не нужна не только визуально, но и по смыслу: например, штучный товар не может отпускаться долями. В этом случае применяют функцию Окр(Значение, 0) — она возвращает число, округлённое до целого по арифметическим правилам. После округления форматировать дополнительно не нужно: нули исчезают вместе с дробной частью.
Критически важно понимать разницу: формат скрывает дробную часть только на экране, а округление меняет значение. Если округлить цену перед умножением на количество, итоговая сумма документа изменится, и это может вызвать расхождения с проводками, копеечные разницы в взаиморасчётах и вопросы при сверке. Округляйте значение только там, где это предусмотрено методикой учёта.
Типичные ошибки и проверка результата
Самая распространённая ошибка — правка формата в одном месте при наличии нескольких точек вывода. Число выводится на форме документа, в списке, в печатной форме и в отчёте — и у каждого места свой источник формата. После доработки проверьте все сценарии, а не только тот, с которого начали.
Вторая ошибка — использование форматной строки с ЧДЦ=0 там, где дробная часть иногда значима. Например, количество по весовому товару будет показываться как «2» вместо «1,5», что введёт пользователя в заблуждение. Для таких случаев используйте условное форматирование: целые значения выводить без дробной части, дробные — с нужной точностью.
Как проверить результат
Число выводится без лишних нулей, дробные значения показываются корректно
Дробная часть пропала у значений, где она значима
В сформированном документе числа выглядят как настроено
В печати старый формат — значит, формат задан в макете или модуле печати
Итоги и проводки не изменились после доработки
Появились копеечные расхождения — где-то применено округление вместо формата
Частые вопросы
Можно ли убрать нули без доступа к конфигуратору?
Да, для отчётов на СКД: откройте настройки варианта отчёта, найдите поле и задайте формат в параметрах оформления. Для форм документов и печатных форм без конфигуратора или расширения изменить отображение, как правило, нельзя.
Почему после настройки формата в Excel всё равно выгружаются нули?
При выгрузке в Excel передаётся числовое значение, а не отформатированная строка. Вид числа в Excel определяется форматом ячейки электронной таблицы. Настройте формат уже в Excel или выгружайте значение как строку, если дальнейшие расчёты в таблице не нужны.
Что делать, если нули нужно убрать только у целых чисел, а дробные показывать?
Стандартная форматная строка не умеет отсекать незначащие нули автоматически. Используйте проверку в коде: если значение равно целому — форматируйте с ЧДЦ=0, иначе — с нужной точностью. Пример такого условия приведён в разделе про функцию Формат().
Влияет ли уменьшение точности реквизита на уже введённые данные?
Да. При реструктуризации базы после уменьшения точности дробная часть хранящихся значений может быть отброшена без возможности восстановления. Поэтому для изменения отображения используйте формат, а точность реквизита меняйте только осознанно и после резервного копирования.
Как убрать «,00» в сумме прописью или в тексте письма из 1С?
Текстовые представления формируются кодом, поэтому ищите место, где значение преобразуется в строку. Оберните число в Формат(Значение; "ЧДЦ=0") перед подстановкой в шаблон письма или передайте в функцию формирования суммы прописью уже округлённое значение, если копейки не требуются.
Что важно запомнить
Нули после запятой убираются форматом отображения, а не изменением данных: свойство «Формат» поля — для форм, оформление поля СКД — для отчётов, функция Формат() — для программного вывода. Округление и уменьшение точности реквизита меняют сами значения и применяются только при реальной необходимости.