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