При разработке интерфейсов в 1С часто возникает ситуация, когда платформа по умолчанию скрывает нулевые значения в числовых полях, отображая их как пустые ячейки — для этой задачи подойдёт конструктор интерфейсов и рабочих столов для 1С. Это может быть неудобно для визуального восприятия данных пользователем. Рассмотрим, как принудительно заставить систему выводить символ «0» в табличных частях документов и табличных документах.
Если вам необходимо, чтобы в колонке табличной части документа пользователь видел «0» вместо пустого места, выполните следующие действия:
ЧН=0.После сохранения конфигурации и перезапуска системы, платформа будет принудительно отображать ноль в тех ячейках, значение которых равно числовому нулю. Важно понимать, что параметр ЧН (Число Нуль) управляет именно визуализацией, не меняя при этом тип данных или само значение в базе данных, хотя иногда требуется программное изменение форм.
Ситуация усложняется, когда мы используем команду Вывести список или формируем печатную форму (табличный документ) — для этого подойдёт инструмент редактирования печатных форм без программирования. В этом случае глобальные настройки формы не действуют, так как табличный документ является независимым объектом отображения.
Чтобы настроить отображение нулей в табличном документе, разберем по шагам следующий алгоритм:
ЧН=0.
ОбластьЯчеек = Макет.ПолучитьОбласть("Строка");
ОбластьЯчеек.Параметры.Цена.Формат = "ЧН=0";
Часто программисты сталкиваются с тем, что установка формата ЧН=0 не дает результата. Это происходит, если значение в ячейке является не числовым нулем, а значением NULL (например, при использовании ЛЕВОЕ СОЕДИНЕНИЕ в запросах). Платформа 1С обрабатывает NULL иначе, чем число 0. Для отладки таких запросов есть консоль запросов и набор инструментов разработчика.
Чтобы избежать этой проблемы, всегда приводите данные к числовому типу непосредственно в запросе. Проанализируем пример использования функции ЕСТЬNULL:
ВЫБРАТЬ
Товары.Наименование,
ЕСТЬNULL(Цены.Цена, 0) КАК Цена
ИЗ
Справочник.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены
ПО Товары.Ссылка = Цены.Товар
Использование функции ЕСТЬNULL(Поле, 0) гарантирует, что даже при отсутствии записи в связанной таблице, в результат запроса попадет число 0, к которому корректно применится ваш формат ЧН=0.
При настройке отображения через форматную строку следует помнить о некоторых нюансах:
ЧН=0 может игнорироваться, так как поведение ввода определяется системными настройками платформы.Формат() для вывода в таблицу, если вам потребуется в дальнейшем выполнять суммирование этих ячеек. Если значение станет строкой, штатные инструменты 1С не смогут посчитать итоги по такой колонке автоматически.Таким образом, использование форматной строки ЧН=0 является самым быстрым и правильным способом управления выводом нулей в интерфейсе 1С. При совместной работе с табличными документами всегда учитывайте источник данных и обрабатывайте возможные значения NULL на уровне запросов.