Имя: Пароль:
1C
 
Какой функцией можно получить имя информационной базы сервера 1С
0 Joshim
 
19.09.14
12:15
Есть регламентные задания, которые запускаются в рабочей базе и формируют файлы в каталогах. При создании копии базы, в которой работают разработчики, эти же регламентные задания работать не должны, думаю в коде ограничить выполнение некоторых регламентых заданий только для одной производственной базы. Какой функцией можно получить имя информационной базы сервера?
1 МихаилМ
 
19.09.14
12:17
Описание информационной базы (IInfoBaseShort)
Name (Name)
Использование:

Только чтение.
Описание:

Тип: Строка.
Содержит ссылочное имя информационной базы. Совпадает со значением свойства Name. Должно быть уникальным среди всех информационных баз, зарегистрированных в данном реестре. При сравнении регистр букв не имеет значения.

Доступность:

Интеграция
2 Joshim
 
19.09.14
12:26
(1) и как Name получить в текущем сеансе?
3 Joshim
 
19.09.14
12:28
кажется понял: ISessionInfo
4 ДенисЧ
 
19.09.14
12:30
Дарю, я сегодня щедрый

Глобальный контекст.СтрокаСоединенияИнформационнойБазы (Global context.InfoBaseConnectionString)
Глобальный контекст (Global context)
СтрокаСоединенияИнформационнойБазы (InfoBaseConnectionString)
Синтаксис:

СтрокаСоединенияИнформационнойБазы()
Возвращаемое значение:

Тип: Строка.

Описание:

Возвращает Строка соединения информационной базы, которую, например, можно использовать для запуска 1С:Предприятия средствами встроенного языка в Automation, Менеджер COM-соединений. Пример результата метода: File="C:\1cv8\Base".

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
5 Joshim
 
19.09.14
12:35
(4) парсить строку? :( в век полной автоматизации хочу функцию
6 Joshim
 
19.09.14
12:37
(1) не ясно, как Name получить в текущем сеансе 1С?
7 Жан Пердежон
 
19.09.14
12:40
(5) зачем парсить?
Найти(СтрокаСоединения, Name)...
8 unregistered
 
19.09.14
12:44
В типовых (БП 2.0, например) в общем модуле СоединенияИБКлиентСервер:

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