В 8-ых версий нет встроенной функции получения каталога базы данных, так напишем ее,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
//Получить представление информационной базы для отображения пользователю. // Пример возвращаемого результата: // - для ИБ в файлом режиме: \\FileServer\1c_ib\ // - для ИБ в серверном режиме: ServerName:1111 / information_base_name Функция ПолучитьПредставлениеИнформационнойБазы() Экспорт Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы(); КонецЕсли; ЭтоФайловаяИБ = Найти(Врег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1; Если ЭтоФайловаяИБ Тогда ПутьКБД = Сред(СтрокаСоединенияСБД, 6, СтрДлина(СтрокаСоединенияСБД) - 6); ФайловаяБД = Истина; Иначе // надо к имени сервера прибавить имя пути информационной базы ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "SRVR="); Если ПозицияПоиска <> 1 Тогда Возврат Неопределено; КонецЕсли; ПозицияТочкиСЗапятой = Найти(СтрокаСоединенияСБД, ";"); НачальнаяПозицияКопирования = 6 + 1; КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2; ИмяСервера = Сред(СтрокаСоединенияСБД, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1); СтрокаСоединенияСБД = Сред(СтрокаСоединенияСБД, ПозицияТочкиСЗапятой + 1); // позиция имени сервера ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "REF="); Если ПозицияПоиска <> 1 Тогда Возврат Неопределено; КонецЕсли; НачальнаяПозицияКопирования = 6; ПозицияТочкиСЗапятой = Найти(СтрокаСоединенияСБД, ";"); КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2; ИмяИБНаСервере = Сред(СтрокаСоединенияСБД, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1); ПутьКБД = ИмяСервера + "/ " + ИмяИБНаСервере; ФайловаяБД = Ложь; КонецЕсли; Возврат ПутьКБД; КонецФункции |
ТОЛЬКО эта функция работает для файлового варианта базы данных:
1 2 3 4 5 6 7 8 9 10 11 12 |
Функция КаталогИБ() СтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы(); // в зависимости от того файловый это вариант БД или нет, по-разному отображается путь в БД ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "FILE="); Если ПозицияПоиска = 1 тогда // Файловая Возврат Сред(СтрокаСоединенияСБД,7,СтрДлина(СтрокаСоединенияСБД)-8)+"\"; Иначе // Серверная - Используем КаталогВременныхФайлов() Возврат КаталогВременныхФайлов(); КонецЕсли; КонецФункции |
Для серверного — используйте другие каталоги, например:
1 2 |
КаталогВременныхФайлов(); //Возвращает что-то типо: C:\Documents and Settings\E.S.Migachev\Local Settings\Temp\ КаталогПрограммы(); //Возвращает что-то типо: C:\Program Files\1cv81\bin\ |
1 2 |
//Встроенная КаталогИБ() - Возвращает имя каталога базы данных. КаталогИБ(); //Возвращает что-то типо: C:\Basa1C\buh\ |