Как вывести параметры в отчет СКД

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

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

Способ 1: Использование стандартной настройки «Выводить параметры»

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

Разберем этот процесс по шагам:

  1. Откроем Схему компоновки данных нашего отчета.
  2. Перейдем на закладку Настройки.
  3. В нижней части окна выберем вкладку Другие настройки.
  4. Найдем в списке свойство Выводить параметры.
  5. Установим значение этого свойства в Выводить.

Важно проанализировать, что у этого свойства есть три режима:

Совет: Аналогичным образом можно настроить свойство Выводить отбор, чтобы пользователь видел не только параметры (например, НачалоПериода), но и конкретные фильтры, наложенные на поля компоновки.

Способ 2: Добавление параметров в «Выбранные поля»

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

В настройках схемы на закладке Выбранные поля параметры доступны для выбора. Мы можем просто перетащить нужный параметр из левой колонки в правую. После этого в каждой строке детальных записей или в группировке появится колонка со значением этого параметра. Однако этот способ редко подходит для оформления шапки, так как он загромождает таблицу повторяющимися данными.

Способ 3: Использование выражений в параметрах

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

Проанализируем работу с выражениями:

  1. На вкладке Параметры найдем колонку Выражение.
  2. Для нового вспомогательного параметра или заголовка можно прописать стандартную функцию 1С:

ПредставлениеПериода(&НачалоПериода, &КонецПериода, "ФП=Истина")

Это выражение сформирует готовую строку, которую потом гораздо удобнее выводить в макет или заголовок отчета.

Способ 4: Создание пользовательского заголовка через группировки

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

Рассмотрим алгоритм действий:

  1. На закладке Настройки добавим новую группировку. В поле группировки ничего не указываем — это будут Детальные записи.
  2. Нажмем правой кнопкой мыши на созданную группировку и выберем команду Установить имя. Назовем её, например, ЗаголовокОтчета.
  3. Перейдем на закладку Макеты.
  4. Нажмем Добавить макет группировки. В появившемся окне выберем имя нашей группировки (ЗаголовокОтчета) и тип макета — Заголовок.
  5. В редакторе табличного документа выделим область ячеек, которая станет нашей шапкой.
  6. В ячейках можно писать текст и вставлять параметры в квадратных скобках, например: Отчет сформирован по складу [Склад].

Важный нюанс привязки данных: После того как мы написали [Склад] в ячейке макета, нам нужно перейти в нижнюю часть редактора макетов на закладку Параметры макета. Там необходимо явно указать, что для параметра ячейки Склад значением является выражение &Склад из нашей схемы СКД. Без этой связи 1С не поймет, откуда брать данные, и выведет пустую строку.

Способ 5: Вывод через «Вычисляемые поля»

Посмотрим на ситуацию, когда нам нужно вывести параметр, но мы не хотим использовать ручной макет. Мы можем создать Вычисляемое поле.

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

Способ 6: Программная установка заголовка

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

Разберем пример кода:


Настройки = КомпоновщикНастроек.Настройки;
ЗначениеСклада = Настройки.ПараметрыДанных.Элементы.Найти("Склад").Значение;
ЗаголовокТекст = "Продажи по складу: " + Строка(ЗначениеСклада);

Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Title", ЗаголовокТекст);

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

Почему может возникать ошибка «Отчет не сформирован»?

Иногда при попытке настроить собственный макет (как в Способе 4), пользователи сталкиваются с тем, что вместо данных видят надпись: «Отчет не сформирован. Нажмите "Сформировать"». Выясним причину этой проблемы.

Обычно это происходит из-за следующих ошибок:

Рекомендация: Всегда проверяйте, чтобы в иерархии группировок на закладке Настройки ваша группировка-заголовок стояла выше основной таблицы данных. Тогда отчет будет строиться последовательно: сначала ваша красивая шапка с параметрами, а затем сама таблица.

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

← На главную