Пустые ячейки вместо нулей в отчёте 1С: как вернуть ноль через формат и СКД
Содержание
За отображение нуля в ячейке отвечает один параметр форматной строки — ЧН (число нулевое). Если задать ЧН=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 и большинстве конфигураций на «Такси»:
- Сформируйте отчёт и нажмите
Показать настройки(илиНастройки). - Переключитесь в расширенный вид:
Еще → Прочее → Изменить вариант отчёта. - Перейдите на закладку
Условное оформлениеи добавьте новую строку. - В поле
ОформлениевыберитеФормати впишитеЧН=0. - В поле
Оформляемые поляукажите нужный ресурс — колонку с суммой или количеством. Условиеоставьте пустым, чтобы формат применялся ко всем строкам.- Нажмите
Завершить редактированиеи переформируйте отчёт.
Сохраните настройку как вариант отчёта (Варианты отчёта → Сохранить вариант), иначе после закрытия формы правка пропадёт и ноль снова станет пустым.
💡 Если нужно наоборот — спрятать нули в отчёте, где они мешают, — в том же поле Формат поставьте ЧН= без значения.
Этот способ универсален: он работает для любого типового отчёта, построенного на компоновке данных, — от карточки счёта до универсального отчёта. Карточка самого объекта (счёта, номенклатуры) формат колонок в отчёте не задаёт, поэтому искать настройку там бесполезно — только через оформление отчёта.
Вывод нуля в отчёте на СКД
Собственный отчёт на системе компоновки данных даёт больше точек, где можно задать формат числа. Их три, и работают они по приоритету.
Формат поля в наборе данных. На закладке Наборы данных в колонке Поле выделите нужное поле, откройте его свойства и в строке Формат впишите ЧН=0. Это базовый формат — он действует, пока его не переопределят в настройках.
Формат ресурса. Для вычисляемых итогов (Сумма, Количество) формат удобнее задавать на закладке Ресурсы: там же, где выражение итога, есть поле формата.
Условное оформление в настройках. На закладке Настройки → Условное оформление добавьте элемент, в Оформление выберите Формат со значением ЧН=0, в Оформляемые поля — ресурс. Этот вариант перекрывает формат набора данных, поэтому если ноль упорно не появляется, ищите переопределение именно здесь.
В макете компоновки (ручной макет СКД) формат ячейки задаётся в свойствах области и перекрывает все настройки выше. Если отчёт использует свой макет, правьте формат ячейки прямо в нём.
Приоритет форматов стоит держать в голове, когда ноль «не слушается». Сверху вниз перекрывают друг друга: макет компоновки → условное оформление в настройках → формат ресурса → формат поля набора данных. Правка на нижнем уровне не даст результата, если тот же формат переопределён выше. Поэтому, если вы выставили ЧН=0 в наборе данных, а ячейка всё равно пустая, первым делом проверьте условное оформление и макет.
Как задать формат числа в коде
Когда табличный документ заполняется из встроенного языка, формат применяют к значению функцией Формат() в момент вывода текста ячейки.
Область = Макет.ПолучитьОбласть("Строка");
Область.Параметры.Сумма = Формат(СуммаВыборки, "ЧДЦ=2; ЧН=0");
ТабДок.Вывести(Область);
Если ячейка макета имеет тип Параметр, а значение подставляется как число, форматированием управляет свойство Формат самой ячейки в конструкторе — проще выставить ЧН=0 там один раз, чем оборачивать каждое значение в Формат().
Для отрицательных и нулевых значений в одной колонке параметры комбинируются:
// ноль как "0", два знака после запятой, пробел между тысячами
ТекстСуммы = Формат(Итог, "ЧДЦ=2; ЧРГ=' '; ЧН=0");
💡 При сборке текста из числа и строки не склеивайте их напрямую. Используйте Формат() или СтрШаблон, иначе ноль может потеряться или выведется в неожиданном виде:
Сообщение = СтрШаблон("Остаток: %1 руб.", Формат(Остаток, "ЧДЦ=2; ЧН=0"));
В параметре ЧН можно указать не только 0, но и любой текст, включая несколько символов: ЧН=нет данных, ЧН=—, ЧН=0,00. Это удобно, когда по колонке надо сразу отличать «настоящий ноль» от «не считалось». Функция Строка() форматной строки не принимает — если нужен контроль над нулём, применяйте именно Формат().
Нули в печатных формах документов
В печатных формах (счёт, акт, накладная) ячейки с суммами и количеством берут формат из макета. Если в графе «Количество» или «Сумма» вместо нуля пусто, значит в ячейке макета стоит ЧН= без значения.
Для типовой печатной формы макет лежит в конфигурации на поддержке. Менять его напрямую, снимая конфигурацию с поддержки, не нужно — это осложнит обновление. Правильный приём — расширение конфигурации :
- Создайте расширение:
Конфигурация → Расширения, добавьте новое. - Добавьте в расширение нужный макет печатной формы (заимствуйте его из основной конфигурации).
- В ячейке с числом откройте свойство
Формати впишитеЧН=0. - Сохраните и обновите конфигурацию базы данных.
Расширения работают с платформы 8.3.6; обновление основной конфигурации при этом не ломается. Для собственной (не типовой) печатной формы формат ячейки правится прямо в макете обработки, снимать с поддержки ничего не нужно.
Один нюанс: если печатная форма собирается в коде и значение кладётся в ячейку как текст, формат ячейки макета уже не поможет — число нужно отформатировать функцией Формат() до вывода, как в примере выше. Свойство Формат ячейки действует только для ячеек типа Параметр, куда подставляется само число.
Прежде чем менять формат во всех печатных формах подряд, уточните, где пустая ячейка действительно мешает. В бумажном счёте нулевую графу иногда специально оставляют пустой — это оформительское решение, а не дефект.
Цвет и условное оформление нуля
Форматная строка меняет только текст (0, прочерк, пусто), но не цвет. Если ноль нужно выделить — например, показать серым или подсветить красным, — это задаётся условным оформлением.
В отчёте на СКД: Настройки → Условное оформление, добавьте элемент, в Оформление выберите Цвет текста (например, серый), а в Условие задайте правило — поле = 0. В Оформляемые поля укажите ресурс. Так нули останутся на месте, но зрительно уйдут на второй план.
Тем же способом отрицательные суммы делают красными: условие < 0, оформление Цвет текста = красный. Формат и цвет можно совмещать в одном элементе условного оформления.
💡 В табличном документе (макете) динамический цвет по значению задаётся сложнее, чем в СКД: придётся менять свойства области из кода при выводе. Если нужно и значение, и цвет нуля — проще строить отчёт на компоновке данных.
Типичные ошибки при настройке вывода нуля
ЧН; ЧГ отвечает за группировку разрядов, ЧДЦ — за знаки после запятой.Формат(Значение, "ЧН=0") или используйте СтрШаблон.Частые вопросы
Чем отличается пустая ячейка от нуля в отчёте?
ЧН= без значения. Для расчётов и выгрузки это один и тот же ноль.Как сделать так, чтобы нули выводились во всём отчёте сразу?
Формат = ЧН=0 и укажите в оформляемых полях все нужные ресурсы. Условие оставьте пустым — формат применится ко всем строкам.Можно ли вместо нуля выводить прочерк?
ЧН=— даст прочерк, ЧН=0,00 — ноль с копейками. Подставить можно любой текст.Почему формат слетает после обновления конфигурации?
Где задать формат в универсальном отчёте?
Еще → Прочее → Изменить вариант отчёта → Условное оформление. Это тот же механизм СКД, что и в собственных отчётах.