1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-12-30 00:19:49 +02:00
Files
OpenIntegrations/docs/ru/md/PostgreSQL/Orm/Create-table.mdx
Vitaly the Alpaca (bot) c857b8ef96 Main build (Jenkins)
2025-12-08 15:07:25 +03:00

120 lines
7.8 KiB
Plaintext
Vendored

---
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 | Строка | ✔ | Имя таблицы |
| СтруктураКолонок | --cols | Структура Из КлючИЗначение | ✔ | Структура колонок: Ключ > имя, Значение > Тип данных |
| Соединение | --dbc | Строка, Произвольный | ✖ | Соединение или строка подключения |
| Tls | --tls | Структура Из КлючИЗначение | ✖ | Настройки 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
}
```