Подключение к PostgreSQL из 1С

 

СУБД PostgreSQL весьма популярна среди пользователей, и причина тому — достойное качество при полной бесплатности. Высокая популярность привела к тому, что задачи на тему прямого доступа к базе PostgreSQL из 1С встречаются достаточно часто. Именно о том, как этот доступ организовать и поговорим ниже.

Подготовка

В начале нужно сказать, что все испытания проводились на ОС Windows 7 (64-bit) и Windows 10 (64-bit), а подключения производились к серверу PostgreSQL (64-bit) 9.4.2-1.1C.

Первое, что нам потребуется это установленный драйвер psqlODBC. Установить его можно либо при помощи приложения Stack Builder (которое устанавливается вместе с PostgreSQL):

Stack Builder
Stack Builder

Либо посетив страничку, на которой представлено множество версий нашего драйвера:

psqlODBC
psqlODBC

Важно! Устанавливать нужно именно psqlODBC (32 bit).

С драйвером psqlODBC (64 bit) мне не удалось подключиться к базе данных ни одним способом, ни в одной ОС. Весьма вероятно, что причина этого в моих кривых руках, но что есть, то и пишу.

Так или иначе, после установки правильной версии драйвера у нас есть несколько способов получения данных.

Подключение внешнего источника данных

Подключение базы PostgreSQL в качестве внешнего источника данных является простым и наглядным. Создаем новый внешний источник данных и добавить новую таблицу:

Внешний источник данных. Шаг 1
Внешний источник данных. Шаг 1

Затем указываем строку подключения примерно такова вида:

Driver={PostgreSQL Unicode};Server=host;Port=port;Database=db_name;Uid=user;Pwd=password;STMT=utf8

Внешний источник данных. Шаг 2
Внешний источник данных. Шаг 2

И в результате получаем список таблиц:

Внешний источник данных. Шаг 3
Внешний источник данных. Шаг 3

Отмечу, что при создании внешнего источника данных у меня не получилось использовать пользовательские источники данных, о которых ниже.

 

Подключение при помощи ADODB

Подключение к базе PostgreSQL и выполнение различных запросов при помощи библиотеки ADOdb выглядит приблизительно так:

При этом есть возможность использовать пользовательский источник данных, который нужно сначала создать. Сделать это можно при помощи приложения ODBC Data Sources (32 бита), которое находится в панели управления (а в Windows 10 в папке «Администрирование» на панели управления). Важно использовать именно 32-х битную версию, так как каждая версия видит только «свои» драйверы. Если же, по какой-либо причине, на панели управления нет этого приложения, то его можно запустить напрямую, оно находится по адресу \Windows\SysWOW64\odbcad32.exe.

Сам процесс создания пользовательского источника данных прост:

Пользовательский источник данных
Пользовательский источник данных

После того как источник создан, протестирован и сохранен можно использовать строку подключения следующего вида:

Driver={PostgreSQL Unicode};data source=P2;STMT=utf8

Еще раз напомню, что вариант строки подключения с пользовательским источником данных не сработал (у меня, по крайней мере) при подключении базы PostgreSQL как внешний источник данных.

На этом все, надеюсь данная статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (Пока оценок нет)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 3
  1. Henry

    Большое спасибо за инфу! :)

  2. orlovsn

    У х64 драйвера постгреса архитектура явно указана в имени т.е. должно быть: Driver={PostgreSQL Unicode(x64)} тогда всё работает

  3. Дмитрий

    Разрядность клиента x64 должна совпадать с версией ODBC драйвера x64.
    Пользовательские источники данных не будут видны из-под сервера (который работает от имени другого пользователя). Нужно использовать системный источник в ODBC.
    Как выше заметили, важно название драйвера.

    В целом, спасибо за статью.

    :idea:

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: