Пустые ячейки вместо нулей в отчёте 1С: как вернуть ноль через формат и СКД

· 9 мин

Содержание

За отображение нуля в ячейке отвечает один параметр форматной строки — ЧН (число нулевое). Если задать ЧН=0, ноль выводится как «0»; если в формате стоит ЧН= без значения, ячейка остаётся пустой. Поэтому «пустая вместо нуля» — это не ошибка расчёта, а настройка оформления.

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

Обратная задача — убрать нули и оставить пусто — решается тем же параметром, только наоборот: ЧН= вместо ЧН=0. Поэтому ниже всё работает в обе стороны.

За что отвечает параметр ЧН

В 1С число форматируется по строке форматирования — набору параметров через точку с запятой. Нулевое значение управляется параметром ЧН: это текст, который подставляется вместо числа, когда оно равно нулю.

  • ЧН=0 → ячейка покажет 0;
  • ЧН= (пусто) → ячейка останется пустой;
  • ЧН=— → вместо нуля выведется прочерк;
  • ЧН=0,00 → ноль с двумя знаками, если так нужно для колонки сумм.

Проверить поведение проще всего в любом месте, где доступна функция Формат():

Формат(0, "ЧН=0")   // "0"
Формат(0, "ЧН=")    // ""
Формат(0, "ЧН=—")   // "—"

💡 Если форматной строки у ячейки нет совсем, ноль выводится как «0». Пустые ячейки появляются именно потому, что в типовом отчёте или макете кто-то специально поставил ЧН= без значения, чтобы разгрузить таблицу от нулей.

Отдельно стоит различать две разные настройки, которые часто путают:

  • пустая ячейка вместо нуля — строка в отчёте есть, но в графе суммы ничего не видно. За это отвечает ЧН в формате;
  • скрытие целых нулевых строк — объект (счёт, номенклатура, контрагент) с нулевым оборотом и сальдо вообще не попадает в таблицу. Это отдельная галка в настройках отчёта, и форматная строка на неё не влияет.

Так, в оборотно-сальдовой ведомости за показ пустых строк отвечает настройка вывода нулевых показателей в отборах и группировках, а за «0» или пусто внутри графы — формат колонки. Если вам нужно, чтобы ноль был виден именно как цифра, работайте с форматом; если мешают целые пустые строки — ищите настройку группировок, а не формат.

Параметры форматной строки для числа

Кроме ЧН в форматной строке есть ещё несколько параметров. Они пригодятся, когда вы хотите не просто вернуть ноль, а привести колонку к единому виду.

ПараметрЧто задаётПример
ЧНчто выводить вместо нуляЧН=0 → «0», ЧН= → пусто
ЧДЦзнаков после запятойЧДЦ=2 → два знака
ЧЦобщее число разрядовЧЦ=15
ЧРДразделитель дробной частиЧРД=,
ЧРГразделитель групп разрядовЧРГ=' ' — пробел
ЧГгруппировка по разрядамЧГ=0 — без разделителей
ЧВНвыводить ведущие нуливместе с ЧЦ

Параметры пишутся в одну строку через точку с запятой, порядок значения не имеет:

Формат(Сумма, "ЧДЦ=2; ЧН=0; ЧРГ=' '")

Частая путаница: ЧН (отображение нуля) и ЧГ (группировка) — разные вещи. Если ноль по-прежнему не выводится, проверьте, что вы правите именно ЧН, а не соседний параметр.

Удобно собирать строку через конструктор: у свойства «Формат» есть кнопка с тремя точками, которая открывает «Конструктор форматной строки». На закладке «Число» задаются разрядность и знаки, а параметр нуля при необходимости дописывается в итоговую строку руками.

Как вернуть ноль в типовом отчёте

В типовых отчётах (оборотно-сальдовая ведомость, карточка счёта, универсальный отчёт) формат колонки задаётся через условное оформление, а не в карточке объекта.

Порядок действий в 1С:Бухгалтерии 3.0 и большинстве конфигураций на «Такси»:

  1. Сформируйте отчёт и нажмите Показать настройки (или Настройки).
  2. Переключитесь в расширенный вид: Еще → Прочее → Изменить вариант отчёта.
  3. Перейдите на закладку Условное оформление и добавьте новую строку.
  4. В поле Оформление выберите Формат и впишите ЧН=0.
  5. В поле Оформляемые поля укажите нужный ресурс — колонку с суммой или количеством.
  6. Условие оставьте пустым, чтобы формат применялся ко всем строкам.
  7. Нажмите Завершить редактирование и переформируйте отчёт.

Сохраните настройку как вариант отчёта (Варианты отчёта → Сохранить вариант), иначе после закрытия формы правка пропадёт и ноль снова станет пустым.

💡 Если нужно наоборот — спрятать нули в отчёте, где они мешают, — в том же поле Формат поставьте ЧН= без значения.

Этот способ универсален: он работает для любого типового отчёта, построенного на компоновке данных, — от карточки счёта до универсального отчёта. Карточка самого объекта (счёта, номенклатуры) формат колонок в отчёте не задаёт, поэтому искать настройку там бесполезно — только через оформление отчёта.

Вывод нуля в отчёте на СКД

Собственный отчёт на системе компоновки данных даёт больше точек, где можно задать формат числа. Их три, и работают они по приоритету.

Формат поля в наборе данных. На закладке Наборы данных в колонке Поле выделите нужное поле, откройте его свойства и в строке Формат впишите ЧН=0. Это базовый формат — он действует, пока его не переопределят в настройках.

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

Условное оформление в настройках. На закладке Настройки → Условное оформление добавьте элемент, в Оформление выберите Формат со значением ЧН=0, в Оформляемые поля — ресурс. Этот вариант перекрывает формат набора данных, поэтому если ноль упорно не появляется, ищите переопределение именно здесь.

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

Приоритет форматов стоит держать в голове, когда ноль «не слушается». Сверху вниз перекрывают друг друга: макет компоновки → условное оформление в настройках → формат ресурса → формат поля набора данных. Правка на нижнем уровне не даст результата, если тот же формат переопределён выше. Поэтому, если вы выставили ЧН=0 в наборе данных, а ячейка всё равно пустая, первым делом проверьте условное оформление и макет.

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

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

Область = Макет.ПолучитьОбласть("Строка");
Область.Параметры.Сумма = Формат(СуммаВыборки, "ЧДЦ=2; ЧН=0");
ТабДок.Вывести(Область);

Если ячейка макета имеет тип Параметр, а значение подставляется как число, форматированием управляет свойство Формат самой ячейки в конструкторе — проще выставить ЧН=0 там один раз, чем оборачивать каждое значение в Формат().

Для отрицательных и нулевых значений в одной колонке параметры комбинируются:

// ноль как "0", два знака после запятой, пробел между тысячами
ТекстСуммы = Формат(Итог, "ЧДЦ=2; ЧРГ=' '; ЧН=0");

💡 При сборке текста из числа и строки не склеивайте их напрямую. Используйте Формат() или СтрШаблон, иначе ноль может потеряться или выведется в неожиданном виде:

Сообщение = СтрШаблон("Остаток: %1 руб.", Формат(Остаток, "ЧДЦ=2; ЧН=0"));

В параметре ЧН можно указать не только 0, но и любой текст, включая несколько символов: ЧН=нет данных, ЧН=—, ЧН=0,00. Это удобно, когда по колонке надо сразу отличать «настоящий ноль» от «не считалось». Функция Строка() форматной строки не принимает — если нужен контроль над нулём, применяйте именно Формат().

Нули в печатных формах документов

В печатных формах (счёт, акт, накладная) ячейки с суммами и количеством берут формат из макета. Если в графе «Количество» или «Сумма» вместо нуля пусто, значит в ячейке макета стоит ЧН= без значения.

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

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

Расширения работают с платформы 8.3.6; обновление основной конфигурации при этом не ломается. Для собственной (не типовой) печатной формы формат ячейки правится прямо в макете обработки, снимать с поддержки ничего не нужно.

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

Прежде чем менять формат во всех печатных формах подряд, уточните, где пустая ячейка действительно мешает. В бумажном счёте нулевую графу иногда специально оставляют пустой — это оформительское решение, а не дефект.

Цвет и условное оформление нуля

Форматная строка меняет только текст (0, прочерк, пусто), но не цвет. Если ноль нужно выделить — например, показать серым или подсветить красным, — это задаётся условным оформлением.

В отчёте на СКД: Настройки → Условное оформление, добавьте элемент, в Оформление выберите Цвет текста (например, серый), а в Условие задайте правило — поле = 0. В Оформляемые поля укажите ресурс. Так нули останутся на месте, но зрительно уйдут на второй план.

Тем же способом отрицательные суммы делают красными: условие < 0, оформление Цвет текста = красный. Формат и цвет можно совмещать в одном элементе условного оформления.

💡 В табличном документе (макете) динамический цвет по значению задаётся сложнее, чем в СКД: придётся менять свойства области из кода при выводе. Если нужно и значение, и цвет нуля — проще строить отчёт на компоновке данных.

Типичные ошибки при настройке вывода нуля

Диагностика: выберите симптом

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

Чем отличается пустая ячейка от нуля в отчёте?
Значение в обоих случаях равно нулю — отличается только отображение. Пустая ячейка означает, что в форматной строке стоит ЧН= без значения. Для расчётов и выгрузки это один и тот же ноль.
Как сделать так, чтобы нули выводились во всём отчёте сразу?
В отчёте на СКД добавьте один элемент условного оформления с Формат = ЧН=0 и укажите в оформляемых полях все нужные ресурсы. Условие оставьте пустым — формат применится ко всем строкам.
Можно ли вместо нуля выводить прочерк?
Да. В форматной строке укажите нужный символ: ЧН=— даст прочерк, ЧН=0,00 — ноль с копейками. Подставить можно любой текст.
Почему формат слетает после обновления конфигурации?
Если вы правили макет типовой печатной формы прямо в конфигурации на поддержке, обновление возвращает исходный макет. Чтобы правка пережила обновление, выносите её в расширение конфигурации.
Где задать формат в универсальном отчёте?
Через Еще → Прочее → Изменить вариант отчёта → Условное оформление. Это тот же механизм СКД, что и в собственных отчётах.