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