--- sidebar_position: 5 description: Create table and other functions to work with PostgreSQL in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, PostgreSQL] --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; # Create table Creates an empty table in the database `Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "", Val Tls = "") Export` | Parameter | CLI option | Type | Required | Description | |-|-|-|-|-| | Table | --table | String | ✔ | Table name | | ColoumnsStruct | --cols | Structure Of KeyAndValue | ✔ | Column structure: Key > Name, Value > Data type | | Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string | | Tls | --tls | Structure Of KeyAndValue | ✖ | TLS settings, if necessary. See GetTlsSettings | Returns: Map Of KeyAndValue - Result of query execution
:::tip The list of available types is described on the initial page of the PostgreSQL library documentation :::
```bsl title="1C:Enterprise/OneScript code example" Address = "127.0.0.1"; Login = "bayselonarrend"; Password = "12we..."; Base = "testbase1"; ConnectionString = OPI_PostgreSQL.GenerateConnectionString(Address, Base, Login, Password); Table = "testtable"; ColoumnsStruct = New Structure; ColoumnsStruct.Insert("bool_field" , "BOOL"); ColoumnsStruct.Insert("oldchar_field" , """char"""); ColoumnsStruct.Insert("smallint_field" , "SMALLINT"); ColoumnsStruct.Insert("smallserial_field", "SMALLSERIAL"); ColoumnsStruct.Insert("int_field" , "INT"); ColoumnsStruct.Insert("serial_field" , "SERIAL"); ColoumnsStruct.Insert("oid_field" , "OID"); ColoumnsStruct.Insert("bigint_field" , "BIGINT"); ColoumnsStruct.Insert("bigserial_field" , "BIGSERIAL"); ColoumnsStruct.Insert("real_field" , "REAL"); ColoumnsStruct.Insert("dp_field" , "DOUBLE PRECISION"); ColoumnsStruct.Insert("text_field" , "TEXT"); ColoumnsStruct.Insert("varchar_field" , "VARCHAR"); ColoumnsStruct.Insert("charn_field" , "CHAR(3)"); ColoumnsStruct.Insert("char_field" , "CHAR"); ColoumnsStruct.Insert("name_field" , "NAME"); ColoumnsStruct.Insert("bytea_field" , "BYTEA"); ColoumnsStruct.Insert("ts_field" , "TIMESTAMP"); ColoumnsStruct.Insert("tswtz_field" , "TIMESTAMP WITH TIME ZONE"); ColoumnsStruct.Insert("ip_field" , "INET"); ColoumnsStruct.Insert("json_field" , "JSON"); ColoumnsStruct.Insert("jsonb_field" , "JSONB"); ColoumnsStruct.Insert("date_field" , "DATE"); ColoumnsStruct.Insert("time_field" , "TIME"); ColoumnsStruct.Insert("uuid_field" , "UUID"); // When using the connection string, a new connection is initialised, // which will be closed after the function is executed. // If several operations are performed, it is desirable to use one connection, // previously created by the CreateConnection function() Result = OPI_PostgreSQL.CreateTable(Table, ColoumnsStruct, ConnectionString); ``` ```bash # JSON data can also be passed as a path to a .json file oint postgres CreateTable \ --table "testtable" \ --cols "{'bool_field':'BOOL','oldchar_field':'\"char\"','smallint_field':'SMALLINT','smallserial_field':'SMALLSERIAL','int_field':'INT','serial_field':'SERIAL','oid_field':'OID','bigint_field':'BIGINT','bigserial_field':'BIGSERIAL','real_field':'REAL','dp_field':'DOUBLE PRECISION','text_field':'TEXT','varchar_field':'VARCHAR','charn_field':'CHAR(3)','char_field':'CHAR','name_field':'NAME','bytea_field':'BYTEA','ts_field':'TIMESTAMP','tswtz_field':'TIMESTAMP WITH TIME ZONE','ip_field':'INET','json_field':'JSON','jsonb_field':'JSONB','date_field':'DATE','time_field':'TIME','uuid_field':'UUID'}" \ --dbc "postgresql://bayselonarrend:***@127.0.0.1:5432/" ``` ```batch :: JSON data can also be passed as a path to a .json file oint postgres CreateTable ^ --table "testtable" ^ --cols "{'bool_field':'BOOL','oldchar_field':'\"char\"','smallint_field':'SMALLINT','smallserial_field':'SMALLSERIAL','int_field':'INT','serial_field':'SERIAL','oid_field':'OID','bigint_field':'BIGINT','bigserial_field':'BIGSERIAL','real_field':'REAL','dp_field':'DOUBLE PRECISION','text_field':'TEXT','varchar_field':'VARCHAR','charn_field':'CHAR(3)','char_field':'CHAR','name_field':'NAME','bytea_field':'BYTEA','ts_field':'TIMESTAMP','tswtz_field':'TIMESTAMP WITH TIME ZONE','ip_field':'INET','json_field':'JSON','jsonb_field':'JSONB','date_field':'DATE','time_field':'TIME','uuid_field':'UUID'}" ^ --dbc "postgresql://bayselonarrend:***@127.0.0.1:5432/" ``` ```json title="Result" { "result": true } ```