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