HierarchyParameterKey: Integer;
Свойство HierarchyParameterKey определяет ключ параметра, который будет использоваться для выбора альтернативной иерархии.
Актуально, если свойству HierarchyTypeSource установлено значение AltHierarchySourceEnum.FromParam. В качестве значения укажите ключ параметра, созданного в форме ввода. Параметр должен быть построен на справочнике, в структуре которого имеется специальный атрибут. В качестве значений этого атрибута должны храниться ключи справочников, на базе которых построены альтернативные иерархии для справочника, лежащего в основе текущего измерения.
Для выполнения примера в репозитории предполагается наличие формы ввода с идентификатором DEF_FORM. В форме ввода добавлена табличная область. В табличной области добавлено измерение на базе справочника DICT_FIRMS. Для справочника созданы альтернативные иерархии. Также в форме ввода должен быть создан параметр, основанный на каком-либо справочнике, имеющем в своей структуре атрибут ALT_KEY. В качестве значения этого атрибута должны хранится ключи справочников, являющихся альтернативными иерархиями для DICT_FIRMS.
Добавьте ссылки на системные сборки: Dimensions, Metabase. Также добавьте ссылки на сборки, которые необходимы для работы с формами ввода.
Sub UserProc;
Var
Mb: IMetabase;
DEF: IDataEntryForm;
TArea: IDefTableArea;
AltParam: IDefParameter;
Dim: IDefDimension;
Begin
Mb := MetabaseClass.Active;
// Форма ввода/вывода
DEF := New DataEntryForm.CreateByDataEntryForm(Mb.ItemById("DEF_FORM"), True);
// Параметр для выбора альтернативной иерархии
AltParam := DEF.Parameters.Item(0);
// Получение измерения
TArea := DEF.InputAreas.Item(0) As IDefTableArea;
Dim := TArea.DefDimensions.ItemByKey(Mb.GetObjectKeyById("DICT_FIRMS"));
// Альтернативная иерархия для измерения
Dim.HierarchyTypeSource := AltHierarchySourceEnum.FromParam;
Dim.HierarchyParameterKey := AltParam.Key;
Dim.HierarchyParameterAttributeKey := AltParam.DimensionInstance.Dimension.Attributes.FindById("ALT_KEY").Key;
// Применение изменений
DEF.InputAreas.ApplyAreaToReport(TArea.Id);
// Сохранение изменений
DEF.Save;
DEF._Dispose;
End Sub UserProc;
При выполнении примера будут изменены настройки указанного измерения табличной области. Выбор альтернативной иерархии, которая будет отображаться в качестве значений элементов измерения, будет осуществляться с помощью уже имеющегося в форме ввода параметра.
См. также: