Как объединить количество и сумму под общими шапками в отчете СКД 1С?

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

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

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

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

---

Метод 1. Ручное объединение ресурсов в группы в «Выбранных полях»

Этот способ является самым популярным и наглядным. Он настраивается непосредственно в схеме компоновки данных на вкладке «Настройки». Разберем этот процесс по шагам.

  1. Откроем схему компоновки данных (СКД) нашего отчета и перейдем на вкладку Настройки.
  2. В нижней части окна выберем вкладку Выбранные поля. Здесь находится список полей, которые выводятся в отчет.
  3. Для того чтобы объединить поля, нам потребуется создать специальный элемент — группу. Нажмем правой кнопкой мыши на пустом месте в списке выбранных полей или воспользуемся кнопкой «Добавить» на панели инструментов и выберем пункт Новая группа... (в некоторых версиях интерфейса — «Добавить группу выбранных полей»).
  4. В открывшемся окне настройки группы обязательно заполним поле Заголовок. Например, введем Начальный остаток. Важный нюанс: если оставить поле заголовка пустым, система не сможет корректно сформировать общую шапку, и поля внутри группы выведутся стандартным списком.
  5. Обратим внимание на свойство группы Расположение. По умолчанию там установлено значение «Авто». Нам необходимо явно указать способ вывода подчиненных полей. Рассмотрим подробнее доступные варианты:
    • Горизонтально — именно этот вариант нам нужен. Поля внутри группы будут выводиться в отдельных колонках бок о бок под общим заголовком группы.
    • Вертикально — поля будут выводиться друг под другом в рамках одной колонки. Это отличное решение для экономии места по ширине экрана, когда, например, числовое значение количества выводится сверху, а сумма — прямо под ним в той же ячейке.
    • Вместе — значения полей склеиваются в одну строку через запятую или другой разделитель в пределах одной ячейки.
  6. После создания группы перетащим мышкой внутрь нее соответствующие ресурсы (например, КоличествоНачальныйОстаток и СуммаНачальныйОстаток).
  7. Повторим аналогичные действия для остальных логических блоков: создадим группу Приход (туда перенесем количество и сумму прихода), группу Расход (количество и сумма расхода) и группу Конечный остаток.

Проанализировав настройки, запустим отчет в режиме «1С:Предприятие». Мы увидим красивую двухуровневую шапку, где над колонками количества и суммы красуются общие объединяющие заголовки.

---

Метод 2. Автоматическая группировка через точки в «Пути данных»

Существует более изящный способ настройки двухуровневой структуры без необходимости вручную перетаскивать поля и создавать группы в настройках каждого варианта отчета. Этот метод основан на использовании объектной логики путей данных в СКД.

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

Посмотрим на пример реализации этого метода по шагам:

  1. Перейдем на вкладку Набор данных нашей СКД.
  2. Допустим, в нашем запросе поля имеют стандартные названия. Нам нужно изменить значения в колонке Путь данных для соответствующих полей.
  3. Переименуем пути данных следующим образом:
    • Для начального остатка количества зададим путь: НачальныйОстаток.Количество
    • Для начального остатка суммы зададим путь: НачальныйОстаток.Сумма
    • Для прихода количества: Приход.Количество
    • Для прихода суммы: Приход.Сумма
    • Для конечного остатка количества: КонечныйОстаток.Количество
    • Для конечного остатка суммы: КонечныйОстаток.Сумма
  4. Обратите внимание, что часть наименования до точки (НачальныйОстаток, Приход) воспринимается системой как имя родительского объекта (группы), а часть после точки — как подчиненное поле.
  5. Не забудем зайти на вкладку Ресурсы и заново определить функции агрегирования (например, Сумма(НачальныйОстаток.Количество)), так как пути данных у нас изменились.
  6. Теперь перейдем в настройки отчета. В списке доступных полей мы увидим не плоский список, а аккуратные папки-группы. Достаточно просто перетащить эти папки целиком в выбранные поля, и СКД автоматически построит идеальную двухуровневую шапку без ручного создания групп в настройках компоновщика.

---

Возможные проблемы и их решение

При настройке группировки ресурсов разработчики часто сталкиваются со специфическим поведением СКД. Рассмотрим наиболее распространенные ситуации и пути их решения.

Проблема №1: Настройки групп сбрасываются на уровнях группировок (Влияние автополей)

Вы настроили красивую структуру групп на уровне всего отчета, но при формировании детальных записей по номенклатуре или складам группы пропадают, и ресурсы снова выводятся в один ряд. Почему это происходит?

Причиной является элемент Авто (Автополе) в настройках выбранных полей конкретных группировок строк. Если подчиненная группировка строк переопределяет состав выбранных полей и содержит элемент Авто, она может некорректно унаследовать сложную структуру родителя.

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

Проблема №2: Группы дублируются в кросс-таблицах

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

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

---

Улучшение визуального стиля шапки отчета

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

  1. Перейдем на вкладку Настройки, затем выберем вкладку Условное оформление.
  2. Добавим новый элемент оформления.
  3. В поле Оформление зададим желаемые параметры стиля. Например, установим цвет фона (светло-серый или корпоративный цвет компании), настроим центрирование текста по горизонтали и вертикали, а также выберем полужирное начертание шрифта для заголовков групп.
  4. В поле Условие ничего задавать не нужно, так как оформление должно применяться всегда.
  5. В поле Оформляемые поля выберем созданные нами группы по их именам (например, выберем группу Начальный остаток, Приход и т.д.).

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

← На главную