При работе с Системой компоновки данных (СКД) программисты часто сталкиваются с ситуацией, когда в готовом отчете появляются «лишние» элементы. Чаще всего это дублирующиеся общие итоги: они выводятся и в начале таблицы (сразу после отборов), и в самом конце. Это не только загромождает визуальное пространство, но и путает пользователя. Разберем по шагам, почему так происходит и как привести внешний вид отчета в порядок.
Рассмотрим наиболее частую причину появления лишних строк с итогами — наличие «пустых» группировок в структуре отчета. Перейдем на вкладку Настройки в схеме компоновки данных и проанализируем дерево группировок. Если вы видите в списке элемент без указания поля группировки (пустая строка), знайте: СКД интерпретирует это как команду «вывести итоги по всему отчету».
Выясним, как это работает: если такая группировка стоит самой первой в списке, а внутри неё вложены остальные детальные записи или другие группировки, система сначала выведет строку с суммами по всем ресурсам для этой «пустой» группы, а затем начнет выводить таблицу. Если при этом в Других настройках включен стандартный вывод общих итогов, вы получите дублирование.
Чтобы исправить это, попробуем выполнить следующие действия:
Если со структурой группировок всё в порядке, но итоги всё равно двоятся, обратимся к Другим настройкам (вкладка в нижней части конструктора СКД). Найдем параметр Расположение общих итогов. Рассмотрим подробнее значения, которые он может принимать:
Для большинства классических бухгалтерских или управленческих отчетов оптимальным значением будет Конец. Это позволит пользователю сначала просмотреть детальную информацию, а в конце увидеть итоговый результат.
Помимо общих итогов всего отчета, существуют итоги конкретных уровней группировки. Параметр Расположение итогов в тех же Других настройках позволяет управлять ими. Если вы заметили, что итоги «разрывают» таблицу или выводятся слишком часто, попробуйте изменить этот параметр на значение Конец или Заголовок. Это сделает отчет более компактным.
Иногда требуется программно управлять этими настройками, например, при формировании отчета из кода. Посмотрим на пример того, как можно изменить расположение итогов в коде модуля:
// Получаем настройки компоновщика
Настройки = КомпоновщикНастроек.Настройки;
// Находим параметр "Расположение общих итогов"
ПараметрИтогов = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("OverallPlacement"));
Если ПараметрИтогов <> Неопределено Тогда
// Устанавливаем вывод только в конце
ПараметрИтогов.Значение = РасположениеИтоговКомпоновкиДанных.Конец;
ПараметрИтогов.Использование = Истина;
КонецЕсли;
Часто пользователь жалуется на «лишние элементы», имея в виду не только итоги, но и массивную шапку отчета с перечислением всех фильтров. Чтобы отчет выглядел профессионально, разберем параметры вывода отборов:
В Других настройках найдем пункт Выводить отбор. По умолчанию он может стоять в значении Обычный, что создает отдельный блок между заголовком и таблицей. Если мы установим значение В заголовке отчета, информация о примененных фильтрах станет частью общего заголовка, что сэкономит место и уберет визуальный разрыв.
Аналогично можно поступить с параметрами (например, периодом отчета), установив для параметра Выводить параметры значение Не выводить, если эти данные уже выведены в заголовке макета.
Бывают случаи, когда итог по конкретному полю (например, «Цена») вообще не имеет смысла в общих итогах. Проанализируем вкладку Ресурсы. В колонке Рассчитывать по... мы можем четко указать, для каких именно группировок нужно считать итог. Если оставить это поле пустым, ресурс будет считаться для всех уровней, включая общие итоги. Чтобы убрать бессмысленные суммы из «подвала» отчета, просто выберите в этой колонке только те группировки, где расчет действительно необходим.
Если стандартные механизмы не позволяют добиться нужного результата (например, нужно скрыть итог только в определенном случае), воспользуемся Условным оформлением. Проанализируем ситуацию: нам нужно скрыть текст, если это строка итогов.
Видимость = Ложь (или Текст = пустая строка).Уровень или проверяем заполненность ключевых полей группировки.Таким образом, комбинируя правильную структуру группировок, параметры вывода и настройки ресурсов, мы можем избавиться от любых лишних элементов и сделать отчет максимально удобным для конечного пользователя.