При построении отчетов в Системе Компоновки Данных (СКД) в 1С мы часто сталкиваемся с необходимостью тонкой настройки их внешнего вида и структуры. Одним из типовых вопросов, возникающих у разработчиков и продвинутых пользователей, является управление отображением итоговых строк. СКД по своей природе стремится предоставить максимально полную аналитику, автоматически рассчитывая и выводя агрегированные данные (суммы, количества, средние значения и т.д.) по заданным ресурсам для каждой группировки. Именно так появляются итоговые строки, демонстрирующие общие значения для каждого уровня иерархии в отчете.
Рассмотрим конкретный случай: нам необходимо построить отчет со структурой Организация - Поставщик - Документрасчетов, где для каждого документа отображаются значения Приход, Расход и Остаток. Однако, помимо детализированных данных, отчет также выводит промежуточную итоговую строку по каждому поставщику. В этой строке поле Документрасчетов остается пустым, а поля Приход, Расход и Остаток содержат суммарные значения по всем документам данного поставщика. Если наша цель — исключить эти промежуточные итоги и оставить только детальные записи или только общие итоги по более высоким уровням, нам потребуется внести изменения в настройки СКД.
Выясним, как эффективно управлять отображением итоговых строк в отчетах СКД, чтобы они соответствовали нашим конкретным аналитическим требованиям, и уберем нежелательные итоговые строки.
Самый прямой и часто используемый метод для удаления нежелательной итоговой строки — это настройка параметров отображения итогов непосредственно для той группировки, по которой эта строка появляется. В нашем примере, описывающем отчет со структурой Организация - Поставщик - Документрасчетов, это будет группировка по Поставщику.
Разберем процесс по шагам:
Откройте конструктор настроек СКД. Мы начинаем работу с отчетом в режиме конфигуратора или через пользовательский интерфейс, если отчет предоставляет возможность изменения настроек. В любом случае, нам нужно попасть в конструктор настроек СКД, а затем перейти на вкладку Настройки. Именно здесь определяются и настраиваются все группировки, поля, отборы и другие параметры отчета.
Выберите нужную группировку. В левой части вкладки Настройки вы увидите иерархический список всех группировок, используемых в отчете. Найдите ту группировку, для которой необходимо убрать итоговую строку. В нашем случае это группировка Поставщик. Выделите ее, щелкнув по ней левой кнопкой мыши. Это действие активирует панель свойств для данной группировки.
Перейдите к свойствам группировки. После выделения группировки, справа или снизу (в зависимости от текущей компоновки конструктора СКД) появится окно или панель с ее свойствами. Среди множества параметров нам нужен раздел, который может называться Другие настройки или Прочие настройки. Важно не перепутать этот раздел с общими настройками отчета или настройками полей.
Найдите параметр "Положение общих итогов". В разделе Другие настройки внимательно просмотрите список параметров. Мы ищем параметр с названием Положение общих итогов или очень схожий по смыслу, например, Отображение итогов. Этот параметр является ключевым для управления выводом промежуточных итоговых строк для выбранной группировки.
Установите значение "Нет" (или "Не выводить"). Чтобы полностью отключить вывод итоговой строки для выбранной группировки Поставщик, мы должны выбрать значение Нет (или Не выводить) из выпадающего списка для параметра Положение общих итогов.
Рассмотрим подробнее, какие значения доступны для этого параметра и что они означают:
Авто (или Автоматически): Это значение по умолчанию. СКД самостоятельно определяет наиболее подходящее место для отображения итогов. Как правило, это приводит к выводу итоговой строки в конце каждого блока данных, соответствующего данной группировке.
Начало: При выборе этого значения итоговая строка будет отображаться перед началом блока детализированных данных по данной группировке. Например, сначала будет "Итого по Поставщику X", а затем список документов Поставщика X.
Конец: Это классическое поведение, когда итоговая строка выводится после всех детализированных записей, относящихся к данной группировке. Например, сначала список документов Поставщика Y, а затем "Итого по Поставщику Y".
Нет (или Не выводить): Это именно то значение, которое нам необходимо выбрать. При его установке итоговая строка для данной группировки будет полностью исключена из отчета. Это означает, что вы не увидите никаких агрегированных данных, связанных с этой конкретной группировкой, кроме тех, что могут быть рассчитаны для более высоких уровней или для общих итогов отчета в целом.
Примените изменения и сформируйте отчет. После выбора значения Нет, убедитесь, что изменения сохранены в настройках СКД (обычно это происходит автоматически или требуется нажать кнопку "Завершить редактирование" или "ОК"). Затем сформируйте отчет. Вы увидите, что нежелательная итоговая строка по поставщику исчезла, и отчет теперь отображает только те уровни детализации, которые вы хотели видеть.
Этот метод является наиболее целевым для удаления именно итоговых строк, которые создаются СКД по умолчанию для каждой группировки, если для нее заданы ресурсы (поля, для которых рассчитываются агрегированные значения, такие как Приход, Расход и Остаток в нашем примере).
Хотя первый метод является основным для управления итоговыми строками, иногда проблема может быть связана с тем, как СКД обрабатывает пустые значения (NULL) в полях, участвующих в группировке или являющихся деталями для нее. Если итоговая строка появляется из-за того, что в поле Документрасчетов присутствуют NULL-значения, и СКД интерпретирует их как отдельную группу, для которой затем выводит агрегированные данные, то этот подход может быть полезен. Однако, важно понимать, что этот метод изменяет логику обработки данных, а не только их визуальное представление.
Рассмотрим шаги для применения этого метода:
Откройте вкладку "Наборы данных" в конструкторе СКД. Перейдите на вкладку Наборы данных. Здесь мы определяем источник данных для отчета, обычно в виде запроса.
Найдите поле, которое может содержать NULL-значения. В списке полей набора данных найдите поле, которое, по вашему предположению, может быть причиной появления итоговой строки из-за NULL-значений. В нашем случае это поле Документрасчетов. Выделите его.
Перейдите к свойствам поля и установите флаг "Игнорировать значения NULL". На вкладке Поля (или в окне свойств выбранного поля набора данных) вы найдете параметр Роль. Среди доступных ролей есть флаг Игнорировать значения NULL.
Если мы установим этот флаг для поля Документрасчетов, СКД будет обрабатывать строки, у которых данное поле имеет значение NULL, особым образом. Что это значит на практике:
Исключение из группировки: Строки с NULL-значениями в этом поле могут быть полностью исключены из формирования детализированных групп по данному полю.
Отсутствие отдельной группы: СКД не будет создавать отдельную группу для NULL-значений, что иногда является причиной появления "пустой" итоговой строки.
Таким образом, этот флаг влияет на то, как данные с незаполненными значениями будут участвовать в агрегации и группировке. Если проблема с итоговой строкой связана именно с тем, что NULL-значения формируют нежелательную группу, то эта настройка может помочь.
Оцените применимость этого подхода. Использование флага Игнорировать значения NULL более уместно, если вы хотите, чтобы строки с пустыми значениями вообще не участвовали в формировании детализации или группировок, связанных с этим полем. Например, если Документрасчетов является необязательным полем, и записи без указания документа расчетов не должны появляться в детализации отчета. Однако, если вам нужно просто скрыть итоговую строку, не меняя логику обработки данных и не исключая строки с NULL-значениями из других расчетов, то первый способ (настройка Положения общих итогов) будет более предпочтительным и безопасным, так как он затрагивает только отображение.
Важно помнить, что эти два подхода решают несколько разные задачи. Первый метод фокусируется исключительно на визуальном представлении итоговых строк, а второй — на логике агрегации и группировки данных при наличии пустых значений. В подавляющем большинстве случаев для удаления нежелательных итоговых строк достаточно использовать настройку Положения общих итогов для соответствующей группировки.
Совместно анализируя структуру отчета и тщательно настраивая параметры СКД, мы можем добиться желаемого результата, формируя отчеты, которые точно соответствуют нашим аналитическим требованиям к представлению информации.