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