Ответсообщение недоступно
Здравствуйте.
Есть регламентный отчёт, в котором одна табличная область. Пытаюсь для одного измерения этой области перед открытием отчёта применить схему отметки. Код выполняется, но нужные отметки не выставляются. Подскажите, что может быть не так?
Sub OnBeforeExecuteReport(Report: IPrxReport; Var Cancel: Boolean);
Begin
With itemSchema: GetSchema("SHEMA_1", "TEST_DIM") Do
With Slice: report.DataArea.Slices.FindById("ITEM1") Do
If Slice = Null Then
Raise New Exception.Create("Не найден срез ITEM1");
End If;
With dimSelectionSet: slice.Selection Do
With selection: dimSelectionSet.FindById("TEST_DIM") Do
If selection = Null Then
Raise New Exception.Create("Не найдена отметка по измерению TEST_DIM");
End If;
itemSchema.ProcessInplace(selection);
End With
End With;
End With;
End With;
End Sub OnBeforeExecuteReport;
Function GetSchema(shemaId: String; dictId: String): IDimSelectionSchema;
Begin
With dictDescr: MetabaseClass.Active.ItemById(dictId) Do
If dictDescr = Null Then
Raise New Exception.Create("Не найден справочник " + dictId);
End If;
With shemaDescr: MetabaseClass.Active.ItemByIdNamespace(shemaId, dictDescr.Key) Do
If shemaDescr = Null Then
Raise New Exception.Create("Не найден схема " + shemaId + " в справочнике " + dictId);
End If;
With objShema: shemaDescr.Bind Do
If Not(objShema Is IDimSelectionSchema) Then
Raise New Exception.Create("Объект " + shemaId + " не удалось привести к IDimSelectionSchema");
End If;
Return objShema As IDimSelectionSchema;
End With;
End With;
End With;
End Function GetSchema;