К статье
Практический материал

Отчеты и Аналитика · 12 мин

Как добавить детальные записи в отчет на СКД в 1С

Как добавить детальные записи в СКД 1С: настройка группировок, выбранных полей, ресурсов и иерархии. Пошаговая инструкция, типичные ошибки и проверка результата.

Детальные записи в системе компоновки данных (СКД) — это строки отчета без группировки: каждая строка результата запроса выводится отдельно, без свертки по какому-либо измерению. Именно они позволяют увидеть конкретные документы, номенклатуру или контрагентов «в разрезе», а не только итоговые цифры по группам. Без детальных записей отчет показывает только агрегированные данные, и пользователь не может провалиться до первичной информации.

Типичная ситуация: отчет построен с группировками «Организация» и «Месяц», показывает суммы продаж, а руководитель просит видеть под итогами список самих документов реализации. Решается это добавлением в структуру отчета элемента «Детальные записи» — либо внутри существующей группировки, либо как отдельной ветки структуры.

Ниже разобраны способы добавления детальных записей в конструкторе СКД, настройка их полей и ресурсов, влияние на производительность и типичные ошибки, из-за которых детальные строки не появляются или дублируются.

Что такое детальные записи и когда они нужны

В структуре СКД есть три базовых элемента: группировка, таблица и диаграмма. Группировка сворачивает данные по указанным полям и выводит итоги по ресурсам. Детальные записи — это вырожденный случай группировки без полей группировки: каждая строка набора данных выводится как есть. По сути, это самый нижний уровень дробления данных в отчете.

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

Важно понимать разницу между детальными записями и иерархической группировкой. Иерархия по справочнику (например, по номенклатуре с группами) все равно агрегирует данные по элементам. Детальные записи не агрегируют ничего — это просто линейный список строк набора данных, отфильтрованный условиями родительской группировки.

Добавление детальных записей в настройках СКД

Основной способ — работа на закладке «Настройки» схемы компоновки данных в конструкторе. Откройте схему компоновки (в конфигураторе: макет отчета типа «Схема компоновки данных», кнопка «Открыть схему компоновки»), перейдите на закладку «Настройки».

Порядок действий
  1. 1
    Откройте схему компоновки данных отчета и перейдите на закладку «Настройки»
  2. 2
    В дереве структуры выделите группировку, внутри которой нужны детальные строки (или корень «Отчет», если детали нужны без группировок)
  3. 3
    Нажмите кнопку добавления и выберите «Новая группировка», либо правой кнопкой — «Добавить» → «Детальные записи»
  4. 4
    В диалоге выбора поля группировки оставьте поле пустым и нажмите «ОК» — пустая группировка и есть детальные записи
  5. 5
    Выделите добавленный элемент и на закладке «Выбранные поля» отметьте поля, которые должны выводиться в детальных строках
  6. 6
    Сформируйте отчет и проверьте, что под итогами группировки появились детальные строки

Ключевой момент: «Детальные записи» — это группировка с пустым полем. Если в диалоге выбора поля вы случайно укажете какое-то поле, получится обычная группировка, и данные свернутся. Поэтому при добавлении через «Новая группировка» нажимайте «ОК» сразу, не выбирая поле.

Если детальные записи добавить в корень структуры (на один уровень с существующими группировками), отчет выведет сначала одну ветку, потом другую. Если добавить их внутрь группировки — детали будут раскрываться под каждой строкой группировки. Второй вариант чаще всего и требуется на практике.

Настройка выбранных полей и ресурсов для деталей

После добавления элемента «Детальные записи» важно правильно настроить его выбранные поля. Выделите элемент в структуре, перейдите на закладку «Выбранные поля» нижней части окна настроек и добавьте нужные поля: документ, номенклатура, количество, сумма и т.д. Поля берутся из набора данных — если поля нет в запросе или оно не помечено как доступное, в список выбора оно не попадет.

Обратите внимание на ресурсы. Если поле определено как ресурс (на закладке «Ресурсы» схемы) и для него задано выражение агрегирования, например Сумма(СуммаОборот), то в детальных записях ресурсы обычно выводятся без агрегации — как есть. Но если вы хотите видеть в деталях именно «сырые» значения, убедитесь, что в выбранные поля детальных записей добавлено само поле данных, а не только его агрегат.

Порядок колонок в детальных строках определяется порядком полей в списке выбранных полей — перетаскивайте их мышью или кнопками перемещения. Для читаемости имеет смысл ставить первыми идентифицирующие поля (дата, номер, контрагент), а числовые показатели — в конец.

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

Если отчет уже работает в режиме предприятия и менять схему нельзя, пользователь с правами настройки может добавить детальные записи сам. В форме отчета: «Ещё» → «Изменить вариант» (или «Настройки» → «Расширенные»), в структуре выделить нужную группировку и добавить вложенную группировку с пустым полем — механика та же, что в конструкторе. После этого вариант сохраняется под своим именем.

При программной доработке отчета детальные записи добавляются через объектную модель СКД. В настройках компоновщика создается группировка без полей:

НоваяГруппировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));

НоваяГруппировка.Использование = Истина;

// Поля группировки не добавляем — это и есть детальные записи

Поле = НоваяГруппировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));

Поле.Поле = Новый ПолеКомпоновкиДанных("Документ");

Тот же прием работает и при добавлении внутрь существующей группировки — только добавлять элемент нужно не в Настройки.Структура, а в коллекцию Структура найденной группировки. Найти нужную группировку удобно по имени или по полю группировки обходом дерева структуры.

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

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

Контрольные точки

Как проверить результат

Элемент «Детальные записи» в дереве структуры
Норма

Элемент есть, флажок использования установлен

Тревожный признак

Элемент отключен флажком или добавлен не в ту ветку

Выбранные поля детальных записей
Норма

Список заполнен, поля доступны в наборе данных

Тревожный признак

Список пуст или поля зачеркнуты как недоступные

Отбор на уровне деталей
Норма

Отбор не задан или пропускает строки

Тревожный признак

Отбор отсекает все строки детализации

Данные в наборе
Норма

Запрос возвращает детальные строки (проверить консолью запросов)

Тревожный признак

Запрос уже агрегирует данные — детализировать нечего

Отдельный случай — запрос набора данных уже содержит группировку (СГРУППИРОВАТЬ ПО) или итоги. Тогда в наборе данных физически нет детальных строк: СКД получает уже свернутые данные, и детальные записи покажут те же агрегаты. Решение — убрать агрегацию из запроса и переложить свертку на саму СКД через ресурсы.

Еще одна причина — поля детализации не включены в доступные поля. Если поле в запросе есть, но на закладке «Компоновка данных» → «Поля» (или в настройках полей набора) ему запрещено использование, выбрать его в детальных записях не получится. Проверьте также роли полей: поле-период, поле-счет и другие специальные роли влияют на то, как СКД обрабатывает значение.

Типичные ошибки
01
Добавление группировки с полем вместо детальных записей — данные сворачиваются, «расшифровка» показывает итоги, а не строки
02
Агрегация в запросе набора данных — СКД получает свернутые данные, детальные записи дублируют итоги
03
Пустой список выбранных полей у детальных записей — строки есть, но колонки пустые
04
Детальные записи добавлены в корень рядом с группировкой, а не внутрь нее — отчет выводит два независимых блока вместо вложенной структуры
05
Отбор по полю, которого нет в выбранных полях деталей, с отключенным автозаполнением — строки теряются без видимой причины

Производительность и ограничения

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

Практические приемы снижения нагрузки: выносить детальные записи в отдельный вариант отчета («Продажи детально»), ограничивать период обязательным отбором, использовать параметры с обязательным заполнением. Также имеет смысл убрать из деталей лишние поля — каждая колонка добавляет объем результата.

