Как использовать параметр «Текст» в условном оформлении СКД и корректно добавлять единицы измерения к полям

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

При разработке отчетов на базе Системы компоновки данных (СКД) программисты часто сталкиваются с необходимостью изменить визуальное отображение данных, не меняя при этом саму суть данных в запросе. Одним из инструментов для этого является Условное оформление. В этой статье мы разберем, за что отвечает параметр Текст, как с его помощью или с помощью Выражения представления добавлять суффиксы к числам (например, «шт.» или «кг»), и как избежать типичных ошибок при выводе пустых значений.

Назначение параметра «Текст» в условном оформлении

Рассмотрим ситуацию: в настройках СКД на закладке «Условное оформление» есть колонка Текст. Давайте выясним, какова её роль. Этот параметр представляет собой статическое замещение значения в ячейке. Если в условии оформления мы указываем определенный критерий (например, Сумма > 1000), а в параметре Текст пишем строку «Превышен лимит», то при формировании отчета во всех ячейках, попадающих под условие, вместо фактической суммы будет выведено именно это текстовое сообщение.

Проанализируем важный нюанс: значение поля в самой системе при этом не меняется. Оно остается числовым или ссылочным для целей расчета итогов, но пользователю в интерфейсе отображается подменный текст. Это крайне полезно для визуализации статусов. Например, мы можем заменить числовые коды 0 и 1 на понятные человеку слова «Не оплачено» и «Оплачено» без необходимости писать сложные конструкции ВЫБОР КОГДА непосредственно в тексте запроса.

Важно помнить: Условное оформление имеет наивысший приоритет. Оно «перекрывает» и форматную строку, и выражение представления, заданные в схеме.

Добавление единиц измерения через «Выражение представления»

Часто возникает задача не просто заменить текст, а дополнить его. Например, к количеству нужно добавить « шт.». Если мы пропишем это в параметре Текст условного оформления, то во всех строках будет выводиться одинаковая надпись, что нам не подходит. В этом случае мы воспользуемся свойством поля Выражение представления.

Разберем, как это настроить. В схеме компоновки данных на закладке «Наборы данных» выберем нужное поле. В колонке Выражение представления мы можем написать код, который определит, как значение будет выглядеть в отчете. Если мы просто напишем Строка(Количество) + " шт.", то получим желаемый результат, но столкнемся с проблемой пустых ячеек.

Решение проблемы с пустыми значениями и NULL

Как отмечают разработчики, при использовании простого сложения строк даже для пустых значений будет выводиться суффикс (например, просто « шт.» без числа). Чтобы отчет выглядел профессионально и не содержал лишнего «мусора», выясним причину и применим проверку. Нам необходимо использовать конструкцию ВЫБОР.

Посмотрим на пример правильного выражения представления:


Выбор 
    Когда ЗначениеЗаполнено(Количество) 
    Тогда Строка(Количество) + " шт." 
    Иначе "" 
Конец

Использование функции ЗначениеЗаполнено() позволяет корректно обрабатывать значения NULL, 0 или пустые ссылки. Теперь, если данных в поле нет, ячейка останется действительно пустой, а не будет содержать только единицу измерения.

Альтернативный метод: Использование форматной строки

Проанализируем еще один способ добавления суффиксов, который зачастую является более предпочтительным для числовых данных — Форматная строка. В СКД у каждого поля есть свойство Оформление, где можно настроить Формат.

Разберем по шагам, почему это удобно:

  1. Откройте конструктор форматной строки для числового поля.
  2. Найдите параметр Суффикс (в строке формата он обозначается как ЧС).
  3. Введите значение, например, шт..
  4. Итоговая строка формата будет выглядеть примерно так: ЧДЦ=2; ЧС=' шт.'.

Главное преимущество этого метода в том, что поле в отчете остается числом. Если вы используете «Выражение представления», 1С преобразует данные в строку для вывода. Это может привести к тому, что в подвалах отчета перестанут считаться итоги или сортировка будет работать по алфавиту (1, 10, 2), а не по значению. Форматная строка же меняет только «маску» отображения, сохраняя математическую суть данных.

Работа со ссылочными типами данных

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

Пример кода для поля Номенклатура:

Представление(Номенклатура) + " [арт. " + Номенклатура.Артикул + "]"

Это позволяет не перегружать отчет лишними колонками, группируя связанные данные в одной ячейке. Однако помните о производительности: обращение к реквизитам через точку в выражениях представления может привести к дополнительным запросам к базе данных при формировании большого отчета.

Нюансы сортировки и группового оформления

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

Также не забывайте про Область использования в условном оформлении. Параметр Текст можно применять выборочно:

Таким образом, комбинируя использование параметра Текст в условном оформлении, Выражения представления и Форматной строки, мы можем добиться максимально гибкого и понятного отображения данных в отчетах СКД, сохраняя при этом точность расчетов и чистоту визуального представления.

← На главную