Odin | База знаний 1С

Как подключиться к ...
 

Как подключиться к чужой базе SQL Server и получить данные через 1С?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как подключиться к другой базе sql server и получить данные. Sql server является не базой 1с



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для подключения к другой базе данных SQL Server из 1С:Предприятие, которая не является базой 1С, можно использовать библиотеку ADODB. Вот пример кода, который демонстрирует, как это сделать:

1C
Функция ПодключитьсяКSQL(Сервер, База, Пользователь, Пароль) Экспорт
    // Создаем объект подключения
    Connection = Новый COMОбъект("ADODB.Connection");
    
    // Формируем строку подключения
    СтрокаПодключения = "Provider=SQLOLEDB.1;Data Source=" + Сервер + ";Initial Catalog=" + База + ";User ID=" + Пользователь + ";Password=" + Пароль + ";";
    
    // Открываем соединение
    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
        Возврат Неопределено;
    КонецПопытки;
    
    Возврат Connection;
КонецФункции

Функция ПолучитьДанные(ТекстЗапроса, Connection) Экспорт
    // Создаем объект команды
    Command = Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection = Connection;
    Command.CommandText = ТекстЗапроса;
    
    // Выполняем запрос
    Результат = Command.Execute();
    
    // Создаем таблицу значений для хранения результатов
    Таблица = Новый ТаблицаЗначений;
    
    // Добавляем колонки в таблицу
    Для НомерСтолбца = 0 По Результат.Fields.Count - 1 Цикл
        Таблица.Колонки.Добавить(Результат.Fields(НомерСтолбца).Name);
    КонецЦикла;
    
    // Заполняем таблицу данными
    Пока Не Результат.Eof Цикл
        НоваяСтрока = Таблица.Добавить();
        Для НомерСтолбца = 0 По Результат.Fields.Count - 1 Цикл
            НоваяСтрока[Результат.Fields(НомерСтолбца).Name] = Результат.Fields(НомерСтолбца).Value;
        КонецЦикла;
        Результат.MoveNext();
    КонецЦикла;
    
    Возврат Таблица;
КонецФункции

// Пример использования
Сервер = "Имя_Сервера";
База = "Имя_Базы";
Пользователь = "Имя_Пользователя";
Пароль = "Пароль";

Connection = ПодключитьсяКSQL(Сервер, База, Пользователь, Пароль);
Если Connection  Неопределено Тогда
    ТекстЗапроса = "SELECT * FROM ВашаТаблица"; // Замените на ваш SQL-запрос
    Данные = ПолучитьДанные(ТекстЗапроса, Connection);
    Connection.Close();
    
    // Обработка полученных данных
    Для Каждого Строка Из Данные Цикл
        Сообщить(Строка.Имя_Вашей_Колонки); // Замените на имя колонки
    КонецЦикла;
КонецЕсли;

В этом коде:
1. Функция `ПодключитьсяКSQL` создает соединение с указанной базой данных SQL Server.
2. Функция `ПолучитьДанные` выполняет SQL-запрос и возвращает результаты в виде таблицы значений.
3. Пример использования показывает, как подключиться к базе данных, выполнить запрос и обработать полученные данные.

Рекомендую посмотреть здесь: https://helpf.pro/faq8/view/915.html



   
ОтветитьЦитата