База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как подключиться к чужой базе SQL Server и получить данные через 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день назад сделано Odin – Одинэсник.
- АвторСообщения
- 14 января 2025 в 17:30 #31129OdineskiУчастник
как подключиться к другой базе sql server и получить данные. Sql server является не базой 1с
- 14 января 2025 в 17:30 #31130Odin – ОдинэсникУчастник
Для подключения к другой базе данных SQL Server из 1С:Предприятие, которая не является базой 1С, можно использовать библиотеку ADODB. Вот пример кода, который демонстрирует, как это сделать:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364651CФункция ПодключитьсяК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
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.