Вы здесь
Получение строки подключения текущего соединения 1С
Для программного определения строки подключения в которой вы работаете достаточно вызвать функцию
Результат будет вот в таком виде
Для файловой базы в параметрах подключение будет с использованием File, для клиент-серверного подключения связка Srvr/Ref.
Для получения имени сервера и базы MSSQL (спасибо Гилеву Вячеславу):
Для каждого СоединениеИнформационнойБазы Из Соединения Цикл
Если ПустаяСтрока(ИмяПользователя()) Тогда Продолжить; КонецЕсли;
Если СоединениеИнформационнойБазы.Пользователь.Имя = ИмяПользователя() И СоединениеИнформационнойБазы.ИмяПриложения="1CV8" Тогда
Если Лев(СтрокаСоединенияИнформационнойБазы(),5)="File=" Тогда
ФайловыйВариант = Истина;
ИмяСервераИБ="";
ИмяБазы = "";
Иначе
ФайловыйВариант = Ложь;
ПозицияРазделителя = Найти(СтрокаСоединенияИнформационнойБазы(),";");
ИмяКластера= Сред(СтрокаСоединенияИнформационнойБазы(),7, ПозицияРазделителя-8);
ОписаниеИБ.Вставить("ИмяСервераИБ",ИмяСервераИБ);
ИмяИнформационнойБазы = Сред(СтрокаСоединенияИнформационнойБазы(),ПозицияРазделителя+5,СтрДлина(СтрокаСоединенияИнформационнойБазы())-ПозицияРазделителя-5);
ОписаниеИБ.Вставить("ИмяИнформационнойБазы",СтрЗаменить(ИмяИнформационнойБазы,"""",""));
ИнформационнаяБаза = ОписаниеИБ.ИмяИнформационнойБазы;
Пользователь = ИмяПользователя();
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;
Соединитель = Новый COMОбъект("V81.COMConnector");
АгентСервера = Соединитель.ConnectAgent(ИмяКластера);
КластерыСерверов = АгентСервера.GetClusters().Выгрузить();
ИмяСервераИБВРег = ВРег(ИмяКластера);
Для Каждого Кластер Из КластерыСерверов Цикл
Если ВРег(Кластер.HostName) = ИмяСервераИБВРег Тогда
СерверИнформационнойБазы = Кластер;
Прервать;
КонецЕсли;
КонецЦикла;
АгентСервера.Authenticate(СерверИнформационнойБазы,АдминистраторКластера,ПарольАдминистратораКластера );
ПроцессыCOM = АгентСервера.GetWorkingProcesses(СерверИнформационнойБазы);
РабочиеПроцессы = ПроцессыCOM.Выгрузить();
РабочийПроцесс = РабочиеПроцессы[0];
СписокСоединений = РабочиеПроцессы;
СоединениеСРабочимПроцессом = Соединитель.ConnectWorkingProcess(
РабочийПроцесс.HostName + ":" + Формат(РабочийПроцесс.MainPort, "ЧГ="));
СоединениеСРабочимПроцессом.AddAuthentication(Пользователь,ПарольПользователя);
// Получение списка информационных баз
ИнформационныеБазы = СоединениеСРабочимПроцессом.GetInfoBases().Выгрузить();
// Поиск информационной базы с требуемыми параметрами подключения
ИмяИнформационнойБазыВРег = ВРег(ИмяИнформационнойБазы);
Для Каждого ИБ Из ИнформационныеБазы Цикл
// Если информационная база найдена
Если ВРег(ИБ.Name) = ВРег(ИмяИнформационнойБазы) Тогда
// Запомнить информационную базу и прекратить поиск
ИнформационнаяБаза = ИБ.Name;
Прервать;
КонецЕсли;
КонецЦикла;
ИнформационныеБазы = СоединениеСРабочимПроцессом.GetInfoBases().Выгрузить();
Для Каждого ИБ Из ИнформационныеБазы Цикл
// Если информационная база найдена
Если ВРег(ИБ.Name) = ВРег(ИмяИнформационнойБазы) Тогда
//р= СоединениеСРабочимПроцессом.Connect(ИБ,"тест","");
Для шаг = 0 по СписокСоединений.Количество()-1 Цикл
//
ф=Соединитель.ConnectWorkingProcess(СписокСоединений[шаг].HostName + ":" + Формат(СписокСоединений[шаг].MainPort, "ЧГ="));
Попытка ф.AddAuthentication(Пользователь,ПарольПользователя);Исключение КонецПопытки;
Соединения = ф.GetInfoBaseConnections(ИБ).Выгрузить();
Для Каждого соед Из Соединения Цикл
Если соед.AppID="SrvrConsole" Тогда Продолжить; КонецЕсли;
Если соед.AppID="COMConsole" Тогда Продолжить; КонецЕсли;
Если соед.AppID="Designer" Тогда Продолжить; КонецЕсли;
НоваяСессия = Сессии.Добавить();
НоваяСессия.Юзер = соед.UserName;
НоваяСессия.Комп = Соед.HostName;
НоваяСессия.Сессия1С = соед.ConnID;
НоваяСессия.SPID = соед.dbProcInfo;
КонецЦикла;
КонецЦикла;
//Соединения = СоединениеСРабочимПроцессом.GetInfoBaseConnections(ИБ).Выгрузить();
Прервать;
КонецЕсли;
КонецЦикла;