Почему не выводится параметр макета в СКД и как это исправить

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Главная причина: ограничение количества записей в настройках

Рассмотрим ситуацию, когда в макете оформления заданы область и параметры, но при формировании отчета значение параметра остается пустым. Очень часто причина кроется в настройках компоновщика данных на вкладке Настройки.

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

Разберем по шагам, как исправить эту ошибку:

  1. Откроем схему компоновки данных и перейдем на вкладку Настройки.
  2. Выберем группировку, для которой задан пользовательский макет (или детальные записи).
  3. На вкладке Прочие настройки найдем флаг Количество записей.
  4. Если флаг установлен и значение равно 0, измените значение на 1 или полностью снимите этот флаг.

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

Проверка запроса СКД и полей выборки

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

Посмотрим на пример запроса, выбирающего данные документа:


ВЫБРАТЬ
	ЗалоговыйБилетТаблица.НомерСтроки,
	ЗалоговыйБилетТаблица.Ссылка КАК Документ,
	ЗалоговыйБилетТаблица.Залог,
	ЗалоговыйБилетТаблица.Сумма,
	ЗалоговыйБилетТаблица.Ссылка.ДатаВозврата,
	ЗалоговыйБилетТаблица.Ссылка.Просрочка КАК ЛьготныйПериод,
	ЗалоговыйБилетТаблица.Ссылка.СрокЗалога,
	ЗалоговыйБилетТаблица.Ссылка.СуммаОбщая,
	ЗалоговыйБилетТаблица.Залог.Родитель.Наименование,
	ЗалоговыйБилетТаблица.Ссылка.ДатаПросрчки,
	ЗалоговыйБилетТаблица.Ссылка.ПометкаУдаления,
	ЗалоговыйБилетТаблица.Ссылка.ДатаВыкупа,
	ЗалоговыйБилетТаблица.Ссылка.Дата,
	ЗалоговыйБилетТаблица.Ссылка.Номер,
	ЗалоговыйБилетТаблица.Ссылка.Подразделение КАК Подразделение
ИЗ
	Документ.ЗалоговыйБилет.Таблица КАК ЗалоговыйБилетТаблица
ГДЕ
	ЗалоговыйБилетТаблица.Ссылка.ДатаПросрчки > &ДатаТоргов
	И ЗалоговыйБилетТаблица.Ссылка.Проведен
	И НЕ ЗалоговыйБилетТаблица.Ссылка.Испорчен

Если в запросе поле Подразделение выбирается через точку от ссылки (ЗалоговыйБилетТаблица.Ссылка.Подразделение), убедимся, что поле также добавлено в Выбранные поля соответствующей группировки СКД. Если поле не добавлено в выбранные поля и не участвует в группировках, СКД при оптимизации запроса может исключить его из итоговой выборки.

Другие возможные причины пустого параметра в макете

Проанализируем дополнительные технические нюансы, из-за которых параметры макета могут не заполняться:

  1. Контекст вычисления полей в заголовках: Если макет оформлен для заголовка отчета или группировки, а выводимый реквизит является детальным полем, платформа 1С не может определить конкретное значение в момент вывода шапки. В таких случаях реквизит необходимо добавить на вкладку Ресурсы с функцией Максимум(Подразделение) или Минимум(Подразделение).
  2. Использование параметров данных: Если подразделение выбирается пользователем в шапке как отбор или параметр, в таблице параметров макета в колонке Выражение лучше указать прямую ссылку на параметр: ПараметрыДанных.Подразделение.
  3. Использование функции Представление(): В выражении параметра макета рекомендуется прописывать Представление(Подразделение). Это гарантирует вывод строкового наименования объекта без ошибок контекста.
← На главную