Attribute(Element: Integer; AttributeKey: Integer): Variant;
Attribute[Element: uinteger; AttributeKey: uinteger]: object;
Element. Ключ элемента, для которого необходимо получить значение атрибута;
AttributeKey. Ключ атрибута, значение которого требуется получить.
Свойство Attribute возвращает значение указанного атрибута для заданного элемента справочника НСИ.
По умолчанию доступны значения только системных атрибутов. Для получения значений системных и пользовательских атрибутов присвойте свойству IRdsDictionaryInstance.FetchAll значение True.
Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «MDM_REPO». Данный репозиторий должен содержать табличный справочник НСИ с идентификатором «EXP_DICT».
Добавьте ссылки на системные сборки «Metabase», «Rds».
Sub UserProc;
Var
MB: IMetabase;
MdmKey: Integer;
Dict: IRdsDictionary;
DictInst: IRdsDictionaryInstance;
Elements: IRdsDictionaryElements;
Attrs: IRdsAttributes;
i, El, AttrKey: Integer;
Begin
MB := MetabaseClass.Active;
MdmKey := MB.ItemById("MDM_REPO").Key;
Dict := MB.ItemByIdNamespace("EXP_DICT", MdmKey).Bind As IRdsDictionary;
Attrs := Dict.Attributes;
AttrKey := Attrs.Name.Key; // ключ атрибута
DictInst := Dict.Open(Null);
Elements := DictInst.Elements;
For i := 0 To Elements.RootItem.ChildrenCount - 1 Do
El := Elements.Child(Elements.Root, i);
Debug.WriteLine(Elements.Attribute(El, AttrKey));
End For;
End Sub UserProc;
Результат выполнения примера: в окно консоли выведено значение атрибута «Наименование» для всех корневых элементов справочника.
Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «MDM_REPO». Данный репозиторий должен содержать табличный справочник НСИ с идентификатором «EXP_DICT».
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MdmKey, AttrKey, El: uinteger;
Dict: IRdsDictionary;
DictInst: IRdsDictionaryInstance;
Elements: IRdsDictionaryElements;
Attrs: IRdsAttributes;
i: Integer;
Begin
MB := Params.Metabase;
MdmKey := MB.ItemById["MDM_REPO"].Key;
Dict := MB.ItemByIdNamespace["EXP_DICT", MdmKey].Bind() As IRdsDictionary;
Attrs := Dict.Attributes;
AttrKey := Attrs.Name.Key; // ключ атрибута
DictInst := Dict.Open(Null);
Elements := DictInst.Elements;
For i := 0 To Elements.RootItem.ChildrenCount - 1 Do
El := Elements.Child[Elements.Root, i];
System.Diagnostics.Debug.WriteLine(Elements.Attribute[El, AttrKey]);
End For;
End Sub;
Результат выполнения примера: в окно консоли выведено значение атрибута «Наименование» для всех корневых элементов справочника.
См. также: