При работе с отчетами, построенными на Системе Компоновки Данных (СКД) в 1С, часто возникает задача изменить структуру выводимых данных: поменять группировки местами, сделать вложенную группировку основной или наоборот. Однако пользователи нередко сталкиваются с ситуацией, когда кнопки со стрелками "вверх" и "вниз" в настройках структуры отчета неактивны, что вызывает недоумение.
Давайте вместе разберемся, почему так происходит и как правильно настроить иерархию группировок в отчете.
Основная причина, по которой кнопки-стрелки могут быть неактивны, заключается в их функциональном назначении. Эти кнопки предназначены для изменения порядка следования группировок в пределах одного и того же уровня иерархии.
Проанализируем типичную ситуацию. Допустим, у вас есть отчет со следующей структурой:
В этой структуре на каждом уровне вложенности находится только по одному элементу. На первом уровне — только «Контрагент», на втором — только «Договор», на третьем — только «Ответственный». Поскольку на каждом уровне всего один элемент, менять его местами просто не с чем. Именно поэтому платформа блокирует кнопки-стрелки — их использование здесь бессмысленно.
Рассмотрим пример, когда стрелки будут активны. Представим, что на первом уровне у нас две группировки:
В этом случае, если вы выделите группировку «Контрагент» или «Ответственный», кнопки «вверх» и «вниз» станут активными. С их помощью вы сможете поменять порядок следования этих группировок, чтобы в отчете сначала выводились данные по ответственным, а потом по контрагентам, или наоборот.
Таким образом, запомним главное правило: кнопки-стрелки меняют порядок элементов на одном уровне, но не меняют их вложенность.
Итак, мы выяснили, что стрелки не подходят для нашей задачи. Как же тогда переместить группировку с одного уровня на другой, например, вынести «Ответственного» на самый верхний уровень? Для этого в СКД существует простой и интуитивно понятный механизм — перетаскивание мышью (Drag-and-Drop).
Разберем по шагам, как это сделать:
Откройте настройки отчета и перейдите на вкладку «Структура».
Найдите группировку, уровень которой вы хотите изменить. В нашем примере это «Ответственный».
Наведите на нее курсор, зажмите левую кнопку мыши и, не отпуская ее, начните перетаскивать элемент.
Переместите курсор на то место в дереве структуры, куда вы хотите вставить группировку. При перетаскивании платформа будет подсказывать с помощью визуальных маркеров (горизонтальных линий или выделения родительского элемента), куда именно будет помещена группировка:
Когда вы найдете подходящее место, отпустите левую кнопку мыши. Структура отчета немедленно изменится.
Этот способ является основным и самым правильным для управления иерархией в структуре отчета СКД.
Чтобы работа с настройками была еще эффективнее, рассмотрим несколько дополнительных моментов.
Добавление новых группировок
При добавлении новых группировок важно понимать, куда именно они будут добавлены по умолчанию:
Чтобы добавить вложенную (подчиненную) группировку, выделите родительскую группировку в дереве и нажмите кнопку «Добавить» -> «Новая группировка». Новый элемент станет дочерним для выделенного.
Чтобы добавить группировку на тот же уровень, можно сначала добавить ее как вложенную, а затем просто перетащить мышью на уровень выше, как мы рассмотрели ранее.
Сохранение настроек с помощью «Вариантов отчета»
Если вам или вашим пользователям часто требуются отчеты с разной структурой (например, сегодня — по контрагентам, а завтра — по ответственным), постоянно перестраивать ее вручную неудобно. Лучшим решением будет создание и сохранение нескольких вариантов отчета.
Вы можете настроить каждую структуру один раз и сохранить ее под понятным именем (например, «Отчет по менеджерам», «Отчет по номенклатуре и складам»). После этого переключение между разными представлениями данных будет занимать всего один клик. Пользователи могут сохранять свои личные варианты, а разработчик может создать предопределенные варианты в конфигураторе, доступные всем.
Программное управление структурой
Для разработчиков стоит упомянуть, что структурой отчета СКД можно управлять и программно. С помощью объектов 1С, таких как КомпоновщикНастроек, можно писать код, который будет динамически изменять состав и порядок группировок, отборов и полей перед формированием отчета. Это открывает возможности для создания очень гибких и адаптивных отчетов, которые подстраиваются под конкретные условия или действия пользователя.