1С 8.3 Модуль для получения параметров подключения к SQL Server и проверки соединения с ним прямо из 1С
Данные > Примеры кода 1С > 1С 8.3 Приложение, система, интерфейс
Перейти в раздел примеры кода 1С 8.3:

Программное подключение к базе MS SQL в 1С 8.3:
// Функция возвращает структуру с параметрами подключения к SQL Server
Функция ПолучитьПараметрыSQL() Экспорт
// Инициализация переменных по умолчанию
ИмяСервераSQL = ""; ПользовательSQL = ""; ПарольSQL = ""; БазаДанныхSQL = "";
// Поиск выбранного подключения в списке параметров
Для Каждого Подключение Из Объект.ПараметрыПодключения Цикл
Если НЕ Подключение.Выбор Тогда
Продолжить; // Пропускаем, если подключение не выбрано
КонецЕсли;
ИмяСервераSQL = Подключение.Server;
ПользовательSQL = Подключение.User;
ПарольSQL = Подключение.Password;
БазаДанныхSQL = Подключение.Base;
Прервать; // Нашли нужное подключение
КонецЦикла;
// Проверка, что параметры заполнены
Если ПустаяСтрока(ИмяСервераSQL) Или ПустаяСтрока(БазаДанныхSQL) Тогда
ВызватьИсключение "Не выбрано подключение или отсутствуют параметры сервера.";
КонецЕсли;
// Строка соединения без указания пользователя и пароля (для стандартной аутентификации)
Сервер_СтрокаСоединения =
"driver={SQL Server};" +
"server=" + ИмяСервераSQL + ";" +
"database=" + БазаДанныхSQL + ";";
// Строка соединения с указанием пользователя и пароля
СтрокаСоединенияССервером =
"driver={SQL Server};" +
"server=" + ИмяСервераSQL + ";" +
"uid=" + ПользовательSQL + ";" +
"pwd=" + ПарольSQL + ";" +
"database=" + БазаДанныхSQL + ";";
// Формируем структуру с параметрами
ПараметрыSQL = Новый Структура;
ПараметрыSQL.Вставить("Сервер_СтрокаСоединения", Сервер_СтрокаСоединения);
ПараметрыSQL.Вставить("Сервер_АутентификацияСтандартная", Истина);
ПараметрыSQL.Вставить("Сервер_ИмяПользователя", ПользовательSQL);
ПараметрыSQL.Вставить("Сервер_Пароль", ПарольSQL);
ПараметрыSQL.Вставить("Сервер_СУБД", "MS SQL Server");
ПараметрыSQL.Вставить("Сервер_БД", БазаДанныхSQL);
ПараметрыSQL.Вставить("СтрокаСоединенияССервером", СтрокаСоединенияССервером);
Возврат ПараметрыSQL;
КонецФункции
// Процедура проверяет подключение к SQL Server на сервере
&НаСервере
Процедура ПроверитьПодключениеНаСервере()
// Получаем параметры подключения
ПараметрыSQL = ПолучитьПараметрыSQL();
// Создаём объект параметров соединения с внешним источником данных
ПараметрыСоединенияСБазой = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыСоединенияСБазой.СтрокаСоединения = ПараметрыSQL.Сервер_СтрокаСоединения;
ПараметрыСоединенияСБазой.АутентификацияСтандартная = ПараметрыSQL.Сервер_АутентификацияСтандартная;
ПараметрыСоединенияСБазой.ИмяПользователя = ПараметрыSQL.Сервер_ИмяПользователя;
ПараметрыСоединенияСБазой.Пароль = ПараметрыSQL.Сервер_Пароль;
ПараметрыСоединенияСБазой.СУБД = ПараметрыSQL.Сервер_СУБД;
// Устанавливаем параметры соединения для сессии
ВнешниеИсточникиДанных.ForRestPOS.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединенияСБазой);
// Пробуем подключиться
Попытка
ВнешниеИсточникиДанных.ForRestPOS.УстановитьСоединение();
Сообщить("Подключение успешно!");
Исключение
Сообщить("Подключение не установлено! Проверьте параметры.");
КонецПопытки;
КонецПроцедуры
Функция ПолучитьПараметрыSQL() Экспорт
// Инициализация переменных по умолчанию
ИмяСервераSQL = ""; ПользовательSQL = ""; ПарольSQL = ""; БазаДанныхSQL = "";
// Поиск выбранного подключения в списке параметров
Для Каждого Подключение Из Объект.ПараметрыПодключения Цикл
Если НЕ Подключение.Выбор Тогда
Продолжить; // Пропускаем, если подключение не выбрано
КонецЕсли;
ИмяСервераSQL = Подключение.Server;
ПользовательSQL = Подключение.User;
ПарольSQL = Подключение.Password;
БазаДанныхSQL = Подключение.Base;
Прервать; // Нашли нужное подключение
КонецЦикла;
// Проверка, что параметры заполнены
Если ПустаяСтрока(ИмяСервераSQL) Или ПустаяСтрока(БазаДанныхSQL) Тогда
ВызватьИсключение "Не выбрано подключение или отсутствуют параметры сервера.";
КонецЕсли;
// Строка соединения без указания пользователя и пароля (для стандартной аутентификации)
Сервер_СтрокаСоединения =
"driver={SQL Server};" +
"server=" + ИмяСервераSQL + ";" +
"database=" + БазаДанныхSQL + ";";
// Строка соединения с указанием пользователя и пароля
СтрокаСоединенияССервером =
"driver={SQL Server};" +
"server=" + ИмяСервераSQL + ";" +
"uid=" + ПользовательSQL + ";" +
"pwd=" + ПарольSQL + ";" +
"database=" + БазаДанныхSQL + ";";
// Формируем структуру с параметрами
ПараметрыSQL = Новый Структура;
ПараметрыSQL.Вставить("Сервер_СтрокаСоединения", Сервер_СтрокаСоединения);
ПараметрыSQL.Вставить("Сервер_АутентификацияСтандартная", Истина);
ПараметрыSQL.Вставить("Сервер_ИмяПользователя", ПользовательSQL);
ПараметрыSQL.Вставить("Сервер_Пароль", ПарольSQL);
ПараметрыSQL.Вставить("Сервер_СУБД", "MS SQL Server");
ПараметрыSQL.Вставить("Сервер_БД", БазаДанныхSQL);
ПараметрыSQL.Вставить("СтрокаСоединенияССервером", СтрокаСоединенияССервером);
Возврат ПараметрыSQL;
КонецФункции
// Процедура проверяет подключение к SQL Server на сервере
&НаСервере
Процедура ПроверитьПодключениеНаСервере()
// Получаем параметры подключения
ПараметрыSQL = ПолучитьПараметрыSQL();
// Создаём объект параметров соединения с внешним источником данных
ПараметрыСоединенияСБазой = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыСоединенияСБазой.СтрокаСоединения = ПараметрыSQL.Сервер_СтрокаСоединения;
ПараметрыСоединенияСБазой.АутентификацияСтандартная = ПараметрыSQL.Сервер_АутентификацияСтандартная;
ПараметрыСоединенияСБазой.ИмяПользователя = ПараметрыSQL.Сервер_ИмяПользователя;
ПараметрыСоединенияСБазой.Пароль = ПараметрыSQL.Сервер_Пароль;
ПараметрыСоединенияСБазой.СУБД = ПараметрыSQL.Сервер_СУБД;
// Устанавливаем параметры соединения для сессии
ВнешниеИсточникиДанных.ForRestPOS.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединенияСБазой);
// Пробуем подключиться
Попытка
ВнешниеИсточникиДанных.ForRestPOS.УстановитьСоединение();
Сообщить("Подключение успешно!");
Исключение
Сообщить("Подключение не установлено! Проверьте параметры.");
КонецПопытки;
КонецПроцедуры
Можно использовать:
- В интеграциях 1С с внешними системами, где данные хранятся в MS SQL Server.
- В обменах данными между 1С и POS-системами, CRM, ERP, BI-платформами.
- В администрировании. Для проверки доступности серверов и баз.
- В автоматизации. Например, перед выполнением выгрузки или загрузки данных проверять, что соединение рабочее.
- В отладке. Быстро понять, проблема в сети, в SQL Server или в параметрах.
Функция ПолучитьПараметрыSQL() - ищет в списке настроек подключения то, которое помечено как выбранное. Возвращает структуру с полным набором параметров для подключения.
Извлекает из него:
- имя сервера SQL (Server)
- имя пользователя (User)
- пароль (Password)
- имя базы данных (Base)
Формирует:
- строку соединения для стандартной аутентификации (Windows)
- строку соединения с логином и паролем (SQL Authentication)
Зачем нужно:
- Чтобы централизованно хранить и получать все параметры подключения в одном месте.
- Чтобы не дублировать строки соединения в разных процедурах.
- Чтобы легко переключаться между разными серверами или базами, просто меняя настройки.
Процедура ПроверитьПодключениеНаСервере()
- Вызывает ПолучитьПараметрыSQL() и получает готовую структуру с параметрами.
- Создаёт объект ПараметрыСоединенияВнешнегоИсточникаДанных и заполняет его.
- Передаёт эти параметры в внешний источник данных ForRestPOS.
- Пробует установить соединение:
- Если успешно: выводит сообщение "Подключение успешно!"
- Если ошибка: выводит "Подключение не установлено!"
Зачем нужно:
- Для быстрой проверки, что указанные параметры подключения рабочие.
- Чтобы убедиться, что сервер SQL доступен и принимает соединения.
- Для диагностики проблем с доступом (неверный логин, пароль, имя сервера, база).
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник