helpf.pro
Регистрация
 -1 
Распечатать

1С 7.x : Как определить каталог базы, путь к базе? КаталогИБ()

В 8-ых версий нет встроенной функции получения каталога базы данных, так напишем ее,
Код 1C v 8.2 УП
 //Получить представление информационной базы для отображения пользователю.
// Пример возвращаемого результата:
// - для ИБ в файлом режиме: \\FileServer\1c_ib\
// - для ИБ в серверном режиме: ServerName:1111 / information_base_name
Функция ПолучитьПредставлениеИнформационнойБазы() Экспорт
Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
КонецЕсли;
ЭтоФайловаяИБ = Найти(Врег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
Если ЭтоФайловаяИБ Тогда
ПутьКБД = Сред(СтрокаСоединенияСБД, 6, СтрДлина(СтрокаСоединенияСБД) - 6);
ФайловаяБД = Истина;
Иначе
// надо к имени сервера прибавить имя пути информационной базы
ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "SRVR=");

Если ПозицияПоиска <> 1 Тогда
Возврат Неопределено;
КонецЕсли;

ПозицияТочкиСЗапятой = Найти(СтрокаСоединенияСБД, ";");
НачальнаяПозицияКопирования = 6 + 1;
КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2;

ИмяСервера = Сред(СтрокаСоединенияСБД, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1);

СтрокаСоединенияСБД = Сред(СтрокаСоединенияСБД, ПозицияТочкиСЗапятой + 1);

// позиция имени сервера
ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "REF=");

Если ПозицияПоиска <> 1 Тогда
Возврат Неопределено;
КонецЕсли;

НачальнаяПозицияКопирования = 6;
ПозицияТочкиСЗапятой = Найти(СтрокаСоединенияСБД, ";");
КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2;

ИмяИБНаСервере = Сред(СтрокаСоединенияСБД, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1);

ПутьКБД = ИмяСервера + "/ " + ИмяИБНаСервере;
ФайловаяБД = Ложь;
КонецЕсли;
Возврат ПутьКБД;
КонецФункции


ТОЛЬКО эта функция работает для файлового варианта базы данных:
Код 1C v 8.х
 
Функция КаталогИБ()
СтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы();
// в зависимости от того файловый это вариант БД или нет, по-разному отображается путь в БД
ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "FILE=");
Если ПозицияПоиска = 1 тогда
// Файловая
Возврат Сред(СтрокаСоединенияСБД,7,СтрДлина(СтрокаСоединенияСБД)-8)+"\";
Иначе
// Серверная - Используем КаталогВременныхФайлов()
Возврат КаталогВременныхФайлов();
КонецЕсли;
КонецФункции


Для серверного - используйте другие каталоги, например:
Код 1C v 8.х
 
КаталогВременныхФайлов(); //Возвращает что-то типо: C:\Documents and Settings\E.S.Migachev\Local Settings\Temp\
КаталогПрограммы(); //Возвращает что-то типо: C:\Program Files\1cv81\bin\


Код 1C v 7.x
 
//Встроенная КаталогИБ() - Возвращает имя каталога базы данных.
КаталогИБ(); //Возвращает что-то типо: C:\Basa1C\buh\
Разместил:   Версии: | 7.x | 8.x | 8.2 УП |  Дата:   Прочитано: 27814
 -1 
Распечатать
Возможно, вас также заинтересует
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 2
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р,...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура...
Алгоритм шифрования RC4 0
Для решения некоторых задач, иногда требуется имееть возможность шифровать и дешифровывать, какие-то данные. Но при этом нет возможности использовать стороние внешнии компоненты. Предлагаем пример реализации...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.