База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как подключиться к чужой базе SQL Server и получить данные через 1С? › RE: Как подключиться к чужой базе SQL Server и получить данные через 1С?
Для подключения к другой базе данных 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