Есть некая база на PostgreSQL

Как програмным кодом сделать запись в таблицу этой базы.

Из 1с подключаюсь к базе без проблем;

```1c
    ConnectionString = ПолучитьСтрокуПодключения();

    АДОСоединение = Новый COMОбъект("ADODB.CONNECTION");
    АДОСоединение.Provider = "MSDASQL.1";
    АДОСоединение.ConnectionString = ConnectionString;
    Попытка
    АДОСоединение.Open();
    Сообщить("Подключение к базе данных установленно");
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
```

Дальше пробую добавить запись в таблицу

```1c
    СтрокаКоманды = строка("INS ERT IN TO documents (number, date) VALUES ('4516', '2020-10-01');");
    АДОСоединение.CommandText = СтрокаКоманды;
    АДОСоединение.Execute();
```

но при исполнении команды "АДОСоединение.CommandText = СтрокаКоманды" получаю ошибку: "нет поименованных аргументов"

Если туже команду "INS ERT IN TO documents (number, date) VALUES ('4516', '2020-10-01');" запустить из запросника pgAdmin то запись в таблицу добавляется
---
Разобрался.
Нужно было создавать новый объкт не через "Новый COMОбъект", а через "Новый ComObject"

Вот робочий код;
Добавление

```1c
    Соединение = Новый ComObject("ADODB.Connection");
    Соединение.Open(ПолучитьСтрокуПодключения());
    Команда = Новый ComObject("ADODB.Command");
    Команда.ActiveConnection = Соединение;
    Команда.CommandText = "INS ERT INTO documents (number, date) VALUES ('4516', '2020-10-01');"; // код SQL запроса
    Записи = Команда.Execute();
```

Чтение

```1c
    Соединение = Новый ComObject("ADODB.Connection");
    Соединение.Open(ПолучитьСтрокуПодключения());
    Команда = Новый ComObject("ADODB.Command");
    Команда.ActiveConnection = Соединение;
    Команда.CommandText = "sel ect * fr om doсuments";

    НаборЗаписей = Новый ComObject("ADODB.RecordSet");
    НаборЗаписей = Команда.Execute();

    ВременнаяТаблица = Новый ТаблицаЗначений;
    Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count - 1 Цикл // добавляем имена колонок из таблицы SQL
    ИмяСтолбца = НаборЗаписей.Fields.Item(НомерСтолбца).Name;
    ВременнаяТаблица.Колонки.Добавить(ИмяСтолбца);
    КонецЦикла;

    Пока НЕ НаборЗаписей.EOF Цикл // заполняем нашу таблицу значений данными из запроса SQL
    НоваяСтрока = ВременнаяТаблица.Добавить();
    Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count-1 Цикл
    НоваяСтрока.Установить(НомерСтолбца, СокрЛП(НаборЗаписей.Fields(НомерСтолбца).Val ue));
    КонецЦикла;

    НаборЗаписей.MoveNext();
    КонецЦикла;
```

P.S. и обязательно перед использованим прочитать https://life1c.ru/post/2051
---
Вы уверены, что с помощью указанного провайдера ADO вы можете без проблем работать с PostgreSQL?
Вот здесь так не думают.
---
судя по этой статье
http://1clancer.ru/article/pryamye_zaprosy_iz_1s_k_baze_na_postgresql_757
то, да возможно
---
через pgAdmin вы работаете со слоном

подозреваю, что ошибка в коде

https://life1c.ru/post/2051

возможно поможет
---
чтото помогло но не совсем.
исправил код на

```1c
    ConnectionString = ПолучитьСтрокуПодключения();
    Connection = Новый COMОбъект("ADODB.CONNECTION");
    Connection.Provider = "MSDASQL.1";
    Connection.ConnectionString = ConnectionString;
    Попытка
    Connection.Open();
    Сообщить("Подключение к базе данных установлено");
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;

    Команда = Новый COMОбъект("ADODB.Command");
    Попытка
    Команда.ActiveConnection = Connection;
    СтрокаКоманды = строка("INS ERT IN TO dokuments (number, date) VALUES ('4516', '2020-10-01');");
    Команда.CommandText = СтрокаКоманды;
    Команда.Execute();
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
```

Ошибка: "Ощибка при методе контекста Execute"
---
INS ERT IN TO dokuments

 INS ERT IN TO documents
---
наверное скрипты инфостарта по замене текста ))))
---
Разобрался.
Нужно было создавать новый объкт не через "Новый COMОбъект", а через "Новый ComObject"

Вот робочий код;
Добавление

```1c
    Соединение = Новый ComObject("ADODB.Connection");
    Соединение.Open(ПолучитьСтрокуПодключения());
    Команда = Новый ComObject("ADODB.Command");
    Команда.ActiveConnection = Соединение;
    Команда.CommandText = "INS ERT INTO documents (number, date) VALUES ('4516', '2020-10-01');"; // код SQL запроса
    Записи = Команда.Execute();
```

Чтение

```1c
    Соединение = Новый ComObject("ADODB.Connection");
    Соединение.Open(ПолучитьСтрокуПодключения());
    Команда = Новый ComObject("ADODB.Command");
    Команда.ActiveConnection = Соединение;
    Команда.CommandText = "sel ect * fr om doсuments";

    НаборЗаписей = Новый ComObject("ADODB.RecordSet");
    НаборЗаписей = Команда.Execute();

    ВременнаяТаблица = Новый ТаблицаЗначений;
    Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count - 1 Цикл // добавляем имена колонок из таблицы SQL
    ИмяСтолбца = НаборЗаписей.Fields.Item(НомерСтолбца).Name;
    ВременнаяТаблица.Колонки.Добавить(ИмяСтолбца);
    КонецЦикла;

    Пока НЕ НаборЗаписей.EOF Цикл // заполняем нашу таблицу значений данными из запроса SQL
    НоваяСтрока = ВременнаяТаблица.Добавить();
    Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count-1 Цикл
    НоваяСтрока.Установить(НомерСтолбца, СокрЛП(НаборЗаписей.Fields(НомерСтолбца).Val ue));
    КонецЦикла;

    НаборЗаписей.MoveNext();
    КонецЦикла;
```

P.S. и обязательно перед использованим прочитать https://life1c.ru/post/2051
---
значит получилось :)