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