Создание табличного справочника НСИ

На языке Fore и Fore.NET приведены примеры создания табличного справочника НСИ.

Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «RDS_REPO» и базы данных с идентификатором «DB».

Результат выполнения примеров: в репозитории «RDS_REPO» создан табличный справочник НСИ. Информация о нём выводится в окно консоли.

Пример Fore

Добавьте ссылки на системные сборки «Metabase», «Rds» и «Db».

Sub UserProc;
Var
    Mb: IMetabase;
    Inf: IMetabaseObjectCreateInfo;
    Des: IMetabaseObjectDescriptor;
    RdsDict: IRdsDictionary;
Begin
    Mb := MetabaseClass.Active;
    Inf := Mb.CreateCreateInfo;
    Inf.ClassId := MetabaseObjectClass.KE_CLASS_METADICTIONARYRDS;
    Inf.Name := Inf.DefaultName;
    Inf.Parent := Mb.ItemById("RDS_REPO");
    Inf.KeepEdit := True;
    Des := Mb.CreateObject(Inf);
    RdsDict := Des As IRdsDictionary;
    RdsDict.Database := Mb.ItemById("DB").Bind As IDatabase;
    If RdsDict.Type = RdsDictionaryType.MetaDictionaryRds Then
        Debug.WriteLine("Cоздан табличный справочник НСИ:");
        Debug.Indent;
        Debug.WriteLine("- наименование: «" + Des.Name + "»");
        Debug.WriteLine("- идентификатор: «" + Des.Id + "»");
        Debug.WriteLine("- физическое имя таблицы, используемой для хранения данных: «" + RdsDict.TableName + "»");
        Debug.Unindent;
        (RdsDict As IMetabaseObject).Save;
    End If;
End Sub UserProc;

Пример Fore.NET

Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.Db;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Inf: IMetabaseObjectCreateInfo;
    Des: IMetabaseObjectDescriptor;
    RdsDict: IRdsDictionary;
Begin
    Mb := Params.Metabase;
    Inf := Mb.CreateCreateInfo();
    Inf.ClassId := MetabaseObjectClass.KE_CLASS_METADICTIONARYRDS As integer;
    Inf.Name := Inf.DefaultName;
    Inf.Parent := Mb.ItemById["RDS_REPO"];
    Inf.KeepEdit := True;
    Des := Mb.CreateObject(Inf);
    RdsDict := Des As IRdsDictionary;
    RdsDict.Database := Mb.ItemById["DB"].Bind() As IDatabase;
    If RdsDict.Type = RdsDictionaryType.rdtMetaDictionaryRds Then
        System.Diagnostics.Debug.WriteLine("Cоздан табличный справочник НСИ:");
        System.Diagnostics.Debug.Indent();
        System.Diagnostics.Debug.WriteLine("- наименование: «" + Des.Name + "»");
        System.Diagnostics.Debug.WriteLine("- идентификатор: «" + Des.Id + "»");
        System.Diagnostics.Debug.WriteLine("- физическое имя таблицы, используемой для хранения данных: «"
            + RdsDict.TableName + "»");
        System.Diagnostics.Debug.Unindent();
        (RdsDict As IMetabaseObject).Save();
    End If;
End Sub;

См. также:

Примеры | IRdsDictionary