Книга: Разработка сложных отчетов в «1С:Предприятии 8». Система компоновки данных
Назад: Использование автополей
Дальше: Вычисляемые поля

Переопределение представления полей

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

Для переопределения представления поля в конструкторе схемы компоновки данных на закладке Наборы данных следует ввести соответствующее выражение в колонку Представление для поля набора данных или вычисляемого поля (рис. 3.136).

Рис. 3.136. Выражение представления для поля «Контрагент»

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

Для примера рассмотрим отчет Отчет по продажам. В схеме компоновки данных отчета для поля Контрагент в колонке Выражение представления указано следующее выражение (листинг 3.33).

Листинг 3.33. Выражение для представления в отчете поля «Контрагент»

"("+Контрагент.Код+") "+Контрагент.Наименование

В результате выполнения отчета код контрагента будет отражаться в скобках слева от его наименования (рис. 3.137).

Рис. 3.137. Результат отчета

В выражении для представления можно также использовать функции из общих модулей. Чтобы функцию можно было использовать в схеме компоновки данных, необходимо чтобы в ее описании присутствовало ключевое слово Экспорт. Например, в общем модуле ФункцииДляОтчетов есть функция ПредставлениеРегистратора(Номер, Дата), листинг 3.34.

Листинг 3.34. Функция общего модуля

Функция ПредставлениеРегистратора(Номер, Дата) Экспорт

Возврат " № " + СТРОКА(Номер) + " от " + ФОРМАТ(Дата, "ДФ=dd.MM.yyyy");

КонецФункции

Тогда в выражении представления для поля можно воспользоваться следующим выражением (листинг 3.35).

Листинг 3.35. Выражение для представления поля с использованием функции общего модуля

ФункцииДляОтчетов.ПредставлениеРегистратора(Регистратор.Номер, Регистратор.Дата)

Если модуль – глобальный, то имя модуля (ФункцииДляОтчетов) перед именем функции можно не указывать.

В результате выполнения отчета поле регистратора будет отражено в следующем виде (рис. 3.138).

Рис. 3.138. Результат отчета

Необходимо учитывать, что если компоновка данных выполняется при помощи стандартных средств объекта Отчет, то использование внешних функций разрешено. Если же компоновка данных осуществляется при помощи объектов системы компоновки данных, то для того чтобы разрешить использование внешних функций, необходимо в качестве значения параметра ВозможностьИспользованияВнешнихФункций метода Инициализировать() объекта ПроцессорКомпоновкиДанных передать значение Истина. В противном случае использовать внешние функции будет невозможно (листинг 3.36).

Листинг 3.36. Пример инициализации процессора компоновки данных

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных, ,

ДанныеРасшифровки, Истина);

Назад: Использование автополей
Дальше: Вычисляемые поля