HelpF.pro

Как узнать программно - база 1С 7.7 DBF или SQL?

База SQL:
Наличие в каталоге базы файла 1cv7.dba

База DBF:
1. Отсутствие 1cv7.dba
2. Наличие *.dbf
3. Наличие 1cv7.DD

Пример от vde69:
Код 1C v 8.х
 // Функция определяет основные настройки базы 1с 77 расположенной в каталоге "КаталогБазы"
//
// функция возвращает соответствие определяющее структуру базы
// "Имя MD файла" - вместе с полным путем
// "Имя Users файла" - вместе с полным путем
// "Имя Links файла" - вместе с полным путем
// "Имя DBA файла" - вместе с полным путем
// "Вариант установки" - перечисление
// "Имя SQL сервера"
// "Имя SQL базы"
// "Имя DBO пользователя"
// "Пароль DBO пользователя"
// "Контрольная сумма DBO"
// "Каталог базы"

Функция ПолучитьПараметрыБазы77 (КаталогБазы, ПолучатьПараметрыSQL = Истина) Экспорт
Результат = Новый Соответствие;
// заполним пустые значения
Результат.Вставить("Имя MD файла", "");
Результат.Вставить("Дата MD файла", неопределено);
Результат.Вставить("Размер MD файла", 0);
Результат.Вставить("Имя Users файла", "");
Результат.Вставить("Имя Links файла", "");
Результат.Вставить("Имя DBA файла", "");
Результат.Вставить("Вариант установки", Перечисления.ВариантБазы77.Ошибка);
Результат.Вставить("Имя SQL сервера", "");
Результат.Вставить("Имя SQL базы", "");
Результат.Вставить("Имя DBO пользователя", "");
Результат.Вставить("Пароль DBO пользователя", "");
Результат.Вставить("Контрольная сумма DBO", 0);
Результат.Вставить("Каталог базы", СокрЛП(КаталогБазы));

// поехали анализировать

_КаталогБазы = СокрЛП(КаталогБазы);
Если Прав(_КаталогБазы, 1) <> "\" Тогда
_КаталогБазы = _КаталогБазы + "\";
КонецЕсли;

ИмяФайла = _КаталогБазы + "1Cv7.MD";
ВыбФайл = Новый Файл(ИмяФайла);
Если не ВыбФайл.Существует() Тогда
Возврат Результат;
КонецЕсли;

// вроде база есть, теперь будем заполнять поля ключевых файлов


Результат.Вставить("Имя MD файла", ВыбФайл.ПолноеИмя);

Результат.Вставить("Дата MD файла", ВыбФайл.ПолучитьВремяИзменения());
Результат.Вставить("Размер MD файла", ВыбФайл.Размер());
Результат.Вставить("Имя Links файла", _КаталогБазы + "SYSLOG\links.tmp");

ИмяФайла = _КаталогБазы + "usrdef\users.usr";
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Результат.Вставить("Имя Users файла", ВыбФайл.ПолноеИмя);
КонецЕсли;

ИмяФайла = _КаталогБазы + "1Cv7.DBA";
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Результат.Вставить("Имя DBA файла", ВыбФайл.ПолноеИмя);
Результат.Вставить("Вариант установки", Перечисления.ВариантБазы77.SQL);
// здесь надо расшифровать параметры доступа к SQL
Иначе
// для файловой версии надо посмотреть наличие dbf файлов, по крайне мере должен быть "1SJOURN.DBF"
ИмяФайла = _КаталогБазы + "1SJOURN.DBF";
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Результат.Вставить("Вариант установки", Перечисления.ВариантБазы77.Файловая);
Иначе
// для файловой версии надо посмотреть наличие dbf файлов, по крайне мере должен быть "1SJOURN.DBF"
Результат.Вставить("Вариант установки", Перечисления.ВариантБазы77.Ошибка);
Возврат Результат;
КонецЕсли;
КонецЕсли;

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/582.html