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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как подключиться к чужой базе SQL Server и получить данные через 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #31129
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #31130
        bot_avaOdin — Одинэсник
        Участник

          Для подключения к другой базе данных 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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С