ElementDependenciesDatabase: IMbElementDependenciesDatabase;
ElementDependenciesDatabase: Prognoz.Platform.Interop.Metabase.IMbElementDependenciesDatabase;
Свойство ElementDependenciesDatabase возвращает объект, предназначенный для работы с зависимостями объектов от элементов справочников НСИ.
Для проверки возможности работы с зависимостями используйте свойство IMbElementDependenciesDatabase.Active.
Для выполнения примера предполагается наличие в репозитории регламентного отчета с идентификатором «Report_1». Данный отчет использует какие-либо источники данных, основанные на справочниках НСИ. Для отчета и справочников включено отслеживание зависимостей от элементов справочника НСИ.
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
DepDB: IMbElementDependenciesDatabase;
Template: IMbElementDependencyTemplate;
Depends: IMbElementDependencies;
Depend: IMbElementDependency;
Dict: IRdsDictionary;
Elements: IRdsDictionaryElements;
Begin
MB := MetabaseClass.Active;
DepDB := MB.ElementDependenciesDatabase;
Template := New MbElementDependencyTemplateClass.CreateByObject(MB.GetObjectKeyById("Report_1"));
Depends := DepDB.Select_(Template);
Debug.WriteLine("Зависимости объекта");
For Each Depend In Depends Do
Dict := Depend.Dictionary.Bind As IRdsDictionary;
Debug.Write("Справочник: " + Depend.Dictionary.Name);
Elements := Dict.Open(Null).Elements;
Debug.WriteLine("; Элемент: " + Elements.Name(Depend.ElementKey));
End For;
End Sub UserProc;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
DepDB: IMbElementDependenciesDatabase;
DependencyTemplateClass: MbElementDependencyTemplateClassClass = New MbElementDependencyTemplateClassClass();
Template: MbElementDependencyTemplateClass;
Depends: IMbElementDependencies;
Depend: IMbElementDependency;
Dict: IRdsDictionary;
Elements: IRdsDictionaryElements;
Begin
MB := Params.Metabase;
DepDB := MB.ElementDependenciesDatabase;
DependencyTemplateClass.CreateByObject(MB.GetObjectKeyById("Report_1"));
Template := DependencyTemplateClass As MbElementDependencyTemplateClass;
Depends := DepDB.@Select(Template);
System.Diagnostics.Debug.WriteLine("Зависимости объекта");
For Each Depend In Depends Do
Dict := Depend.Dictionary.Bind() As IRdsDictionary;
System.Diagnostics.Debug.Write("Справочник: " + Depend.Dictionary.Name);
Elements := Dict.Open(Null).Elements;
System.Diagnostics.Debug.WriteLine("; Элемент: " + Elements.Name[Depend.ElementKey As UInt32]);
End For;
End Sub;
При выполнении примера будет получена информация о зависимостях регламентного отчета от элементов справочников НСИ. Наименования справочников и элементов будут выведены в консоль среды разработки.
См. также: