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

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Управленческий учет
← На главную

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

Разберем основную причину: настройка «Автопозиция ресурсов»

Проанализируем ситуацию, когда структура отчета настроена верно (используется «Таблица» с группировками строк и колонок), но числовые показатели упорно не желают выводиться в динамические столбцы. Одной из неочевидных, но критически важных настроек является Автопозиция ресурсов.

Эта настройка находится на закладке Настройки, далее переходим на вкладку Другие настройки. В нижней части списка параметров можно найти пункт «Автопозиция ресурсов». Выясним, на что она влияет:

  1. Не использовать: СКД будет выводить ресурсы строго в том месте, где они определены в структуре (например, в конце таблицы или в специально выделенной группировке <Ресурсы>).
  2. Использовать (или Авто): Система самостоятельно определяет наиболее подходящее место для вывода числовых показателей.

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

Проанализируем вкладку «Ресурсы» и колонку «Рассчитывать по...»

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

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

Рекомендация: Для большинства стандартных отчетов колонку Рассчитывать по... следует оставлять пустой. В этом случае СКД будет рассчитывать итоги по всем доступным измерениям, включая общие итоги и пересечения строк и столбцов в кросс-таблицах.

Настройка структуры отчета для вывода показателей в столбцы

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

  1. В окне настроек добавим элемент Таблица.
  2. В раздел Строки добавим нужную нам группировку (например, Контрагент или СтатьяЗатрат).
  3. В раздел Колонки добавим измерение, которое должно формировать столбцы (например, ПериодМесяц или Склад).
  4. Перейдем на закладку Выбранные поля всей таблицы или конкретной группировки колонок. Убедимся, что там выбраны необходимые ресурсы (поля с иконкой «сигма»).

Если мы хотим, чтобы под каждым месяцем выводилось сразу несколько показателей (например, Количество и Сумма), нам нужно убедиться, что поле <Авто> или конкретные ресурсы добавлены именно в состав выбранных полей таблицы. Тогда СКД автоматически создаст вложенную шапку для каждого значения колонки.

Расположение ресурсов: горизонтально или вертикально

Посмотрим на ситуацию, когда ресурсов много, и отчет становится слишком широким. В Других настройках варианта отчета есть параметр Расположение ресурсов. Рассмотрим его варианты:

Использование системного поля «Ресурсы» в группировке

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

Например, если вы добавите поле Ресурсы в иерархию колонок под группировку Склад, вы сможете управлять порядком вывода Суммы и Количества так же гибко, как если бы это были элементы справочника.

Проблема «ЕСТЬNULL» и пустых значений в запросе

Иногда ресурсы не отображаются в столбцах из-за особенностей выполнения соединения таблиц в запросе. Если для определенной колонки в базе данных нет записей, СКД может вообще не создать этот столбец или вывести пустую область. Проанализируем способ решения через агрегатные функции в ресурсах.

Вместо простого выбора поля СуммаОстаток, на закладке «Ресурсы» в выражении можно использовать конструкцию, гарантирующую наличие значения:

Сумма(ЕСТЬNULL(СуммаОстаток, 0))

Это принудительно заставит систему выводить 0 там, где данных нет, что часто помогает «проявить» структуру колонок, которая иначе схлопывается.

Очистка кэша и работа с формами

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

Проверим следующие моменты:

Таким образом, для вывода ресурсов в столбцы необходимо обеспечить три условия: наличие Таблицы в структуре, отсутствие ограничений в колонке Рассчитывать по на вкладке ресурсов и корректное состояние параметра Автопозиция ресурсов в дополнительных настройках варианта.

← На главную