Как отобразить ноль вместо пустой ячейки в табличной части 1С?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

Решение для табличной части формы и анализ структуры метаданных

Если вам необходимо, чтобы в колонке табличной части документа пользователь видел «0» вместо пустого места, выполните следующие действия:

  1. Откройте конфигуратор и перейдите к форме нужного документа.
  2. Найдите элемент управления, соответствующий колонке табличной части (подробнее в статье добавление реквизитов и элементов формы на управляемые формы).
  3. В палитре свойств элемента найдите свойство Формат.
  4. В поле Формат введите значение ЧН=0.

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

Настройка отображения в табличных документах

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

Чтобы настроить отображение нулей в табличном документе, разберем по шагам следующий алгоритм:

  1. При формировании табличного документа выделите нужные ячейки (или всю область/колонку), в которых необходимо изменить формат.
  2. Откройте свойства ячейки (палитра свойств).
  3. В поле Формат установите значение ЧН=0.
  4. Если вы формируете отчет программно, примените формат к области ячеек с помощью кода:

ОбластьЯчеек = Макет.ПолучитьОбласть("Строка");
ОбластьЯчеек.Параметры.Цена.Формат = "ЧН=0";

Проблема значений NULL в запросах

Часто программисты сталкиваются с тем, что установка формата ЧН=0 не дает результата. Это происходит, если значение в ячейке является не числовым нулем, а значением NULL (например, при использовании ЛЕВОЕ СОЕДИНЕНИЕ в запросах). Платформа 1С обрабатывает NULL иначе, чем число 0. Для отладки таких запросов есть консоль запросов и набор инструментов разработчика.

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


ВЫБРАТЬ
    Товары.Наименование,
    ЕСТЬNULL(Цены.Цена, 0) КАК Цена
ИЗ
    Справочник.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены
ПО Товары.Ссылка = Цены.Товар

Использование функции ЕСТЬNULL(Поле, 0) гарантирует, что даже при отсутствии записи в связанной таблице, в результат запроса попадет число 0, к которому корректно применится ваш формат ЧН=0.

Важные рекомендации и предостережения

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

Таким образом, использование форматной строки ЧН=0 является самым быстрым и правильным способом управления выводом нулей в интерфейсе 1С. При совместной работе с табличными документами всегда учитывайте источник данных и обрабатывайте возможные значения NULL на уровне запросов.

← На главную