Сравнение вариантов

Детали внутри группировки

Подходит для расшифровки итогов: под каждой строкой группы раскрываются её строки. Ограничение — объем результата растет пропорционально числу групп

Детали в корне структуры

Подходит для плоского реестра без итогов: реестр документов, список операций. Ограничение — нет агрегированных итогов по разрезам

Отдельный вариант отчета с деталями

Подходит для тяжелых отчетов: основной вариант с итогами работает быстро, детальный — по требованию. Ограничение — два варианта нужно поддерживать синхронно

Расшифровка другим отчетом

Подходит, когда деталей очень много: по двойному клику открывается отдельный отчет с отбором. Ограничение — требует настройки обработки расшифровки

Альтернатива: вложенные группировки вместо деталей

Иногда вместо детальных записей правильнее добавить еще одну группировку по самому детальному измерению — например, по документу. Внешне результат похож, но есть отличия: группировка по документу свернет строки, если один документ встречается в наборе несколько раз, и покажет по нему итоги ресурсов. Детальные записи покажут каждую строку регистра отдельно, без какой-либо свертки.

Выбор зависит от задачи. Если нужен список документов с суммами — группировка по документу. Если нужны строки внутри документов (товары, проводки) — детальные записи. Часто их комбинируют: группировка «Документ», а внутри нее детальные записи по строкам табличной части.

Удобный прием для отладки: временно добавьте детальные записи в корень отчета с минимальным набором полей и сформируйте. Если детальные строки есть, а в рабочей структуре их нет — проблема в настройках ветки группировок (отборы, иерархия, связи наборов). Если строк нет и в корне — проблема в запросе или отборах уровня отчета.
ПЗ
Практическое замечание

Часто задаваемые вопросы

Как добавить детальные записи, если кнопка «Детальные записи» недоступна?

В конструкторе СКД отдельной кнопки может не быть — добавьте «Новую группировку» и в диалоге выбора поля нажмите «ОК», ничего не выбирая. Группировка без поля и является детальными записями. В дереве структуры она отобразится как «Детальные записи».

Почему в детальных записях выводятся не все документы группы?

Проверьте отборы: отбор, установленный на уровне группировки или детальных записей, действует и на детали. Также проверьте связи наборов данных, если их несколько: при левом соединении без корректной связи часть строк теряется. Наконец, убедитесь, что сам запрос возвращает все строки — проверьте его в консоли запросов с теми же параметрами.

Можно ли вывести итоги по детальным записям?

Детальные записи сами итогов не имеют, но итоги по ним выводятся в родительской группировке и в общих итогах отчета, если соответствующие ресурсы добавлены в выбранные поля этих уровней. Включите вывод общих итогов в настройках: «Параметры вывода» → «Расположение общих итогов по вертикали».

Как скрыть детальные записи по умолчанию, но оставить возможность их включить?

Снимите флажок использования у элемента «Детальные записи» в структуре — он останется в настройках, но не будет выводиться. Пользователь сможет включить его в режиме настройки. Либо создайте два варианта отчета: с деталями и без.

Детальные записи дублируют строки — в чем причина?

Дубли возникают, когда в схеме несколько наборов данных, связанных соединением, и связь настроена по неполному набору полей: одна строка основного набора стыкуется с несколькими строками подчиненного. Проверьте закладку «Связи наборов данных» и состав полей связи. Также дубли возможны при соединении таблиц в самом запросе по неуникальному ключу.

Можно ли добавить детальные записи в отчет, построенный без СКД?

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

Итог

Что важно запомнить

Детальные записи — это группировка СКД с пустым полем, добавляемая внутрь группировки или в корень структуры. Для них отдельно настраиваются выбранные поля. Если детали не выводятся, проверяйте использование элемента, отборы, доступность полей и отсутствие агрегации в запросе. Для больших данных выносите детализацию в отдельный вариант отчета.