При разработке отчетов по остаткам и оборотам в Системе компоновки данных (СКД) программисты часто сталкиваются с задачей визуальной оптимизации шапки таблицы. По умолчанию СКД выводит все выбранные поля и ресурсы последовательно в один ряд. В результате получается длинная и трудночитаемая «простыня» из колонок: Количество (начальный остаток), Сумма (начальный остаток), Количество (приход), Сумма (приход) и так далее.
Гораздо удобнее и профессиональнее выглядит двухуровневая шапка, в которой ресурсы «Количество» и «Сумма» объединены под общими заголовками верхнего уровня: Начальный остаток, Приход, Расход и Конечный остаток. В этой статье мы подробно разберем, как реализовать такую структуру шапки отчета СКД несколькими способами.
Выясним, какие инструменты предоставляет платформа 1С для решения этой задачи, детально рассмотрим ручную настройку через интерфейс компоновщика, а также изучим элегантный программно-архитектурный метод автоматической группировки.
---
Этот способ является самым популярным и наглядным. Он настраивается непосредственно в схеме компоновки данных на вкладке «Настройки». Разберем этот процесс по шагам.
Начальный остаток. Важный нюанс: если оставить поле заголовка пустым, система не сможет корректно сформировать общую шапку, и поля внутри группы выведутся стандартным списком.КоличествоНачальныйОстаток и СуммаНачальныйОстаток).Приход (туда перенесем количество и сумму прихода), группу Расход (количество и сумма расхода) и группу Конечный остаток.Проанализировав настройки, запустим отчет в режиме «1С:Предприятие». Мы увидим красивую двухуровневую шапку, где над колонками количества и суммы красуются общие объединяющие заголовки.
---
Существует более изящный способ настройки двухуровневой структуры без необходимости вручную перетаскивать поля и создавать группы в настройках каждого варианта отчета. Этот метод основан на использовании объектной логики путей данных в СКД.
Если в наборе данных (в запросе или на уровне описания полей схемы) дать ресурсам имена, содержащие точку, то система компоновки данных автоматически распознает их как иерархическую структуру и самостоятельно построит сгруппированную шапку.
Посмотрим на пример реализации этого метода по шагам:
НачальныйОстаток.КоличествоНачальныйОстаток.СуммаПриход.КоличествоПриход.СуммаКонечныйОстаток.КоличествоКонечныйОстаток.СуммаНачальныйОстаток, Приход) воспринимается системой как имя родительского объекта (группы), а часть после точки — как подчиненное поле.Сумма(НачальныйОстаток.Количество)), так как пути данных у нас изменились.---
При настройке группировки ресурсов разработчики часто сталкиваются со специфическим поведением СКД. Рассмотрим наиболее распространенные ситуации и пути их решения.
Проблема №1: Настройки групп сбрасываются на уровнях группировок (Влияние автополей)
Вы настроили красивую структуру групп на уровне всего отчета, но при формировании детальных записей по номенклатуре или складам группы пропадают, и ресурсы снова выводятся в один ряд. Почему это происходит?
Причиной является элемент Авто (Автополе) в настройках выбранных полей конкретных группировок строк. Если подчиненная группировка строк переопределяет состав выбранных полей и содержит элемент Авто, она может некорректно унаследовать сложную структуру родителя.
Решение: Чтобы группировка колонок работала стабильно на всех уровнях иерархии строк отчета, рекомендуется зайти в настройки выбранных полей конкретной группировки строк (например, по номенклатуре) и проверить наследование. Если структура ломается, отключите автополе и скопируйте настроенную структуру групп с верхнего уровня отчета в настройки этой группировки вручную.
Проблема №2: Группы дублируются в кросс-таблицах
Если ваш отчет построен в виде таблицы, где в строках выводится номенклатура, а в колонках — периоды (например, по месяцам), то добавление группы ресурсов в «Выбранные поля» всей таблицы приведет к тому, что группа «Количество + Сумма» будет дублироваться внутри каждого периода (внутри каждого месяца). Это абсолютно корректно с точки зрения логики СКД.
Однако если вам требуется вывести общие итоги по горизонтали в самом конце таблицы без этой группировки или, наоборот, строго с ней, убедитесь, что вы настроили выбранные поля как для всей таблицы, так и для отдельных группировок колонок.
---
Чтобы сделать шапку отчета еще более презентабельной, настроим визуальное оформление для созданных групп. Для этого воспользуемся механизмом условного оформления СКД.
Начальный остаток, Приход и т.д.).После применения этих настроек шапка отчета приобретет аккуратный, профессиональный и легко читаемый вид, что обязательно оценят конечные пользователи вашего отчета.