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

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

Задача: подключить внешний источник данных в Конфигураторе 1С.

Проблема: Сервер приложений 1С работает под управлением Linux Debian 11, но это не проблема. Подключиться требуется к серверу MS SQL 2008. И вот с этого места начинаются проблемы…

Механизм подключения предусматривает использование драйверов ODBC, в этом нет ничего экстраординарного — устанавливаются ODBC-драйверы для требуемой СУБД, настраивается источник данных и затем используется в строке подключения к СУБД. Но дело в том, что MS от версии к версии своего SQL-сервера изменяет протоколы взаимодействия с ним, естественно не поддерживая обратную совместимость.
В моём случае на сервер с Debian 11 можно было установить родные драйвера от MS версий 17 и 18, более ранние версии драйверов не устанавливались по той причине, что требовали старые версии системных библиотек ОС. На сервере-источнике установлена СУБД MS SQL 2008. При попытках подключения выдавались сообщения о несовместимых протоколах. Была мысль, что это происходит из-за различных способов шифрования соединения: в MSSQL 2008 использовался SSL, в новых протоколах — TLS. Однако отключение шифрования в СУБД и игра с параметрами строки подключения sslverify=0 и encrypt=no к положительному результату не привели.

Исследование темы привело к использованию драйверов tdsodbc — ODBC driver for connecting to MS SQL and Sybase SQL servers. Драйвера содержатся в стандартном репозитории Debian, при желании их можно собрать из исходников, которые находятся на сайте производителя.

Итак, установка драйверов:
# apt-get install unixodbc odbcinst tdsodbc

В файл /etc/freetds/freetds.conf добавляется секция:
[Alfa]
host = 192.168.1.100
port = 1433
tds version = 7.3

где
host — IP хоста СУБД MS SQL
tds version — версия протокола подключения( c соответствием версий протоколов и версий MS SQL можно ознакомится на сайте производителя).

В файл /etc/odbc.ini добавляются секции:

[Alfa]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Description = MS SQL FreeDTS
Trace = No
Server = 192.168.1.100
Database = Orion
Port = 1433
TDS_Version = 7.3

[Default]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Строка подключения внешнего источника данных в Конфигураторе 1С приняла вид:
DRIVER={Alfa};SERVERNAME=Alfa;UID=sa;PWD=VeryStrogPasswd;DATABASE=Orion;sslverify=0;encrypt=no;

После этого подключение состоялось.

Nicko

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