You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
Main build (Jenkins)
This commit is contained in:
16972
service/dictionaries/en.json
vendored
16972
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
36
src/en/OInt/core/Modules/OPI_MSSQL.os
vendored
36
src/en/OInt/core/Modules/OPI_MSSQL.os
vendored
@@ -145,11 +145,6 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
, Val Connection = ""
|
, Val Connection = ""
|
||||||
, Val Tls = "") Export
|
, Val Tls = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(QueryText, True);
|
|
||||||
OPI_TypeConversion.GetBoolean(ForceResult);
|
|
||||||
|
|
||||||
Parameters_ = ProcessParameters(Parameters);
|
|
||||||
|
|
||||||
If IsConnector(Connection) Then
|
If IsConnector(Connection) Then
|
||||||
CloseConnection = False;
|
CloseConnection = False;
|
||||||
Connector = Connection;
|
Connector = Connection;
|
||||||
@@ -162,14 +157,16 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
Return Connector;
|
Return Connector;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = Connector.Execute(QueryText, Parameters_, ForceResult);
|
OPI_TypeConversion.GetLine(QueryText, True);
|
||||||
|
OPI_TypeConversion.GetBoolean(ForceResult);
|
||||||
|
|
||||||
|
Parameters_ = ProcessParameters(Parameters);
|
||||||
|
Result = OPI_SQLQueries.ExecuteQueryWithProcessing(Connector, QueryText, ForceResult, Parameters_);
|
||||||
|
|
||||||
If CloseConnection Then
|
If CloseConnection Then
|
||||||
CloseConnection(Connector);
|
CloseConnection(Connector);
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = OPI_Tools.JsonToStructure(Result);
|
|
||||||
|
|
||||||
Return Result;
|
Return Result;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@@ -581,27 +578,28 @@ EndFunction
|
|||||||
Function ProcessParameters(Val Parameters)
|
Function ProcessParameters(Val Parameters)
|
||||||
|
|
||||||
If Not ValueIsFilled(Parameters) Then
|
If Not ValueIsFilled(Parameters) Then
|
||||||
Return "[]";
|
Return New Array;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
|
Parameters_ = New Array;
|
||||||
OPI_TypeConversion.GetArray(Parameters);
|
OPI_TypeConversion.GetArray(Parameters);
|
||||||
|
|
||||||
For N = 0 To Parameters.UBound() Do
|
Counter = 0;
|
||||||
|
For Each Parameter In Parameters Do
|
||||||
|
|
||||||
CurrentParameter = Parameters[N];
|
CurrentParameter = ProcessParameter(Parameter);
|
||||||
|
CurrentParameter = OPI_Tools.JSONString(CurrentParameter, , False);
|
||||||
|
|
||||||
CurrentParameter = ProcessParameter(CurrentParameter);
|
If StrStartsWith(CurrentParameter, "NOT JSON") Then
|
||||||
|
Raise StrTemplate("JSON validation error for parameter. Array position %1", Counter);
|
||||||
|
Else
|
||||||
|
Parameters_.Add(CurrentParameter);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
Parameters[N] = CurrentParameter;
|
Counter = Counter + 1;
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Parameters_ = OPI_Tools.JSONString(Parameters, , False);
|
|
||||||
|
|
||||||
If StrStartsWith(Parameters_, "NOT JSON") Then
|
|
||||||
Raise "JSON parameter array validation error!";
|
|
||||||
EndIf;
|
|
||||||
|
|
||||||
Return Parameters_;
|
Return Parameters_;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
49
src/en/OInt/core/Modules/OPI_PostgreSQL.os
vendored
49
src/en/OInt/core/Modules/OPI_PostgreSQL.os
vendored
@@ -145,14 +145,6 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
, Val Connection = ""
|
, Val Connection = ""
|
||||||
, Val Tls = "") Export
|
, Val Tls = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(QueryText, True);
|
|
||||||
OPI_TypeConversion.GetBoolean(ForceResult);
|
|
||||||
|
|
||||||
Parameters_ = ProcessParameters(Parameters);
|
|
||||||
|
|
||||||
QueryText = GetBinaryDataFromString(QueryText);
|
|
||||||
Parameters_ = GetBinaryDataFromString(Parameters_);
|
|
||||||
|
|
||||||
If IsConnector(Connection) Then
|
If IsConnector(Connection) Then
|
||||||
CloseConnection = False;
|
CloseConnection = False;
|
||||||
Connector = Connection;
|
Connector = Connection;
|
||||||
@@ -165,15 +157,16 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
Return Connector;
|
Return Connector;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = Connector.Execute(QueryText, Parameters_, ForceResult);
|
OPI_TypeConversion.GetLine(QueryText, True);
|
||||||
Result = GetStringFromBinaryData(Result);
|
OPI_TypeConversion.GetBoolean(ForceResult);
|
||||||
|
|
||||||
|
Parameters_ = ProcessParameters(Parameters);
|
||||||
|
Result = OPI_SQLQueries.ExecuteQueryWithProcessing(Connector, QueryText, ForceResult, Parameters_);
|
||||||
|
|
||||||
If CloseConnection Then
|
If CloseConnection Then
|
||||||
CloseConnection(Connector);
|
CloseConnection(Connector);
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = OPI_Tools.JsonToStructure(Result);
|
|
||||||
|
|
||||||
Return Result;
|
Return Result;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@@ -575,32 +568,33 @@ EndFunction
|
|||||||
Function ProcessParameters(Val Parameters)
|
Function ProcessParameters(Val Parameters)
|
||||||
|
|
||||||
If Not ValueIsFilled(Parameters) Then
|
If Not ValueIsFilled(Parameters) Then
|
||||||
Return "[]";
|
Return New Array;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
|
Parameters_ = New Array;
|
||||||
OPI_TypeConversion.GetArray(Parameters);
|
OPI_TypeConversion.GetArray(Parameters);
|
||||||
|
|
||||||
For N = 0 To Parameters.UBound() Do
|
Counter = 0;
|
||||||
|
For Each Parameter In Parameters Do
|
||||||
|
|
||||||
CurrentParameter = Parameters[N];
|
CurrentParameter = ProcessParameter(Parameter);
|
||||||
|
CurrentParameter = OPI_Tools.JSONString(CurrentParameter, , False);
|
||||||
|
|
||||||
CurrentParameter = ProcessParameter(CurrentParameter);
|
If StrStartsWith(CurrentParameter, "NOT JSON") Then
|
||||||
|
Raise StrTemplate("JSON validation error for parameter. Array position %1", Counter);
|
||||||
|
Else
|
||||||
|
Parameters_.Add(CurrentParameter);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
Parameters[N] = CurrentParameter;
|
Counter = Counter + 1;
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Parameters_ = OPI_Tools.JSONString(Parameters, , False);
|
|
||||||
|
|
||||||
If StrStartsWith(Parameters_, "NOT JSON") Then
|
|
||||||
Raise "JSON parameter array validation error!";
|
|
||||||
EndIf;
|
|
||||||
|
|
||||||
Return Parameters_;
|
Return Parameters_;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function ProcessParameter(CurrentParameter)
|
Function ProcessParameter(CurrentParameter, Embedded = False)
|
||||||
|
|
||||||
CurrentType = TypeOf(CurrentParameter);
|
CurrentType = TypeOf(CurrentParameter);
|
||||||
|
|
||||||
@@ -611,10 +605,12 @@ Function ProcessParameter(CurrentParameter)
|
|||||||
ElsIf CurrentType = Type("UUID") Then
|
ElsIf CurrentType = Type("UUID") Then
|
||||||
|
|
||||||
CurrentParameter = String(CurrentParameter);
|
CurrentParameter = String(CurrentParameter);
|
||||||
|
CurrentParameter = ?(Embedded, CurrentParameter, New Structure("UUID", CurrentParameter));
|
||||||
|
|
||||||
ElsIf CurrentType = Type("Date") Then
|
ElsIf CurrentType = Type("Date") Then
|
||||||
|
|
||||||
CurrentParameter = OPI_Tools.DateRFC3339(CurrentParameter);
|
CurrentParameter = OPI_Tools.DateRFC3339(CurrentParameter);
|
||||||
|
CurrentParameter = ?(Embedded, CurrentParameter, New Structure("TIMESTAMP", CurrentParameter));
|
||||||
|
|
||||||
ElsIf OPI_Tools.CollectionFieldExists(CurrentParameter, "BYTEA") Then
|
ElsIf OPI_Tools.CollectionFieldExists(CurrentParameter, "BYTEA") Then
|
||||||
|
|
||||||
@@ -634,14 +630,17 @@ Function ProcessParameter(CurrentParameter)
|
|||||||
Continue;
|
Continue;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
CurrentParameter[ParamElement.Key] = ProcessParameter(CurrentValue);
|
CurrentParameter[ParamElement.Key] = ProcessParameter(CurrentValue, True);
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Else
|
Else
|
||||||
|
|
||||||
If Not OPI_Tools.IsPrimitiveType(CurrentParameter) Then
|
If Not OPI_Tools.IsPrimitiveType(CurrentParameter) Then
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(CurrentParameter);
|
OPI_TypeConversion.GetLine(CurrentParameter);
|
||||||
|
CurrentParameter = ?(Embedded, CurrentParameter, New Structure("VARCHAR", CurrentParameter));
|
||||||
|
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
EndIf;
|
EndIf;
|
||||||
|
65
src/en/OInt/tools/Modules/OPI_SQLQueries.os
vendored
65
src/en/OInt/tools/Modules/OPI_SQLQueries.os
vendored
@@ -353,6 +353,28 @@ Function GetRecordsFilterStrucutre(Val Clear = False) Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ExecuteQueryWithProcessing(Connector, Val QueryText, Val ForceResult, Val Parameters) Export
|
||||||
|
|
||||||
|
QueryKey = Connector.InitQuery(QueryText, ForceResult);
|
||||||
|
|
||||||
|
For Each Parameter In Parameters Do
|
||||||
|
|
||||||
|
Adding = Connector.AddQueryParam(QueryKey, Parameter);
|
||||||
|
Adding = OPI_Tools.JsonToStructure(Adding);
|
||||||
|
|
||||||
|
If Not Adding["result"] Then
|
||||||
|
Return Adding;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Result = Connector.Execute(QueryKey);
|
||||||
|
Result = ProcessQueryResult(Connector, QueryKey, Result);
|
||||||
|
|
||||||
|
Return Result;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
|
||||||
#Region Private
|
#Region Private
|
||||||
@@ -1211,6 +1233,45 @@ Function FormTopText(Val Count)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ProcessQueryResult(Val Connector, Val QueryKey, Val Result)
|
||||||
|
|
||||||
|
Result = OPI_Tools.JsonToStructure(Result);
|
||||||
|
|
||||||
|
If Result["result"] Then
|
||||||
|
|
||||||
|
If Not Result["data"] Then
|
||||||
|
Result.Delete("data");
|
||||||
|
Return Result;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
RowsAmount = Connector.GetQueryResultLength(QueryKey);
|
||||||
|
|
||||||
|
If Not TypeOf(RowsAmount) = Type("Number") Then
|
||||||
|
Return OPI_Tools.JsonToStructure(RowsAmount);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
StingsArray = New Array;
|
||||||
|
|
||||||
|
For N = 0 To RowsAmount Do
|
||||||
|
|
||||||
|
CurrentRow = Connector.GetQueryResultRow(QueryKey, N);
|
||||||
|
StingsArray.Add(CurrentRow);
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
If StingsArray.Count() > 0 Then
|
||||||
|
TextJSON = StrTemplate("[%1]", StrConcat(StingsArray, "," + Chars.LF));
|
||||||
|
StingsArray = OPI_Tools.JSONToStructure(TextJSON);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Result.Insert("data", StingsArray);
|
||||||
|
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Return Result;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
Procedure SplitDataCollection(Val Record, FieldArray, ValuesArray)
|
Procedure SplitDataCollection(Val Record, FieldArray, ValuesArray)
|
||||||
|
|
||||||
ErrorText = "Incorrect data set for updating";
|
ErrorText = "Incorrect data set for updating";
|
||||||
@@ -1472,6 +1533,10 @@ Function ПолучитьСтруктуруФильтраЗаписей(Val Пу
|
|||||||
Return GetRecordsFilterStrucutre(Пустая);
|
Return GetRecordsFilterStrucutre(Пустая);
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ВыполнитьЗапросСОбработкой(Коннектор, Val ТекстЗапроса, Val ФорсироватьРезультат, Val Параметры) Export
|
||||||
|
Return ExecuteQueryWithProcessing(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры);
|
||||||
|
EndFunction
|
||||||
|
|
||||||
Procedure ДобавитьКолонку(Схема, Val Имя, Val Тип) Export
|
Procedure ДобавитьКолонку(Схема, Val Имя, Val Тип) Export
|
||||||
AddColoumn(Схема, Имя, Тип);
|
AddColoumn(Схема, Имя, Тип);
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
@@ -145,11 +145,6 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
, Val Connection = ""
|
, Val Connection = ""
|
||||||
, Val Tls = "") Export
|
, Val Tls = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(QueryText, True);
|
|
||||||
OPI_TypeConversion.GetBoolean(ForceResult);
|
|
||||||
|
|
||||||
Parameters_ = ProcessParameters(Parameters);
|
|
||||||
|
|
||||||
If IsConnector(Connection) Then
|
If IsConnector(Connection) Then
|
||||||
CloseConnection = False;
|
CloseConnection = False;
|
||||||
Connector = Connection;
|
Connector = Connection;
|
||||||
@@ -162,14 +157,16 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
Return Connector;
|
Return Connector;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = Connector.Execute(QueryText, Parameters_, ForceResult);
|
OPI_TypeConversion.GetLine(QueryText, True);
|
||||||
|
OPI_TypeConversion.GetBoolean(ForceResult);
|
||||||
|
|
||||||
|
Parameters_ = ProcessParameters(Parameters);
|
||||||
|
Result = OPI_SQLQueries.ExecuteQueryWithProcessing(Connector, QueryText, ForceResult, Parameters_);
|
||||||
|
|
||||||
If CloseConnection Then
|
If CloseConnection Then
|
||||||
CloseConnection(Connector);
|
CloseConnection(Connector);
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = OPI_Tools.JsonToStructure(Result);
|
|
||||||
|
|
||||||
Return Result;
|
Return Result;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@@ -581,27 +578,28 @@ EndFunction
|
|||||||
Function ProcessParameters(Val Parameters)
|
Function ProcessParameters(Val Parameters)
|
||||||
|
|
||||||
If Not ValueIsFilled(Parameters) Then
|
If Not ValueIsFilled(Parameters) Then
|
||||||
Return "[]";
|
Return New Array;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
|
Parameters_ = New Array;
|
||||||
OPI_TypeConversion.GetArray(Parameters);
|
OPI_TypeConversion.GetArray(Parameters);
|
||||||
|
|
||||||
For N = 0 To Parameters.UBound() Do
|
Counter = 0;
|
||||||
|
For Each Parameter In Parameters Do
|
||||||
|
|
||||||
CurrentParameter = Parameters[N];
|
CurrentParameter = ProcessParameter(Parameter);
|
||||||
|
CurrentParameter = OPI_Tools.JSONString(CurrentParameter, , False);
|
||||||
|
|
||||||
CurrentParameter = ProcessParameter(CurrentParameter);
|
If StrStartsWith(CurrentParameter, "NOT JSON") Then
|
||||||
|
Raise StrTemplate("JSON validation error for parameter. Array position %1", Counter);
|
||||||
|
Else
|
||||||
|
Parameters_.Add(CurrentParameter);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
Parameters[N] = CurrentParameter;
|
Counter = Counter + 1;
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Parameters_ = OPI_Tools.JSONString(Parameters, , False);
|
|
||||||
|
|
||||||
If StrStartsWith(Parameters_, "NOT JSON") Then
|
|
||||||
Raise "JSON parameter array validation error!";
|
|
||||||
EndIf;
|
|
||||||
|
|
||||||
Return Parameters_;
|
Return Parameters_;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
@@ -145,14 +145,6 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
, Val Connection = ""
|
, Val Connection = ""
|
||||||
, Val Tls = "") Export
|
, Val Tls = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(QueryText, True);
|
|
||||||
OPI_TypeConversion.GetBoolean(ForceResult);
|
|
||||||
|
|
||||||
Parameters_ = ProcessParameters(Parameters);
|
|
||||||
|
|
||||||
QueryText = GetBinaryDataFromString(QueryText);
|
|
||||||
Parameters_ = GetBinaryDataFromString(Parameters_);
|
|
||||||
|
|
||||||
If IsConnector(Connection) Then
|
If IsConnector(Connection) Then
|
||||||
CloseConnection = False;
|
CloseConnection = False;
|
||||||
Connector = Connection;
|
Connector = Connection;
|
||||||
@@ -165,15 +157,16 @@ Function ExecuteSQLQuery(Val QueryText
|
|||||||
Return Connector;
|
Return Connector;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = Connector.Execute(QueryText, Parameters_, ForceResult);
|
OPI_TypeConversion.GetLine(QueryText, True);
|
||||||
Result = GetStringFromBinaryData(Result);
|
OPI_TypeConversion.GetBoolean(ForceResult);
|
||||||
|
|
||||||
|
Parameters_ = ProcessParameters(Parameters);
|
||||||
|
Result = OPI_SQLQueries.ExecuteQueryWithProcessing(Connector, QueryText, ForceResult, Parameters_);
|
||||||
|
|
||||||
If CloseConnection Then
|
If CloseConnection Then
|
||||||
CloseConnection(Connector);
|
CloseConnection(Connector);
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
Result = OPI_Tools.JsonToStructure(Result);
|
|
||||||
|
|
||||||
Return Result;
|
Return Result;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
@@ -575,32 +568,33 @@ EndFunction
|
|||||||
Function ProcessParameters(Val Parameters)
|
Function ProcessParameters(Val Parameters)
|
||||||
|
|
||||||
If Not ValueIsFilled(Parameters) Then
|
If Not ValueIsFilled(Parameters) Then
|
||||||
Return "[]";
|
Return New Array;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
|
Parameters_ = New Array;
|
||||||
OPI_TypeConversion.GetArray(Parameters);
|
OPI_TypeConversion.GetArray(Parameters);
|
||||||
|
|
||||||
For N = 0 To Parameters.UBound() Do
|
Counter = 0;
|
||||||
|
For Each Parameter In Parameters Do
|
||||||
|
|
||||||
CurrentParameter = Parameters[N];
|
CurrentParameter = ProcessParameter(Parameter);
|
||||||
|
CurrentParameter = OPI_Tools.JSONString(CurrentParameter, , False);
|
||||||
|
|
||||||
CurrentParameter = ProcessParameter(CurrentParameter);
|
If StrStartsWith(CurrentParameter, "NOT JSON") Then
|
||||||
|
Raise StrTemplate("JSON validation error for parameter. Array position %1", Counter);
|
||||||
|
Else
|
||||||
|
Parameters_.Add(CurrentParameter);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
Parameters[N] = CurrentParameter;
|
Counter = Counter + 1;
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Parameters_ = OPI_Tools.JSONString(Parameters, , False);
|
|
||||||
|
|
||||||
If StrStartsWith(Parameters_, "NOT JSON") Then
|
|
||||||
Raise "JSON parameter array validation error!";
|
|
||||||
EndIf;
|
|
||||||
|
|
||||||
Return Parameters_;
|
Return Parameters_;
|
||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
Function ProcessParameter(CurrentParameter)
|
Function ProcessParameter(CurrentParameter, Embedded = False)
|
||||||
|
|
||||||
CurrentType = TypeOf(CurrentParameter);
|
CurrentType = TypeOf(CurrentParameter);
|
||||||
|
|
||||||
@@ -611,10 +605,12 @@ Function ProcessParameter(CurrentParameter)
|
|||||||
ElsIf CurrentType = Type("UUID") Then
|
ElsIf CurrentType = Type("UUID") Then
|
||||||
|
|
||||||
CurrentParameter = String(CurrentParameter);
|
CurrentParameter = String(CurrentParameter);
|
||||||
|
CurrentParameter = ?(Embedded, CurrentParameter, New Structure("UUID", CurrentParameter));
|
||||||
|
|
||||||
ElsIf CurrentType = Type("Date") Then
|
ElsIf CurrentType = Type("Date") Then
|
||||||
|
|
||||||
CurrentParameter = OPI_Tools.DateRFC3339(CurrentParameter);
|
CurrentParameter = OPI_Tools.DateRFC3339(CurrentParameter);
|
||||||
|
CurrentParameter = ?(Embedded, CurrentParameter, New Structure("TIMESTAMP", CurrentParameter));
|
||||||
|
|
||||||
ElsIf OPI_Tools.CollectionFieldExists(CurrentParameter, "BYTEA") Then
|
ElsIf OPI_Tools.CollectionFieldExists(CurrentParameter, "BYTEA") Then
|
||||||
|
|
||||||
@@ -634,14 +630,17 @@ Function ProcessParameter(CurrentParameter)
|
|||||||
Continue;
|
Continue;
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
CurrentParameter[ParamElement.Key] = ProcessParameter(CurrentValue);
|
CurrentParameter[ParamElement.Key] = ProcessParameter(CurrentValue, True);
|
||||||
|
|
||||||
EndDo;
|
EndDo;
|
||||||
|
|
||||||
Else
|
Else
|
||||||
|
|
||||||
If Not OPI_Tools.IsPrimitiveType(CurrentParameter) Then
|
If Not OPI_Tools.IsPrimitiveType(CurrentParameter) Then
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(CurrentParameter);
|
OPI_TypeConversion.GetLine(CurrentParameter);
|
||||||
|
CurrentParameter = ?(Embedded, CurrentParameter, New Structure("VARCHAR", CurrentParameter));
|
||||||
|
|
||||||
EndIf;
|
EndIf;
|
||||||
|
|
||||||
EndIf;
|
EndIf;
|
||||||
|
@@ -353,6 +353,28 @@ Function GetRecordsFilterStrucutre(Val Clear = False) Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ExecuteQueryWithProcessing(Connector, Val QueryText, Val ForceResult, Val Parameters) Export
|
||||||
|
|
||||||
|
QueryKey = Connector.InitQuery(QueryText, ForceResult);
|
||||||
|
|
||||||
|
For Each Parameter In Parameters Do
|
||||||
|
|
||||||
|
Adding = Connector.AddQueryParam(QueryKey, Parameter);
|
||||||
|
Adding = OPI_Tools.JsonToStructure(Adding);
|
||||||
|
|
||||||
|
If Not Adding["result"] Then
|
||||||
|
Return Adding;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Result = Connector.Execute(QueryKey);
|
||||||
|
Result = ProcessQueryResult(Connector, QueryKey, Result);
|
||||||
|
|
||||||
|
Return Result;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
|
||||||
#Region Private
|
#Region Private
|
||||||
@@ -1211,6 +1233,45 @@ Function FormTopText(Val Count)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ProcessQueryResult(Val Connector, Val QueryKey, Val Result)
|
||||||
|
|
||||||
|
Result = OPI_Tools.JsonToStructure(Result);
|
||||||
|
|
||||||
|
If Result["result"] Then
|
||||||
|
|
||||||
|
If Not Result["data"] Then
|
||||||
|
Result.Delete("data");
|
||||||
|
Return Result;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
RowsAmount = Connector.GetQueryResultLength(QueryKey);
|
||||||
|
|
||||||
|
If Not TypeOf(RowsAmount) = Type("Number") Then
|
||||||
|
Return OPI_Tools.JsonToStructure(RowsAmount);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
StingsArray = New Array;
|
||||||
|
|
||||||
|
For N = 0 To RowsAmount Do
|
||||||
|
|
||||||
|
CurrentRow = Connector.GetQueryResultRow(QueryKey, N);
|
||||||
|
StingsArray.Add(CurrentRow);
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
If StingsArray.Count() > 0 Then
|
||||||
|
TextJSON = StrTemplate("[%1]", StrConcat(StingsArray, "," + Chars.LF));
|
||||||
|
StingsArray = OPI_Tools.JSONToStructure(TextJSON);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Result.Insert("data", StingsArray);
|
||||||
|
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
Return Result;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
Procedure SplitDataCollection(Val Record, FieldArray, ValuesArray)
|
Procedure SplitDataCollection(Val Record, FieldArray, ValuesArray)
|
||||||
|
|
||||||
ErrorText = "Incorrect data set for updating";
|
ErrorText = "Incorrect data set for updating";
|
||||||
|
36
src/ru/OInt/core/Modules/OPI_MSSQL.os
vendored
36
src/ru/OInt/core/Modules/OPI_MSSQL.os
vendored
@@ -145,11 +145,6 @@
|
|||||||
, Знач Соединение = ""
|
, Знач Соединение = ""
|
||||||
, Знач Tls = "") Экспорт
|
, Знач Tls = "") Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
|
|
||||||
|
|
||||||
Параметры_ = ОбработатьПараметры(Параметры);
|
|
||||||
|
|
||||||
Если ЭтоКоннектор(Соединение) Тогда
|
Если ЭтоКоннектор(Соединение) Тогда
|
||||||
ЗакрыватьСоединение = Ложь;
|
ЗакрыватьСоединение = Ложь;
|
||||||
Коннектор = Соединение;
|
Коннектор = Соединение;
|
||||||
@@ -162,14 +157,16 @@
|
|||||||
Возврат Коннектор;
|
Возврат Коннектор;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат = Коннектор.Execute(ТекстЗапроса, Параметры_, ФорсироватьРезультат);
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
|
||||||
|
OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
|
||||||
|
|
||||||
|
Параметры_ = ОбработатьПараметры(Параметры);
|
||||||
|
Результат = OPI_ЗапросыSQL.ВыполнитьЗапросСОбработкой(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры_);
|
||||||
|
|
||||||
Если ЗакрыватьСоединение Тогда
|
Если ЗакрыватьСоединение Тогда
|
||||||
ЗакрытьСоединение(Коннектор);
|
ЗакрытьСоединение(Коннектор);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -581,27 +578,28 @@
|
|||||||
Функция ОбработатьПараметры(Знач Параметры)
|
Функция ОбработатьПараметры(Знач Параметры)
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Параметры) Тогда
|
Если Не ЗначениеЗаполнено(Параметры) Тогда
|
||||||
Возврат "[]";
|
Возврат Новый Массив;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Параметры_ = Новый Массив;
|
||||||
OPI_ПреобразованиеТипов.ПолучитьМассив(Параметры);
|
OPI_ПреобразованиеТипов.ПолучитьМассив(Параметры);
|
||||||
|
|
||||||
Для Н = 0 По Параметры.ВГраница() Цикл
|
Счетчик = 0;
|
||||||
|
Для Каждого Параметр Из Параметры Цикл
|
||||||
|
|
||||||
ТекущийПараметр = Параметры[Н];
|
ТекущийПараметр = ОбработатьПараметр(Параметр);
|
||||||
|
ТекущийПараметр = OPI_Инструменты.JSONСтрокой(ТекущийПараметр, , Ложь);
|
||||||
|
|
||||||
ТекущийПараметр = ОбработатьПараметр(ТекущийПараметр);
|
Если СтрНачинаетсяС(ТекущийПараметр, "НЕ JSON") Тогда
|
||||||
|
ВызватьИсключение СтрШаблон("Ошибка валидации JSON параметра. Индекс массив %1", Счетчик);
|
||||||
|
Иначе
|
||||||
|
Параметры_.Добавить(ТекущийПараметр);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры[Н] = ТекущийПараметр;
|
Счетчик = Счетчик + 1;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Параметры_ = OPI_Инструменты.JSONСтрокой(Параметры, , Ложь);
|
|
||||||
|
|
||||||
Если СтрНачинаетсяС(Параметры_, "НЕ JSON") Тогда
|
|
||||||
ВызватьИсключение "Ошибка валидации JSON массива параметров!";
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Параметры_;
|
Возврат Параметры_;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
49
src/ru/OInt/core/Modules/OPI_PostgreSQL.os
vendored
49
src/ru/OInt/core/Modules/OPI_PostgreSQL.os
vendored
@@ -145,14 +145,6 @@
|
|||||||
, Знач Соединение = ""
|
, Знач Соединение = ""
|
||||||
, Знач Tls = "") Экспорт
|
, Знач Tls = "") Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
|
|
||||||
|
|
||||||
Параметры_ = ОбработатьПараметры(Параметры);
|
|
||||||
|
|
||||||
ТекстЗапроса = ПолучитьДвоичныеДанныеИзСтроки(ТекстЗапроса);
|
|
||||||
Параметры_ = ПолучитьДвоичныеДанныеИзСтроки(Параметры_);
|
|
||||||
|
|
||||||
Если ЭтоКоннектор(Соединение) Тогда
|
Если ЭтоКоннектор(Соединение) Тогда
|
||||||
ЗакрыватьСоединение = Ложь;
|
ЗакрыватьСоединение = Ложь;
|
||||||
Коннектор = Соединение;
|
Коннектор = Соединение;
|
||||||
@@ -165,15 +157,16 @@
|
|||||||
Возврат Коннектор;
|
Возврат Коннектор;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат = Коннектор.Execute(ТекстЗапроса, Параметры_, ФорсироватьРезультат);
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
|
||||||
Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
|
OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
|
||||||
|
|
||||||
|
Параметры_ = ОбработатьПараметры(Параметры);
|
||||||
|
Результат = OPI_ЗапросыSQL.ВыполнитьЗапросСОбработкой(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры_);
|
||||||
|
|
||||||
Если ЗакрыватьСоединение Тогда
|
Если ЗакрыватьСоединение Тогда
|
||||||
ЗакрытьСоединение(Коннектор);
|
ЗакрытьСоединение(Коннектор);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -575,32 +568,33 @@
|
|||||||
Функция ОбработатьПараметры(Знач Параметры)
|
Функция ОбработатьПараметры(Знач Параметры)
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Параметры) Тогда
|
Если Не ЗначениеЗаполнено(Параметры) Тогда
|
||||||
Возврат "[]";
|
Возврат Новый Массив;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Параметры_ = Новый Массив;
|
||||||
OPI_ПреобразованиеТипов.ПолучитьМассив(Параметры);
|
OPI_ПреобразованиеТипов.ПолучитьМассив(Параметры);
|
||||||
|
|
||||||
Для Н = 0 По Параметры.ВГраница() Цикл
|
Счетчик = 0;
|
||||||
|
Для Каждого Параметр Из Параметры Цикл
|
||||||
|
|
||||||
ТекущийПараметр = Параметры[Н];
|
ТекущийПараметр = ОбработатьПараметр(Параметр);
|
||||||
|
ТекущийПараметр = OPI_Инструменты.JSONСтрокой(ТекущийПараметр, , Ложь);
|
||||||
|
|
||||||
ТекущийПараметр = ОбработатьПараметр(ТекущийПараметр);
|
Если СтрНачинаетсяС(ТекущийПараметр, "НЕ JSON") Тогда
|
||||||
|
ВызватьИсключение СтрШаблон("Ошибка валидации JSON параметра. Индекс массив %1", Счетчик);
|
||||||
|
Иначе
|
||||||
|
Параметры_.Добавить(ТекущийПараметр);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры[Н] = ТекущийПараметр;
|
Счетчик = Счетчик + 1;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Параметры_ = OPI_Инструменты.JSONСтрокой(Параметры, , Ложь);
|
|
||||||
|
|
||||||
Если СтрНачинаетсяС(Параметры_, "НЕ JSON") Тогда
|
|
||||||
ВызватьИсключение "Ошибка валидации JSON массива параметров!";
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Параметры_;
|
Возврат Параметры_;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ОбработатьПараметр(ТекущийПараметр)
|
Функция ОбработатьПараметр(ТекущийПараметр, Вложенный = Ложь)
|
||||||
|
|
||||||
ТекущийТип = ТипЗнч(ТекущийПараметр);
|
ТекущийТип = ТипЗнч(ТекущийПараметр);
|
||||||
|
|
||||||
@@ -611,10 +605,12 @@
|
|||||||
ИначеЕсли ТекущийТип = Тип("УникальныйИдентификатор") Тогда
|
ИначеЕсли ТекущийТип = Тип("УникальныйИдентификатор") Тогда
|
||||||
|
|
||||||
ТекущийПараметр = Строка(ТекущийПараметр);
|
ТекущийПараметр = Строка(ТекущийПараметр);
|
||||||
|
ТекущийПараметр = ?(Вложенный, ТекущийПараметр, Новый Структура("UUID", ТекущийПараметр));
|
||||||
|
|
||||||
ИначеЕсли ТекущийТип = Тип("Дата") Тогда
|
ИначеЕсли ТекущийТип = Тип("Дата") Тогда
|
||||||
|
|
||||||
ТекущийПараметр = OPI_Инструменты.ДатаRFC3339(ТекущийПараметр);
|
ТекущийПараметр = OPI_Инструменты.ДатаRFC3339(ТекущийПараметр);
|
||||||
|
ТекущийПараметр = ?(Вложенный, ТекущийПараметр, Новый Структура("TIMESTAMP", ТекущийПараметр));
|
||||||
|
|
||||||
ИначеЕсли OPI_Инструменты.ПолеКоллекцииСуществует(ТекущийПараметр, "BYTEA") Тогда
|
ИначеЕсли OPI_Инструменты.ПолеКоллекцииСуществует(ТекущийПараметр, "BYTEA") Тогда
|
||||||
|
|
||||||
@@ -634,14 +630,17 @@
|
|||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекущийПараметр[ЭлементПараметра.Ключ] = ОбработатьПараметр(ТекущееЗначение);
|
ТекущийПараметр[ЭлементПараметра.Ключ] = ОбработатьПараметр(ТекущееЗначение, Истина);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
Если Не OPI_Инструменты.ЭтоПримитивныйТип(ТекущийПараметр) Тогда
|
Если Не OPI_Инструменты.ЭтоПримитивныйТип(ТекущийПараметр) Тогда
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПараметр);
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПараметр);
|
||||||
|
ТекущийПараметр = ?(Вложенный, ТекущийПараметр, Новый Структура("VARCHAR", ТекущийПараметр));
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
65
src/ru/OInt/tools/Modules/OPI_ЗапросыSQL.os
vendored
65
src/ru/OInt/tools/Modules/OPI_ЗапросыSQL.os
vendored
@@ -353,6 +353,28 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ВыполнитьЗапросСОбработкой(Коннектор, Знач ТекстЗапроса, Знач ФорсироватьРезультат, Знач Параметры) Экспорт
|
||||||
|
|
||||||
|
КлючЗапроса = Коннектор.InitQuery(ТекстЗапроса, ФорсироватьРезультат);
|
||||||
|
|
||||||
|
Для Каждого Параметр Из Параметры Цикл
|
||||||
|
|
||||||
|
Добавление = Коннектор.AddQueryParam(КлючЗапроса, Параметр);
|
||||||
|
Добавление = OPI_Инструменты.JsonВСтруктуру(Добавление);
|
||||||
|
|
||||||
|
Если Не Добавление["result"] Тогда
|
||||||
|
Возврат Добавление;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Результат = Коннектор.Execute(КлючЗапроса);
|
||||||
|
Результат = ОбработатьРезультатЗапроса(Коннектор, КлючЗапроса, Результат);
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -1211,6 +1233,45 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОбработатьРезультатЗапроса(Знач Коннектор, Знач КлючЗапроса, Знач Результат)
|
||||||
|
|
||||||
|
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||||
|
|
||||||
|
Если Результат["result"] Тогда
|
||||||
|
|
||||||
|
Если Не Результат["data"] Тогда
|
||||||
|
Результат.Удалить("data");
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КоличествоСтрок = Коннектор.GetQueryResultLength(КлючЗапроса);
|
||||||
|
|
||||||
|
Если Не ТипЗнч(КоличествоСтрок) = Тип("Число") Тогда
|
||||||
|
Возврат OPI_Инструменты.JsonВСтруктуру(КоличествоСтрок);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивСтрок = Новый Массив;
|
||||||
|
|
||||||
|
Для Н = 0 По КоличествоСтрок Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = Коннектор.GetQueryResultRow(КлючЗапроса, Н);
|
||||||
|
МассивСтрок.Добавить(ТекущаяСтрока);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если МассивСтрок.Количество() > 0 Тогда
|
||||||
|
ТекстJSON = СтрШаблон("[%1]", СтрСоединить(МассивСтрок, "," + Символы.ПС));
|
||||||
|
МассивСтрок = OPI_Инструменты.JSONВСтруктуру(ТекстJSON);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат.Вставить("data", МассивСтрок);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура РазделитьКоллекциюДанных(Знач Запись, МассивПолей, МассивЗначений)
|
Процедура РазделитьКоллекциюДанных(Знач Запись, МассивПолей, МассивЗначений)
|
||||||
|
|
||||||
ТекстОшибки = "Некорректный набор данных для обновления";
|
ТекстОшибки = "Некорректный набор данных для обновления";
|
||||||
@@ -1472,6 +1533,10 @@ Function GetRecordsFilterStrucutre(Val Clear = False) Export
|
|||||||
Return ПолучитьСтруктуруФильтраЗаписей(Clear);
|
Return ПолучитьСтруктуруФильтраЗаписей(Clear);
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function ExecuteQueryWithProcessing(Connector, Val QueryText, Val ForceResult, Val Parameters) Export
|
||||||
|
Return ВыполнитьЗапросСОбработкой(Connector, QueryText, ForceResult, Parameters);
|
||||||
|
EndFunction
|
||||||
|
|
||||||
Procedure AddColoumn(Scheme, Val Name, Val Type) Export
|
Procedure AddColoumn(Scheme, Val Name, Val Type) Export
|
||||||
ДобавитьКолонку(Scheme, Name, Type);
|
ДобавитьКолонку(Scheme, Name, Type);
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
Reference in New Issue
Block a user