Работа с иерархией элементов в справочнике НСИ осуществляется посредством методов интерфейса IRdsDictionaryElements.
Для выполнения примера предполагается наличие репозитория НСИ - «NSI_1», содержащего справочник НСИ с идентификатором «Dict_1».
Sub Main;
Var
MB: IMetabase;
Dict: IRdsDictionary;
Attrs: IRdsAttributes;
DictInst: IRdsDictionaryInstance;
Elements: IRdsDictionaryElements;
Data: IRdsDictionaryElementData;
i, j: Integer;
Begin
MB := MetabaseClass.Active;
Dict := MB.ItemByIdNamespace("Dict_1", MB.ItemById("NSI_1").Key).Bind As IRdsDictionary;
Attrs := Dict.Attributes;
DictInst := Dict.Open(Null);
Elements := DictInst.Elements;
Data := Elements.CreateData;
Data.Value(Data.AttributeIndex(Attrs .Name.Key)) := "Первый корневой";
i := Elements.Insert(-2, Data);
Data.Value(Data.AttributeIndex(Attrs .Name.Key)) := "Второй корневой";
j := Elements.Insert(-2, Data);
Data.Value(Data.AttributeIndex(Attrs .Name.Key)) := "Первый дочерний";
Elements.Insert(i, Data);
Data.Value(Data.AttributeIndex(Attrs .Name.Key)) := "Второй дочерний";
Elements.Insert(j, Data);
End Sub Main;
После выполнения примера в справочнике НСИ будут созданы четыре новых элемента: два корневых элемента и для каждого корневого по одному дочернему элементу.
См. также: