Свойства и методы объекта отчета
1С:Предприяятие 8.3
Свойства и методы объекта отчета можно посмотреть в синнктакс – помощник конфигуратора:
Объект отчета используется для доступа к реквизитам и табличным частям, формам и макетам отчета. Он создается с помощью следующей конструкции:
ОтчетОбъект = Отчеты.<Имя отчета>.Создать();
ОтчетОбъект содержит реквизиты отчета и табличные части оичета . Доступ к значению осуществляется по имени, как оно задано в Конфигураторе, например
ЗначениеРеквизита = ОтчетОбъект.<ИмяРеквизита>; Таблица =ОтчетОбъект.<ИмяТабичнойЧасти>;
Отметим, реквизиты могут использоваться для чтения и записи. Однако, табличная часть доступно только на чтение.
Для редактирования настроек отчета используется свойство КомпоновщикНастроек.
КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;.
Свойство СхемаКомпоновкиДанных дает доступ к схеме компоновки, на основании которой будет выполняться отчет
СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных;
Для выполнения компоновки данных используется метод СкомпоноватьРезультат
ОтчетОбъект. СкомпоноватьРезультат(<ТабличныйДокумент>, <ДанныеРасшифровки> );
Параметр <ТабличныйДокумент> , в который будет выводиться результат является обязательным параметром . Однако, переменная <ДанныеРасшифровки>, в которую будет записана информация расшифровки необязательна. Расшифровка заполняться не будет если не указана переменная
Одна из особенностей метода СкомпоноватьРезультат заключается в том, что при выполнении метода генерируется событие ПриКомпоновкеРезультата. Обработчик данного события доступен в модуле объекта отчета
ПриКомпоновкеРезультата( <ТабличныйДокумент>, <ДанныеРасшифровки>, <СтандартнаяОбработка>)
Параметры обработчика ПриКомпоновкиРезультата:
- <ТабличныйДокумент> – Документ, в который выводится результат и переданный из метода СкомпоноввтьРезультат
- <ДанныеРасшифровки> – Переменная, в которую необходимо поместить данные расшифровки. Если данный параметр имеет значение Null, то данные расшифровки создавать не нужно.
- <СтандартнаяОбработка> – В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Значение по умолчанию: Истина.
Примеры использования обработчика ПриКомпоновкеРезультата
Пример№1 Передача Внешних Наборов Данных в СКД .
Для перерадчи внешних наборов данных в СКД используется метод Инициализировать процессора копмоновки :
Процедура ПриКомпоновкеРезультата( ТабличныйДокумент, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварныеЗапасыОстатки.Товар, | ТоварныеЗапасыОстатки.Склад, | ТоварныеЗапасыОстатки.КоличествоОстаток КАК Остаток |ИЗ | РегистрНакопления.ТоварныеЗапасы.Остатки КАК ТоварныеЗапасыОстатки"; Тз = Запрос.Выполнить().Выгрузить(); ВнешниеНаборы = Новый Структура("ТЗ", ТЗ); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы, ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент( ТабличныйДокумент ); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры
Пример №2 Передача параметров данных
Для передачи параметры данных используется метод УстановитьЗаначениеПараметра . В следующем примере , нужно передать в СКД документ – основание выбранного документа- регистратора в установленных параметрах. Следовательно, сначала находим регистратор, а затем передаем основание:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)СтандартнаяОбработка = Ложь;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
ПараметрыДанных = Настройки.ПараметрыДанных;
Регистратор = ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Регистратор")).Значение;
Основание = Регистратор.Основание;
ПараметрыДанных.УстановитьЗначениеПараметра("Основание", Основание);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки, , , Ложь);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры