1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-23 21:29:38 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot) 2025-02-11 14:50:59 +03:00
parent 55689caa16
commit 02af8cc7d4
37 changed files with 6791 additions and 6407 deletions

View File

@ -12,7 +12,7 @@
RecordStructure = New Structure;
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , 1));
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));

View File

@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Connection | --dbc | String, Arbitrary | &#x2716; | Connection or connection string |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Structure Of KeyAndValue - Result of query execution
<br/>

View File

@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Connection | --dbc | String, Arbitrary | &#x2716; | Connection or connection string |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Structure Of KeyAndValue - Result of query execution
<br/>

View File

@ -22,7 +22,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -0,0 +1,35 @@
---
sidebar_position: 4
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Get table column types
Gets an array of table column types
`Function GetTableColumnTypes(Val Table, Val Connection = "") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| Table | --table | String | &#x2714; | Table name |
| Connection | --dbc | String, Arbitrary | &#x2716; | Connection or connection string |
Returns: Array, Map Of KeyAndValue - Array of types or error information
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -0,0 +1,35 @@
---
sidebar_position: 12
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Normalise parameter set
Converts an array of parameter values into an array of description structures to be passed to the query
`Function NormaliseParameterSet(Val ValuesArray, Val TypesArray) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| ValuesArray | --values | Array Of Arbitrary | &#x2714; | Array of query parameter values |
| TypesArray | --types | Array Of String | &#x2714; | Array of column types. See GetTableColumnTypes |
Returns: Array Of Map - Normalised set of parameters for a query
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - Result of query execution
Returns: Map Of KeyAndValue - Result of query execution
<br/>

View File

@ -12,7 +12,7 @@
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
СтруктураЗаписи.Вставить("char_field" , Новый Структура("OLDCHAR" , "A"));
СтруктураЗаписи.Вставить("char_field" , Новый Структура("OLDCHAR" , 1));
СтруктураЗаписи.Вставить("smallint_field", Новый Структура("SMALLINT" , 5));
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));

View File

@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --dbc | Строка, Произвольный | &#x2716; | Соединение или строка подключения |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Структура Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --dbc | Строка, Произвольный | &#x2716; | Соединение или строка подключения |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Структура Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -22,7 +22,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -0,0 +1,35 @@
---
sidebar_position: 4
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить типы колонок таблицы
Получает массив типов колонок таблицы
`Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Таблица | --table | Строка | &#x2714; | Имя таблицы |
| Соединение | --dbc | Строка, Произвольный | &#x2716; | Соединение или строка подключения |
Возвращаемое значение: Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

View File

@ -0,0 +1,35 @@
---
sidebar_position: 12
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Нормализовать набор параметров
Преобразует массив значений параметров в массив структур описаний для передачи в запрос
`Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| МассивЗначений | --values | Массив Из Произвольный | &#x2714; | Массив значений параметров запроса |
| МассивТипов | --types | Массив Из Строка | &#x2714; | Массив типов колонок. См. ПолучитьТипыКолонокТаблицы |
Возвращаемое значение: Массив Из Соответствие - Нормализованный набор параметров для запроса
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
<br/>

File diff suppressed because it is too large Load Diff

View File

@ -38,6 +38,7 @@
//@skip-check wrong-string-literal-content
//@skip-check method-too-many-params
//@skip-check constructor-function-return-section
//@skip-check doc-comment-collection-item-type
// Uncomment if OneScript is executed
#Use "../../tools"
@ -195,7 +196,7 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function CreateDatabase(Val Base, Val Connection = "") Export
Result = OPI_SQLQueries.CreateDatabase(OPI_PostgreSQL, Base, Connection);
@ -211,7 +212,7 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function DropDatabase(Val Base, Val Connection = "") Export
Result = OPI_SQLQueries.DropDatabase(OPI_PostgreSQL, Base, Connection);
@ -227,12 +228,12 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
TextSQL = "SELECT column_name, data_type, character_maximum_length
TextSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
@ -244,6 +245,44 @@ Function GetTableInformation(Val Table, Val Connection = "") Export
EndFunction
// Get table column types
// Gets an array of table column types
//
// Parameters:
// Table - String - Table name - table
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Array, Map Of KeyAndValue - Array of types or error information
Function GetTableColumnTypes(Val Table, Val Connection = "") Export
TableInformation = GetTableInformation(Table, Connection);
If Not TableInformation["result"] Then
Return TableInformation;
EndIf;
TypesArray = New Array;
For Each Coloumn In TableInformation Do
CurrentType = Coloumn["data_type"];
CurrentType = String(Upper(CurrentType));
CurrentType = StrReplace(CurrentType, " " , "_");
CurrentType = StrReplace(CurrentType, """CHAR""", "OLDCHAR");
If StrStartsWith(CurrentType, "CHAR") Then
CurrentType = "CHAR";
EndIf;
TypesArray.Add(CurrentType);
EndDo;
Return TypesArray;
EndFunction
// Create table
// Creates an empty table in the database
//
@ -253,7 +292,7 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
Result = OPI_SQLQueries.CreateTable(OPI_PostgreSQL, Table, ColoumnsStruct, Connection);
@ -377,6 +416,49 @@ Function ClearTable(Val Table, Val Connection = "") Export
EndFunction
// Normalise parameter set
// Converts an array of parameter values into an array of description structures to be passed to the query
//
// Parameters:
// ValuesArray - Array Of Arbitrary - Array of query parameter values - values
// TypesArray - Array Of String - Array of column types. See GetTableColumnTypes - types
//
// Returns:
// Array Of Map - Normalised set of parameters for a query
Function NormaliseParameterSet(Val ValuesArray, Val TypesArray) Export
OPI_TypeConversion.GetArray(ValuesArray);
OPI_TypeConversion.GetArray(TypesArray);
TypesMap = GetTypesMap();
ResultingArray = New Array;
TypesBound = TypesArray.UBound();
For N = 0 To ValuesArray.UBound() Do
If N > TypesBound Then
Break;
EndIf;
CurrentType = Upper(TypesArray[N]);
CurrentValue = ValuesArray[N];
TypeDescription = TypesMap.Get(CurrentType);
If TypeDescription <> Undefined Then
CurrentValue = TypeDescription.AdjustValue(CurrentValue);
EndIf;
CurrentDescription = New Map;
CurrentDescription.Insert(CurrentType, CurrentValue);
ResultingArray.Add(CurrentDescription);
EndDo;
Return ResultingArray;
EndFunction
// Get records filter strucutre
// Gets the template structure for filtering records in ORM queries
//
@ -505,4 +587,44 @@ Function ProcessBlobStructure(Val Value)
EndFunction
Function GetTypesMap()
DescriptionBool = New TypeDescription("Boolean");
DescriptionOldchar = New TypeDescription("Number", , , New NumberQualifiers(1, 0, AllowedSign.Nonnegative));
DescriptionI = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Any));
DescriptionU = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Nonnegative));
DescriptionF = New TypeDescription("Number", , , New NumberQualifiers(, , AllowedSign.Any));
DescriptionString = New TypeDescription("String");
TypesMap = New Map();
TypesMap.Insert("BOOL" , DescriptionBool);
TypesMap.Insert("""CHAR""" , DescriptionOldchar);
TypesMap.Insert("OLDCHAR" , DescriptionOldchar);
TypesMap.Insert("SMALLINT" , DescriptionI);
TypesMap.Insert("SMALLSERIAL" , DescriptionI);
TypesMap.Insert("INT" , DescriptionI);
TypesMap.Insert("SERIAL" , DescriptionI);
TypesMap.Insert("BIGINT" , DescriptionI);
TypesMap.Insert("BIGSERIAL" , DescriptionI);
TypesMap.Insert("TIMESTAMP" , DescriptionI);
TypesMap.Insert("TIMESTAMP WITH TIME ZONE", DescriptionI);
TypesMap.Insert("TIMESTAMP_WITH_TIME_ZONE", DescriptionI);
TypesMap.Insert("OID" , DescriptionU);
TypesMap.Insert("REAL" , DescriptionF);
TypesMap.Insert("DOUBLE PRECISION" , DescriptionF);
TypesMap.Insert("DOUBLE_PRECISION" , DescriptionF);
TypesMap.Insert("VARCHAR" , DescriptionString);
TypesMap.Insert("TEXT" , DescriptionString);
TypesMap.Insert("CHAR" , DescriptionString);
TypesMap.Insert("CITEXT" , DescriptionString);
TypesMap.Insert("NAME" , DescriptionString);
TypesMap.Insert("LTREE" , DescriptionString);
TypesMap.Insert("LQUERY" , DescriptionString);
TypesMap.Insert("LTXTQUERY" , DescriptionString);
TypesMap.Insert("INET" , DescriptionString);
Return TypesMap;
EndFunction
#EndRegion

View File

@ -165,7 +165,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
@ -188,7 +188,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);
@ -209,7 +209,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function AddRecords(Val Table, Val DataArray, Val Transaction = True, Val Connection = "") Export
Result = OPI_SQLQueries.AddRecords(OPI_SQLite, Table, DataArray, Transaction, Connection);
@ -232,7 +232,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function GetRecords(Val Table
, Val Fields = "*"
, Val Filters = ""
@ -255,7 +255,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Connection = "") Export
Result = OPI_SQLQueries.UpdateRecords(OPI_SQLite, Table, ValueStructure, Filters, Connection);
@ -272,7 +272,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection);
@ -288,7 +288,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function DeleteTable(Val Table, Val Connection = "") Export
Result = OPI_SQLQueries.DeleteTable(OPI_SQLite, Table, Connection);
@ -304,7 +304,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function ClearTable(Val Table, Val Connection = "") Export
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, , Connection);

View File

@ -17386,7 +17386,7 @@ Procedure PostgreSQL_GetTableInformation(FunctionParameters)
// END
OPI_TestDataRetrieval.WriteLog(Result, "AddRecords", "PostgreSQL");
OPI_TestDataRetrieval.WriteLog(Result, "GetTableInformation", "PostgreSQL");
OPI_TestDataRetrieval.Check_ResultTrue(Result);
EndProcedure
@ -17407,7 +17407,7 @@ Procedure PostgreSQL_AddRecords(FunctionParameters)
RecordStructure = New Structure;
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , 1));
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));

View File

@ -38,6 +38,7 @@
//@skip-check wrong-string-literal-content
//@skip-check method-too-many-params
//@skip-check constructor-function-return-section
//@skip-check doc-comment-collection-item-type
// Uncomment if OneScript is executed
// #Use "../../tools"
@ -195,7 +196,7 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function CreateDatabase(Val Base, Val Connection = "") Export
Result = OPI_SQLQueries.CreateDatabase(OPI_PostgreSQL, Base, Connection);
@ -211,7 +212,7 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function DropDatabase(Val Base, Val Connection = "") Export
Result = OPI_SQLQueries.DropDatabase(OPI_PostgreSQL, Base, Connection);
@ -227,12 +228,12 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
TextSQL = "SELECT column_name, data_type, character_maximum_length
TextSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
@ -244,6 +245,44 @@ Function GetTableInformation(Val Table, Val Connection = "") Export
EndFunction
// Get table column types
// Gets an array of table column types
//
// Parameters:
// Table - String - Table name - table
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Array, Map Of KeyAndValue - Array of types or error information
Function GetTableColumnTypes(Val Table, Val Connection = "") Export
TableInformation = GetTableInformation(Table, Connection);
If Not TableInformation["result"] Then
Return TableInformation;
EndIf;
TypesArray = New Array;
For Each Coloumn In TableInformation Do
CurrentType = Coloumn["data_type"];
CurrentType = String(Upper(CurrentType));
CurrentType = StrReplace(CurrentType, " " , "_");
CurrentType = StrReplace(CurrentType, """CHAR""", "OLDCHAR");
If StrStartsWith(CurrentType, "CHAR") Then
CurrentType = "CHAR";
EndIf;
TypesArray.Add(CurrentType);
EndDo;
Return TypesArray;
EndFunction
// Create table
// Creates an empty table in the database
//
@ -253,7 +292,7 @@ EndFunction
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Structure Of KeyAndValue - Result of query execution
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
Result = OPI_SQLQueries.CreateTable(OPI_PostgreSQL, Table, ColoumnsStruct, Connection);
@ -377,6 +416,49 @@ Function ClearTable(Val Table, Val Connection = "") Export
EndFunction
// Normalise parameter set
// Converts an array of parameter values into an array of description structures to be passed to the query
//
// Parameters:
// ValuesArray - Array Of Arbitrary - Array of query parameter values - values
// TypesArray - Array Of String - Array of column types. See GetTableColumnTypes - types
//
// Returns:
// Array Of Map - Normalised set of parameters for a query
Function NormaliseParameterSet(Val ValuesArray, Val TypesArray) Export
OPI_TypeConversion.GetArray(ValuesArray);
OPI_TypeConversion.GetArray(TypesArray);
TypesMap = GetTypesMap();
ResultingArray = New Array;
TypesBound = TypesArray.UBound();
For N = 0 To ValuesArray.UBound() Do
If N > TypesBound Then
Break;
EndIf;
CurrentType = Upper(TypesArray[N]);
CurrentValue = ValuesArray[N];
TypeDescription = TypesMap.Get(CurrentType);
If TypeDescription <> Undefined Then
CurrentValue = TypeDescription.AdjustValue(CurrentValue);
EndIf;
CurrentDescription = New Map;
CurrentDescription.Insert(CurrentType, CurrentValue);
ResultingArray.Add(CurrentDescription);
EndDo;
Return ResultingArray;
EndFunction
// Get records filter strucutre
// Gets the template structure for filtering records in ORM queries
//
@ -505,4 +587,44 @@ Function ProcessBlobStructure(Val Value)
EndFunction
Function GetTypesMap()
DescriptionBool = New TypeDescription("Boolean");
DescriptionOldchar = New TypeDescription("Number", , , New NumberQualifiers(1, 0, AllowedSign.Nonnegative));
DescriptionI = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Any));
DescriptionU = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Nonnegative));
DescriptionF = New TypeDescription("Number", , , New NumberQualifiers(, , AllowedSign.Any));
DescriptionString = New TypeDescription("String");
TypesMap = New Map();
TypesMap.Insert("BOOL" , DescriptionBool);
TypesMap.Insert("""CHAR""" , DescriptionOldchar);
TypesMap.Insert("OLDCHAR" , DescriptionOldchar);
TypesMap.Insert("SMALLINT" , DescriptionI);
TypesMap.Insert("SMALLSERIAL" , DescriptionI);
TypesMap.Insert("INT" , DescriptionI);
TypesMap.Insert("SERIAL" , DescriptionI);
TypesMap.Insert("BIGINT" , DescriptionI);
TypesMap.Insert("BIGSERIAL" , DescriptionI);
TypesMap.Insert("TIMESTAMP" , DescriptionI);
TypesMap.Insert("TIMESTAMP WITH TIME ZONE", DescriptionI);
TypesMap.Insert("TIMESTAMP_WITH_TIME_ZONE", DescriptionI);
TypesMap.Insert("OID" , DescriptionU);
TypesMap.Insert("REAL" , DescriptionF);
TypesMap.Insert("DOUBLE PRECISION" , DescriptionF);
TypesMap.Insert("DOUBLE_PRECISION" , DescriptionF);
TypesMap.Insert("VARCHAR" , DescriptionString);
TypesMap.Insert("TEXT" , DescriptionString);
TypesMap.Insert("CHAR" , DescriptionString);
TypesMap.Insert("CITEXT" , DescriptionString);
TypesMap.Insert("NAME" , DescriptionString);
TypesMap.Insert("LTREE" , DescriptionString);
TypesMap.Insert("LQUERY" , DescriptionString);
TypesMap.Insert("LTXTQUERY" , DescriptionString);
TypesMap.Insert("INET" , DescriptionString);
Return TypesMap;
EndFunction
#EndRegion

View File

@ -165,7 +165,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
@ -188,7 +188,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);
@ -209,7 +209,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function AddRecords(Val Table, Val DataArray, Val Transaction = True, Val Connection = "") Export
Result = OPI_SQLQueries.AddRecords(OPI_SQLite, Table, DataArray, Transaction, Connection);
@ -232,7 +232,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function GetRecords(Val Table
, Val Fields = "*"
, Val Filters = ""
@ -255,7 +255,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Connection = "") Export
Result = OPI_SQLQueries.UpdateRecords(OPI_SQLite, Table, ValueStructure, Filters, Connection);
@ -272,7 +272,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection);
@ -288,7 +288,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function DeleteTable(Val Table, Val Connection = "") Export
Result = OPI_SQLQueries.DeleteTable(OPI_SQLite, Table, Connection);
@ -304,7 +304,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
// Map Of KeyAndValue - Result of query execution
Function ClearTable(Val Table, Val Connection = "") Export
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, , Connection);

View File

@ -17386,7 +17386,7 @@ Procedure PostgreSQL_GetTableInformation(FunctionParameters)
// END
OPI_TestDataRetrieval.WriteLog(Result, "AddRecords", "PostgreSQL");
OPI_TestDataRetrieval.WriteLog(Result, "GetTableInformation", "PostgreSQL");
OPI_TestDataRetrieval.Check_ResultTrue(Result);
EndProcedure
@ -17407,7 +17407,7 @@ Procedure PostgreSQL_AddRecords(FunctionParameters)
RecordStructure = New Structure;
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , 1));
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));

View File

@ -233,7 +233,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
@ -247,7 +247,7 @@
// Получить типы колонок таблицы
// Получает массив типов колонок таблицы
//
//
// Параметры:
// Таблица - Строка - Имя таблицы - table
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
@ -255,32 +255,32 @@
// Возвращаемое значение:
// Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
Если Не ИнформацияОТаблице["result"] Тогда
Возврат ИнформацияОТаблице;
КонецЕсли;
МассивТипов = Новый Массив;
Для Каждого Колонка Из ИнформацияОТаблице Цикл
ТекущийТип = Колонка["data_type"];
ТекущийТип = Строка(вРег(ТекущийТип));
ТекущийТип = СтрЗаменить(ТекущийТип, " ", "_");
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
ТекущийТип = "CHAR";
КонецЕсли;
МассивТипов.Добавить(ТекущийТип);
КонецЦикла;
Возврат МассивТипов;
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
Если Не ИнформацияОТаблице["result"] Тогда
Возврат ИнформацияОТаблице;
КонецЕсли;
МассивТипов = Новый Массив;
Для Каждого Колонка Из ИнформацияОТаблице Цикл
ТекущийТип = Колонка["data_type"];
ТекущийТип = Строка(вРег(ТекущийТип));
ТекущийТип = СтрЗаменить(ТекущийТип, " " , "_");
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
ТекущийТип = "CHAR";
КонецЕсли;
МассивТипов.Добавить(ТекущийТип);
КонецЦикла;
Возврат МассивТипов;
КонецФункции
// Создать таблицу
@ -418,45 +418,45 @@
// Нормализовать набор параметров
// Преобразует массив значений параметров в массив структур описаний для передачи в запрос
//
//
// Параметры:
// МассивЗначений - Массив Из Произвольный - Массив значений параметров запроса - values
// МассивТипов - Массив Из Строка - Массив типов колонок. См. ПолучитьТипыКолонокТаблицы - types
//
//
// Возвращаемое значение:
// Массив Из Соответствие - Нормализованный набор параметров для запроса
Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
СоответствиеТипов = ПолучитьСоответствиеТипов();
ИтоговыйМассив = Новый Массив;
ГраницаТипов = МассивТипов.ВГраница();
Для Н = 0 По МассивЗначений.ВГраница() Цикл
Если Н > ГраницаТипов Тогда
Прервать;
Конецесли;
ТекущийТип = вРег(МассивТипов[Н]);
ТекущееЗначение = МассивЗначений[Н];
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
Если ОписаниеТипа <> Неопределено Тогда
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
КонецЕсли;
ТекущееОписание = Новый Соответствие;
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
ИтоговыйМассив.Добавить(ТекущееОписание);
КонецЦикла;
Возврат ИтоговыйМассив;
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
СоответствиеТипов = ПолучитьСоответствиеТипов();
ИтоговыйМассив = Новый Массив;
ГраницаТипов = МассивТипов.ВГраница();
Для Н = 0 По МассивЗначений.ВГраница() Цикл
Если Н > ГраницаТипов Тогда
Прервать;
Конецесли;
ТекущийТип = вРег(МассивТипов[Н]);
ТекущееЗначение = МассивЗначений[Н];
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
Если ОписаниеТипа <> Неопределено Тогда
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
КонецЕсли;
ТекущееОписание = Новый Соответствие;
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
ИтоговыйМассив.Добавить(ТекущееОписание);
КонецЦикла;
Возврат ИтоговыйМассив;
КонецФункции
// Получить структуру фильтра записей
@ -588,43 +588,43 @@
КонецФункции
Функция ПолучитьСоответствиеТипов()
ОписаниеBool = Новый ОписаниеТипов("Булево");
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
ОписаниеString = Новый ОписаниеТипов("Строка");
СоответствиеТипов = Новый Соответствие();
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("INT" , ОписаниеI);
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
СоответствиеТипов.Вставить("OID" , ОписаниеU);
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("INET" , ОписаниеString);
Возврат СоответствиеТипов;
ОписаниеBool = Новый ОписаниеТипов("Булево");
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
ОписаниеString = Новый ОписаниеТипов("Строка");
СоответствиеТипов = Новый Соответствие();
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("INT" , ОписаниеI);
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
СоответствиеТипов.Вставить("OID" , ОписаниеU);
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("INET" , ОписаниеString);
Возврат СоответствиеТипов;
КонецФункции
#КонецОбласти

View File

@ -2148,9 +2148,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -233,7 +233,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
@ -247,7 +247,7 @@
// Получить типы колонок таблицы
// Получает массив типов колонок таблицы
//
//
// Параметры:
// Таблица - Строка - Имя таблицы - table
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
@ -255,32 +255,32 @@
// Возвращаемое значение:
// Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
Если Не ИнформацияОТаблице["result"] Тогда
Возврат ИнформацияОТаблице;
КонецЕсли;
МассивТипов = Новый Массив;
Для Каждого Колонка Из ИнформацияОТаблице Цикл
ТекущийТип = Колонка["data_type"];
ТекущийТип = Строка(вРег(ТекущийТип));
ТекущийТип = СтрЗаменить(ТекущийТип, " ", "_");
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
ТекущийТип = "CHAR";
КонецЕсли;
МассивТипов.Добавить(ТекущийТип);
КонецЦикла;
Возврат МассивТипов;
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
Если Не ИнформацияОТаблице["result"] Тогда
Возврат ИнформацияОТаблице;
КонецЕсли;
МассивТипов = Новый Массив;
Для Каждого Колонка Из ИнформацияОТаблице Цикл
ТекущийТип = Колонка["data_type"];
ТекущийТип = Строка(вРег(ТекущийТип));
ТекущийТип = СтрЗаменить(ТекущийТип, " " , "_");
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
ТекущийТип = "CHAR";
КонецЕсли;
МассивТипов.Добавить(ТекущийТип);
КонецЦикла;
Возврат МассивТипов;
КонецФункции
// Создать таблицу
@ -418,45 +418,45 @@
// Нормализовать набор параметров
// Преобразует массив значений параметров в массив структур описаний для передачи в запрос
//
//
// Параметры:
// МассивЗначений - Массив Из Произвольный - Массив значений параметров запроса - values
// МассивТипов - Массив Из Строка - Массив типов колонок. См. ПолучитьТипыКолонокТаблицы - types
//
//
// Возвращаемое значение:
// Массив Из Соответствие - Нормализованный набор параметров для запроса
Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
СоответствиеТипов = ПолучитьСоответствиеТипов();
ИтоговыйМассив = Новый Массив;
ГраницаТипов = МассивТипов.ВГраница();
Для Н = 0 По МассивЗначений.ВГраница() Цикл
Если Н > ГраницаТипов Тогда
Прервать;
Конецесли;
ТекущийТип = вРег(МассивТипов[Н]);
ТекущееЗначение = МассивЗначений[Н];
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
Если ОписаниеТипа <> Неопределено Тогда
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
КонецЕсли;
ТекущееОписание = Новый Соответствие;
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
ИтоговыйМассив.Добавить(ТекущееОписание);
КонецЦикла;
Возврат ИтоговыйМассив;
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
СоответствиеТипов = ПолучитьСоответствиеТипов();
ИтоговыйМассив = Новый Массив;
ГраницаТипов = МассивТипов.ВГраница();
Для Н = 0 По МассивЗначений.ВГраница() Цикл
Если Н > ГраницаТипов Тогда
Прервать;
Конецесли;
ТекущийТип = вРег(МассивТипов[Н]);
ТекущееЗначение = МассивЗначений[Н];
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
Если ОписаниеТипа <> Неопределено Тогда
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
КонецЕсли;
ТекущееОписание = Новый Соответствие;
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
ИтоговыйМассив.Добавить(ТекущееОписание);
КонецЦикла;
Возврат ИтоговыйМассив;
КонецФункции
// Получить структуру фильтра записей
@ -588,43 +588,43 @@
КонецФункции
Функция ПолучитьСоответствиеТипов()
ОписаниеBool = Новый ОписаниеТипов("Булево");
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
ОписаниеString = Новый ОписаниеТипов("Строка");
СоответствиеТипов = Новый Соответствие();
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("INT" , ОписаниеI);
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
СоответствиеТипов.Вставить("OID" , ОписаниеU);
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("INET" , ОписаниеString);
Возврат СоответствиеТипов;
ОписаниеBool = Новый ОписаниеТипов("Булево");
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
ОписаниеString = Новый ОписаниеТипов("Строка");
СоответствиеТипов = Новый Соответствие();
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("INT" , ОписаниеI);
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
СоответствиеТипов.Вставить("OID" , ОписаниеU);
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
СоответствиеТипов.Вставить("INET" , ОписаниеString);
Возврат СоответствиеТипов;
КонецФункции
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License