Как убрать повторяющиеся значения в группировках отчета СКД?

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

При построении отчетов в Системе Компоновки Данных (СКД) с вложенными группировками часто возникает задача сделать вывод более читаемым. Стандартная проблема — когда значение родительской группировки дублируется в каждой строке дочерней, визуально загромождая отчет. Рассмотрим на примере отчета с группировками "Начальник" и "Сотрудник", как добиться иерархического отображения данных без лишних повторов.

Проанализируем типичную ситуацию. Изначально отчет выглядит так:

Начальник         Сотрудник         Показатель
НачИванов                                    1000
НачИванов         СотрПетров        600
НачИванов         СотрСидоров      400

Наша цель — привести его к следующему виду, где имя начальника выводится только один раз для всей его группы сотрудников:

Начальник         Сотрудник         Показатель
НачИванов                                    1000
                            СотрПетров        600
                            СотрСидоров      400

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

Решение 1: Настройка расположения полей группировок (Рекомендуемый способ)

Это основной и самый правильный метод, предусмотренный разработчиками платформы именно для таких случаев. Он позволяет управлять тем, как поля родительской группировки отображаются относительно полей дочерней.

Разберем по шагам, как его применить:

  1. Откройте настройки вашего отчета на СКД.
  2. Перейдите на вкладку "Настройки", где расположено дерево структуры отчета.
  3. В дереве структуры найдите и выделите дочернюю группировку. В нашем примере это группировка "Сотрудник". Важно: настраивать нужно именно вложенную группировку, а не родительскую.
  4. В правой части окна найдите свойства для выделенной группировки. Нас интересует свойство "Расположение полей группировок".

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

Таким образом, для достижения нужного результата достаточно установить для свойства "Расположение полей группировок" у группировки "Сотрудник" значение "Отдельно". После этого отчет примет требуемый иерархический вид.

Решение 2: Использование условного оформления

Этот метод является скорее обходным путем, но может быть полезен в нестандартных ситуациях. Суть его в том, чтобы не менять структуру вывода колонок, а просто "спрятать" текст в тех ячейках, где он не нужен.

Посмотрим, как это настроить:

  1. В настройках отчета перейдите на вкладку "Условное оформление".
  2. Нажмите кнопку "Добавить", чтобы создать новое правило оформления.
  3. На вкладке "Оформление" укажите, какое изменение нужно применить. В нашем случае, установите галочку напротив параметра Текст и в качестве значения укажите пустую строку: "".
  4. Перейдите на вкладку "Условие". Здесь нужно задать, при каких обстоятельствах наше правило будет срабатывать. Можно использовать разные подходы, например, проверять уровень группировки. Это позволит скрыть поле "Начальник" на всех уровнях, кроме первого.
  5. На вкладке "Оформляемые поля" укажите, к каким полям применяется правило. Выберите поле "Начальник".

Важный нюанс: как отмечено в обсуждении на форуме, у этого метода есть недостаток. Он просто делает текст в ячейке невидимым, но не меняет структуру колонок. Если поля "Начальник" и "Сотрудник" должны были выводиться в одной колонке, то после применения этого правила вы получите пустые ячейки, а не аккуратный иерархический отступ, как в первом способе. Поэтому этот вариант стоит использовать с осторожностью.

Дополнительная проверка: детальные записи

Иногда причина дублирования может скрываться не в настройках группировок, а в настройках детальных записей. Если в структуре отчета есть группировка "Детальные записи", и для нее в выбранных полях стоит значение "Авто", система может автоматически подтягивать поля из родительских группировок.

Чтобы это проверить:

  1. В структуре отчета найдите группировку "Детальные записи".
  2. На вкладке "Выбранные поля" посмотрите, нет ли там поля "Авто".
  3. Если поле "Авто" есть, раскройте его (нажмите на "+"). Система покажет список полей, которые она выводит автоматически.
  4. Убедитесь, что в этом списке нет поля "Начальник" или уберите его вручную, заменив "Авто" на явный перечень нужных полей.

Подводя итог, для создания классического иерархического отчета без дублирования данных в СКД наиболее правильным и простым решением является использование свойства "Расположение полей группировок" со значением "Отдельно" в настройках дочерней группировки.

← На главную