Как вывести ресурсы вертикально в Системе компоновки данных (СКД)

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

При разработке отчетов в 1С на базе Системы компоновки данных (СКД) часто возникает необходимость изменить стандартное горизонтальное отображение ресурсов. По умолчанию ресурсы (например, Количество и Сумма) выводятся в колонках бок о бок. Однако для экономии места или соответствия печатной форме заказчика может потребоваться их вертикальный вывод — когда показатели располагаются друг под другом в рамках одной строки группировки или одной колонки таблицы. Рассмотрим подробно несколько эффективных способов решения этой задачи.

Способ 1. Использование глобальной настройки «Расположение ресурсов»

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

Перейдем на закладку «Настройки» в схеме компоновки данных, а затем выберем вкладку «Дополнительные настройки». Найдем параметр Расположение ресурсов. По умолчанию там установлено значение Горизонтально. Если мы изменим его на Вертикально, система автоматически перестроит вывод всех числовых показателей отчета.

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

Способ 2. Группировка выбранных полей (локальный метод)

Часто требуется вывести вертикально только определенную группу ресурсов, сохранив остальные данные в стандартном виде. Рассмотрим, как реализовать это через механизм группировки полей. Этот метод особенно полезен, когда ресурсы находятся внутри детальных записей или в колонках кросс-таблицы.

Выполним следующие шаги:

  1. В настройках отчета (в конфигураторе или в пользовательском режиме) встанем на нужную группировку или на самый верхний элемент «Отчет».
  2. Перейдем на закладку «Выбранные поля».
  3. Выделим несколько ресурсов (например, Количество и Сумма), удерживая клавишу Ctrl.
  4. Нажмем правую кнопку мыши и выберем пункт «Сгруппировать поля» (или нажмем Ctrl+F9).
  5. В появившемся окне свойств группы найдем параметр «Расположение» и установим для него значение Вертикально.
  6. Поле «Заголовок» у группы можно оставить пустым или задать общее название для блока показателей.

Проанализируем результат: теперь выбранные ресурсы будут «схлопнуты» в одну ячейку по горизонтали и развернуты по вертикали внутри этой ячейки. Это идеальный способ для создания компактных кросс-таблиц, где в одной колонке (например, «Склад») нужно видеть сразу и остаток, и стоимость.

Способ 3. Трансформация запроса (использование искусственного измерения)

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

Рассмотрим пример кода в запросе, где мы объединяем данные для получения единого поля Показатель:


ВЫБРАТЬ
    ВТ_Данные.Номенклатура КАК Номенклатура,
    "Количество" КАК Показатели,
    ВТ_Данные.Количество КАК Значение,
    ВТ_Данные.Контрагент КАК Контрагент
ИЗ
    ВТ_Данные КАК ВТ_Данные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВТ_Данные.Номенклатура,
    "Сумма",
    ВТ_Данные.Сумма,
    ВТ_Данные.Контрагент
ИЗ
    ВТ_Данные КАК ВТ_Данные

После такой подготовки данных в СКД мы настраиваем следующие параметры:

Преимущество: ресурсы теперь ведут себя как строки. Мы можем применять к ним стандартные отборы, сортировки и условное оформление. Однако будьте осторожны с общими итогами: складывать «Количество» и «Сумму» в общем итоге по вертикали математически неверно. Для этого в настройках ресурса Значение можно прописать условие расчета или просто отключить вертикальные общие итоги.

Способ 4. Вертикальный вывод в таблицах СКД

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

Если мы хотим, чтобы ресурсы шли вертикально в строках, нам достаточно добавить автополе Ресурсы в область строк. Если же ресурсы должны быть в колонках, но вертикально — используем метод с группировкой полей из Способа 2.

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

Способ 5. Оформление и макеты

Разберем ситуацию, когда визуальное разделение вертикальных ресурсов сливается. Чтобы пользователю было удобно читать отчет, рекомендуется использовать Условное оформление.

Например, для ресурса Сумма можно задать формат ЧЦ=15; ЧДЦ=2 и выделить его цветом фона, а для ресурса Количество — оставить стандартный шрифт. Это позволит визуально отделить одну строку ресурса от другой внутри вертикального блока.

Если же требуется строгое соответствие сложной форме (например, объединение ячеек в шахматном порядке), придется воспользоваться вкладкой «Макеты». В макете группировки можно нарисовать область в формате Excel, указав точное расположение параметров Количество и Сумма друг под другом. Это наиболее трудозатратный способ, но он гарантирует стопроцентный контроль над визуализацией.

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

← На главную