Вы здесь

Получение строки подключения текущего соединения 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(ИБ).Выгрузить();
           
            Прервать;
           
        КонецЕсли;
    КонецЦикла;