ПутьКИнформационнойБазе (БСП)

Автор: 1С
ОбщийМодуль.СоединенияИБКлиентСервер
БСП

Путь информационной базе. Возвращает полный путь к информационной базе (строку соединения).

// Возвращает полный путь к информационной базе (строку соединения).
//
// Параметры:
//  ПризнакФайловогоРежима  - Булево - выходной параметр. Принимает значение.
//                                     Истина, если текущая ИБ - файловая;
//                                     Ложь - если клиент-серверная.
//  ПортКластераСерверов    - Число  - входной параметр. Задается в случае, если
//                                     кластер серверов использует нестандартный номер порта.
//                                     Значение по умолчанию - 0, означает, что 
//                                     кластер серверов занимает номер порта по умолчанию.
//
// Возвращаемое значение:
//   Строка   - строка соединения ИБ.
//
Функция ПутьКИнформационнойБазе(ПризнакФайловогоРежима = Неопределено, Знач ПортКластераСерверов = 0) Экспорт
	
	СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
	
	ПозицияПоиска = СтрНайти(ВРег(СтрокаСоединения), "FILE=");
	
	Если ПозицияПоиска = 1 Тогда // файловая ИБ
		
		ПутьКИБ = Сред(СтрокаСоединения, 6, СтрДлина(СтрокаСоединения) - 6);
		ПризнакФайловогоРежима = Истина;
		
	Иначе
		ПризнакФайловогоРежима = Ложь;
		
		ПозицияПоиска = СтрНайти(ВРег(СтрокаСоединения), "SRVR=");
		
		Если НЕ (ПозицияПоиска = 1) Тогда
			Возврат Неопределено;
		КонецЕсли;
		
		ПозицияТочкиСЗапятой = СтрНайти(СтрокаСоединения, ";");
		НачальнаяПозицияКопирования = 6 + 1;
		КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2;
		
		ИмяСервера = Сред(СтрокаСоединения, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1);
		
		СтрокаСоединения = Сред(СтрокаСоединения, ПозицияТочкиСЗапятой + 1);
		
		// позиция имени сервера
		ПозицияПоиска = СтрНайти(ВРег(СтрокаСоединения), "REF=");
		
		Если НЕ (ПозицияПоиска = 1) Тогда
			Возврат Неопределено;
		КонецЕсли;
		
		НачальнаяПозицияКопирования = 6;
		ПозицияТочкиСЗапятой = СтрНайти(СтрокаСоединения, ";");
		КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2;
		
		ИмяИБНаСервере = Сред(СтрокаСоединения, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1);
		
		ПутьКИБ = """" + ИмяСервера + "\" + ИмяИБНаСервере + """";
	КонецЕсли;
	
	Возврат ПутьКИБ;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПолучитьФайлВерсииВРабочийКаталог (БСП)

ПараметрыИнформационнойБазы (БСП)

СеансыИнформационнойБазы (БСП)

СоединенияСИнформационнойБазой (БСП)

ИдентификаторИнформационнойБазы (БСП)

СвойстваИнформационныхБаз (БСП)

1С Менеджер конфигураций