---
sidebar_position: 8
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
В результате изменения структуры таблицы данные могут быть утеряны! Рекомендуется предварительно опробовать данный метод на тестовых данных

Данная функция не обновляет тип данных существующих колонок
:::
<br/>


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

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

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

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

    СтруктураКолонок = Новый Структура;
    СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
    СтруктураКолонок.Вставить("uuid_field"     , "uuid");
    СтруктураКолонок.Вставить("bigint_field"   , "BIGINT");
    СтруктураКолонок.Вставить("custom_field"   , "TEXT");

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

 <Tabs>
  
    <TabItem value="bash" label="Bash" default>
        ```bash
            # JSON данные также могут быть переданы как путь к файлу .json
            
            oint postgres ГарантироватьТаблицу \
              --table "test_new" \
              --cols "{'smallint_field':'SMALLINT','uuid_field':'uuid','bigint_field':'BIGINT','custom_field':'TEXT'}" \
              --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 "test_new" ^
              --cols "{'smallint_field':'SMALLINT','uuid_field':'uuid','bigint_field':'BIGINT','custom_field':'TEXT'}" ^
              --dbc "postgresql://bayselonarrend:***@127.0.0.1:5432/" ^
              --tls "{'use_tls':true,'accept_invalid_certs':true}"
        ```
    </TabItem>
</Tabs>


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