Как найти поле или параметр в отчете СКД, если его нет в запросе

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

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

1. Проверка параметров ячеек на вкладке «Макеты»

Наиболее распространенная причина — переименование или связывание параметра непосредственно в самом макете оформления отчета. Имя параметра в ячейке макета может не совпадать с именем поля компоновки данных.

Разберем процесс поиска по шагам:

  1. Откроем схему компоновки данных и перейдем на вкладку Макеты.
  2. Найдем область макета (например, ШапкаРасчетногоЛистка:Заголовок) и выделим ячейку, в которой выводится искомое значение.
  3. В свойствах ячейки или в нижней таблице параметров макета проанализируем колонку Выражение. Именно здесь указывается, из какого именно поля набора данных или вычисляемого поля берется значение для данного параметра.

Часто в самой ячейке используется заполнение типа Шаблон, где текст задается конструкцией вида [ТарифнаяСтавка]. В этом случае параметр создается автоматически на уровне ячейки макета и привязывается к выражению СКД.

2. Поиск через сохранение схемы компоновки в XML-файл

Если визуальный поиск по многочисленным вкладкам и группировкам не приносит результата, применим универсальный метод — поиск по XML-структуре схемы.

  1. В окне редактирования схемы компоновки данных нажмем кнопку сохранения схемы в файл (или выгрузим схему через меню).
  2. Откроем полученный файл в любом текстовом редакторе.
  3. Воспользуемся контекстным поиском по точному наименованию искомого поля или параметра. Это позволит сразу увидеть тег XML, в котором определена переменная, и понять context ее использования.

3. Вычисляемые и пользовательские поля

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

  1. Вычисляемые поля: На вкладке Вычисляемые поля значение может формироваться как результат выражения 1С или вызова функции общего модуля.
  2. Пользовательские поля: В режиме настройки варианта отчета (вкладка Настройки) могут быть заданы пользовательские поля-выражения или поля-выборы, которые отсутствуют в наборах данных конструктора.

4. Дополнительные реквизиты, характеристики и выражения представления

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

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