При работе с Системой компоновки данных (СКД) в 1С разработчики и продвинутые пользователи часто сталкиваются с ситуацией, когда стандартный вывод группировок не отвечает требованиям заказчика. Типичный пример: в отчете по сотрудникам необходимо сгруппировать данные по полу и сразу в строке группировки показать количество человек. Вместо стандартного древовидного вывода или пустых строк мы хотим получить лаконичную строку вида: «Женский, 34» или «Мужской, 47».
В этой статье мы подробно разберем, почему возникает проблема «исчезновения» или некорректного вывода наименований группировок при попытке вывести числовые показатели, выясним внутреннюю механику работы СКД и рассмотрим несколько способов решения этой задачи как в режиме «1С:Предприятие», так и в Конфигураторе.
Для начала проанализируем ситуацию и поймем, почему простая попытка добавить поле Количество в настройки группировки Пол приводит к тому, что отчет перестает нормально выводить текстовое представление группировки.
Дело в том, что в системе компоновки данных строго разграничиваются два типа полей:
Пол, Подразделение, Должность).Количество, Сумма, Оклад).Когда вы пытаетесь добавить ресурс в список полей группировки (туда, где должно находиться только поле Пол), СКД пытается сгруппировать записи по конкретным числовым значениям этого ресурса. Это ломает логику построения дерева компоновки. Ресурс должен рассчитываться для группировки, а не быть самой группировкой.
Кроме того, в типовых конфигурациях (таких как ЗУП 3.1, БП 3.0, ERP) настройки вывода ресурсов часто переопределяются на уровне схемы или общих настроек отчета. Разработчики типовых решений часто отключают вывод общих итогов или выводят их только в подвалах таблиц. Параметр Расположение итогов на уровне всего отчета может быть принудительно установлен в значение Нет, что полностью блокирует отображение любых числовых показателей в заголовках строк, даже если вы добавите их в выбранные поля.
Если вам нужно решить задачу быстро и без внесения изменений в конфигурацию (например, непосредственно на рабочем месте пользователя в ЗУП 3.1), выполните следующие шаги. Рассмотрим этот процесс подробно.
Откройте форму изменения варианта отчета (кнопка Еще -> Прочее -> Изменить вариант...).
Убедитесь, что в иерархии структуры отчета ваша группировка содержит только поле-измерение. В списке группировок должно быть указано только поле Пол. Если там присутствует поле Количество, обязательно удалите его оттуда.
Выделите мышкой группировку Пол в верхнем окне структуры. Перейдите на вкладку Выбранные поля в нижней части формы. Снимите флаг Авто (если он установлен) и вручную добавьте туда два поля: сначала Пол, а затем ресурс Количество (или Количество сотрудников).
Не уходя с группировки Пол, перейдите на вкладку Другие настройки (в правом нижнем углу). Найдите параметр Расположение итогов. По умолчанию там может стоять значение Авто, которое наследует глобальный запрет отчета. Принудительно установите для этого параметра значение Начало (или Начало и конец).
Чтобы данные не разносились по разным колонкам, а выводились через запятую в одной ячейке (как «Женский, 34»), на вкладке Выбранные поля выполните следующую настройку:
Пол и Количество внутрь этой созданной группы.После применения этих настроек и формирования отчета СКД выведет красивую объединенную строку группировки.
Если вы разрабатываете собственный отчет или дорабатываете существующий в конфигураторе, у вас есть гораздо более гибкие и элегантные инструменты управления выводом представления группировок.
Этот способ позволяет внедрить вывод количества непосредственно в само поле группировки на уровне схемы компоновки данных. При этом нам вообще не придется переопределять настройки расположения ресурсов и использовать группировку выбранных полей.
Разберем этот метод по шагам:
Пол (или то поле, по которому строится группировка).
Представление(Пол) + ", " + Строка(ВычислитьВыражение("Сумма(Количество)", "Пол"))
Рассмотрим подробнее, как работает это выражение:
Представление(Пол) получает строковое значение (например, "Мужской" или "Женский").ВычислитьВыражение производит расчет агрегатного поля (суммы ресурса Количество) в контексте текущей группировки Пол.Если вам требуется максимально жестко задать шаблон оформления или раскрасить выводимые данные, используйте макеты оформления.
Разберем алгоритм настройки макета:
Пол) и тип макета — Заголовок.[ПолПредставление], [КоличествоСотрудников] чел.ПолПредставление свяжите с полем Пол, а КоличествоСотрудников — с ресурсом Количество.Часто вместо абсолютного количества сотрудников в группировке требуется показать их долю в процентах от общего числа (например, «Женский, 65%»). В СКД реализован мощный механизм автоматического расчета процентов, который избавляет разработчика от написания сложных формул.
Для вывода процентов выполните следующие действия:
Количество) и раскройте его структуру, нажав на значок "+".Таким образом, комбинируя стандартные возможности настройки размещения ресурсов и встроенные функции агрегации СКД, можно добиться любой необходимой детализации и представления кадровых и финансовых отчетов.