AllDictionary(Source: IRdsDictionary): IRdsDictionaryConverterList;
AllDictionary(Source: Prognoz.Platform.Interop.Rds.IRdsDictionary): Prognoz.Platform.Interop.Rds.IRdsDictionaryConverterList;
Source. Преобразуемый справочник НСИ.
Свойство AllDictionary возвращает список справочников НСИ, преобразованных в табличные справочники НСИ.
Для преобразования всех справочников НСИ в табличные справочники НСИ используйте метод IRdsDictionaryConverter.ConvertAll.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором MDM, содержащим справочник НСИ с идентификатором RDS.
Добавьте ссылки на системные сборки Metabase, Rds.
Sub UserProc;
Var
MB: IMetabase;
RdsKey: Integer;
MObj: IMetabaseObject;
RDS: IRdsDictionary;
Converter: IRdsDictionaryConverter;
List: IRdsDictionaryConverterList;
NotConv: IMetabaseObjectDescriptors;
pReasons: IRdsNotConvertibleReasons;
pReason: IRdsNotConvertibleReason;
i, j: Integer;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим справочник НСИ
RdsKey := MB.GetObjectKeyById("MDM");
MObj := MB.ItemByIdNamespace("RDS", RdsKey).Bind;
RDS := MObj As IRdsDictionary;
// Преобразуем справочник и выведем ошибки, если нельзя преобразовать
Converter := New RdsDictionaryConverter.Create;
List := Converter.AllDictionary(RDS);
NotConv := List.NotConvertibleDictionaries;
For i := 0 To NotConv.Count - 1 Do
pReasons := List.GetNotConvertibleReasons(NotConv.Item(i).Key);
Debug.WriteLine("Всего ошибок: " + pReasons.Count.ToString);
For j := 0 To pReasons.GetExplanation.Length - 1 Do
pReason := pReasons.Item(j);
Debug.WriteLine("Код ошибки: " + pReason.Reason.ToString);
Debug.Indent;
Debug.WriteLine("Причина: " + pReason.GetExplanation);
End For;
End For;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
RdsKey: uinteger;
MObj: IMetabaseObject;
RDS: IRdsDictionary;
Converter: IRdsDictionaryConverter;
List: IRdsDictionaryConverterList;
NotConv: IMetabaseObjectDescriptors;
pReasons: IRdsNotConvertibleReasons;
pReason: IRdsNotConvertibleReason;
i, j: Integer;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим справочник НСИ
RdsKey := MB.GetObjectKeyById("MDM");
MObj := MB.ItemByIdNamespace["RDS", RdsKey].Bind();
RDS := MObj As IRdsDictionary;
// Преобразуем справочник и выведем ошибки, если нельзя преобразовать
Converter := New RdsDictionaryConverter.Create();
List := Converter.AllDictionary[RDS];
NotConv := List.NotConvertibleDictionaries;
For i := 0 To NotConv.Count - 1 Do
pReasons := List.GetNotConvertibleReasons(NotConv.Item[i].Key);
System.Diagnostics.Debug.WriteLine("Всего ошибок: " + pReasons.Count.ToString());
For j := 0 To pReasons.GetExplanation().Length - 1 Do
pReason := pReasons.Item[j];
System.Diagnostics.Debug.WriteLine("Код ошибки: " + pReason.Reason.ToString());
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("Причина: " + pReason.GetExplanation());
End For;
End For;
End Sub;
В результате выполнения примера в окно консоли будут выведены: количество ошибок, код ошибки и причины, по которым справочник НСИ не может быть преобразован в табличный справочник НСИ.
См. также: