---
sidebar_position: 5
description: Создать таблицу и другие функции для работы с PostgreSQL в Открытом пакете интеграций - бесплатной open-source библиотеке интеграций для 1С:Предприятие 8, OneScript и CLI
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, PostgreSQL]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Создать таблицу
 Создает пустую таблицу в базе



`Функция СоздатьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт`

  | Параметр | CLI опция | Тип | Обяз. | Назначение |
  |-|-|-|-|-|
  | Таблица | --table | Строка | &#x2714; | Имя таблицы |
  | СтруктураКолонок | --cols | Структура Из КлючИЗначение | &#x2714; | Структура колонок: Ключ > имя, Значение > Тип данных |
  | Соединение | --dbc | Строка, Произвольный | &#x2716; | Соединение или строка подключения |
  | Tls | --tls | Структура Из КлючИЗначение | &#x2716; | Настройки TLS, если необходимо. См. [`ПолучитьНастройкиTls`](/docs/PostgreSQL/Common-methods/Get-tls-settings) |

  
  Возвращаемое значение:   Соответствие Из КлючИЗначение - Результат выполнения запроса

:::tip
Список доступных типов описан на начальной странице документации библиотеки PostgreSQL
:::
<br/>


```bsl title="Пример использования для 1С:Предприятие/OneScript"
    Адрес  = "127.0.0.1";
    Логин  = "bayselonarrend";
    Пароль = "12we...";
    База   = "testbase1";

    TLS = Истина;
    Порт = 5432;
    СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);

    Если TLS Тогда
        НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
    Иначе
        НастройкиTLS = Неопределено;
    КонецЕсли;

    Таблица = "testtable";

    СтруктураКолонок = Новый Структура;
    СтруктураКолонок.Вставить("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");
    СтруктураКолонок.Вставить("numeric_field"    , "NUMERIC(15, 2)");

    // При использовании строки подключения инициализируется новое соединение,
    // которое будет закрыто после выполнения функции.
    // В случае выполнения нескольких операций желательно использовать одно соединение,
    // заранее созданное функцией ОткрытьСоединение()
    Результат = OPI_PostgreSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
```
    

 <Tabs>
  
    <TabItem value="bash" label="Bash" default>
        ```bash
            # JSON данные также могут быть переданы как путь к файлу .json
            
            oint postgres СоздатьТаблицу \
              --table "somename" \
              --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','numeric_field':'NUMERIC(15, 2)','wtf_field':'WTF'}" \
              --dbc "postgresql://bayselonarrend:***@127.0.0.1:5432/" \
              --tls "{'use_tls':true,'accept_invalid_certs':true}"
        ```
    </TabItem>
  
    <TabItem value="bat" label="CMD/Bat" default>
        ```batch
            :: JSON данные также могут быть переданы как путь к файлу .json
            
            oint postgres СоздатьТаблицу ^
              --table "somename" ^
              --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','numeric_field':'NUMERIC(15, 2)','wtf_field':'WTF'}" ^
              --dbc "postgresql://bayselonarrend:***@127.0.0.1:5432/" ^
              --tls "{'use_tls':true,'accept_invalid_certs':true}"
        ```
    </TabItem>
</Tabs>


```json title="Результат"
{
 "result": true
}
```
