При разработке отчетов на Системе компоновки данных (СКД) часто возникает задача создать сложную структуру, где периоды (например, месяцы) располагаются в колонках, а данные сотрудников — в строках. При этом важно, чтобы внутри каждого месяца корректно отображались ресурсы, такие как «План» и «Факт», а заголовки выглядели презентабельно. В этой статье мы разберем по шагам, как правильно спроектировать такую структуру, избежать дублирования строк и настроить профессиональное оформление.
Для реализации отчета, где месяцы идут горизонтально, нам не подойдет простая линейная группировка. Нам необходимо использовать объект Таблица в настройках СКД. Рассмотрим алгоритм создания такой структуры:
Подразделение, а затем вложенную группировку Сотрудник.ПериодМесяц или аналогичное, содержащее начало месяца.Проанализируем типичную ошибку начинающих: использование «Детальных записей» в строках таблицы. Если в строках оставить Детальные записи, СКД может выводить данные по одной и той же аналитике в разные строки, если они относятся к разным периодам или имеют разные регистраторы. Чтобы данные по одному сотруднику «схлопывались» в одну строку для всех месяцев, в строках обязательно должна быть настроена группировка по полю Сотрудник.
Чтобы под каждым месяцем выводились показатели «План» и «Факт», выполним следующие действия:
Перейдем на вкладку Выбранные поля. Здесь важно понимать иерархию. Если мы добавим поля План и Факт в общие выбранные поля отчета, они будут применяться ко всей таблице. Чтобы сгруппировать их визуально, мы можем создать группу выбранных полей (нажать Shift+F9 или кнопку с плюсиком «Добавить группу»).
В настройках группы укажем тип — Группа колонок. В эту группу перетащим наши ресурсы. Теперь в шапке отчета над показателями «План» и «Факт» появится дополнительный объединяющий заголовок, если это необходимо. Если же нам нужно, чтобы эти поля просто повторялись под каждым месяцем, достаточно убедиться, что они выбраны на уровне всей таблицы или конкретной группировки колонок.
Выясним причину, почему иногда один и тот же сотрудник может отображаться в нескольких строках. Рассмотрим ситуацию: сотрудник Иванов работает на разных должностях или в разных подразделениях в течение периода. Если мы группируем только по полю Сотрудник, данные могут объединиться некорректно, либо СКД выберет первое попавшееся значение должности.
Для корректного отображения рекомендуется:
Сотрудник и Должность совместно.Период с соответствующим типом. Это критически важно для правильного сопоставления данных в кросс-таблице.Посмотрим на пример оформления заголовков. Чтобы сделать шапку жирным шрифтом, в рамке и по центру, воспользуемся Условным оформлением. Это универсальный инструмент, который позволяет гибко менять вид отчета без программирования макетов.
Разберем по шагам настройку оформления для заголовков:
Важный нюанс: Чтобы оформить именно заголовки, а не сами данные в ячейках, иногда удобнее использовать механизм Макетов. На закладке «Макеты» можно добавить «Макет заголовка группировки» и вручную задать стиль оформления ячейки в табличном документе. Это гарантирует, что оформление не «поплывет» при сложных группировках.
Часто возникает проблема, когда месяцы в колонках сортируются по алфавиту («Август», «Апрель»...), а не хронологически. Проанализируем, как это исправить. В настройках поля ПериодМесяц (на закладке «Наборы данных») найдем колонку Выражение упорядочивания. Укажем там само поле периода (дату), а в поле Выражение представления можно прописать форматную строку для красивого отображения названия месяца:
Формат(ПериодМесяц, "ДФ='ММММ гггг'")
Таким образом, СКД будет использовать дату для сортировки, но пользователь увидит понятное название «Январь 2024».
При создании кросс-таблиц часто появляются пустые ячейки (NULL), если по конкретному сотруднику в конкретном месяце не было движений. Чтобы отчет выглядел аккуратно, рекомендуется использовать функцию ЕСТЬNULL в выражениях ресурсов на закладке Ресурсы:
Сумма(ЕСТЬNULL(План, 0))
Сумма(ЕСТЬNULL(Факт, 0))
Это обеспечит вывод нулей вместо пустоты, что делает таблицу более читаемой и законченной. Также не забудьте настроить Минимальную ширину колонок в условном оформлении, чтобы колонки «План» и «Факт» имели одинаковую ширину во всех месяцах, создавая ровную сетку отчета.
Применяя эти методы — использование структуры Таблица, правильную настройку ролей периодов и группировок строк, а также тонкую настройку через Условное оформление — мы получаем профессиональный, масштабируемый и удобный для анализа отчет в 1С.