helpf.pro
Регистрация

v8.2 УП: Как узнать SQL имя базы данных.

Gvozdinskij_V
17.06.2013 12:16Прочитано: 16934
Описание:

Есть несколько SQL баз и есть несколько их копий. Между основными базами существует обмен реализованный через регламентное задание. Из BASE1 в BASE2. При обмене данные тянутся из прописанного в коде места в сети - получили данные, обработали и удалили файл данных.
А вот тут начинается интерессное, для меня. Для разработки есть SQL копии баз - COPY_BASE1 в COPY_BASE2 - и в них включены регламентные задания, втом числе и обмен данными.
И вот теперь необходимо найти SQL имена баз - чтобы в коде по обмену учесть что это только копии баз - и данные получить, обработать - НО файлы с данными НЕ удалять.
Искал, искал как определить SQL имя открытой базы, но либо не нашел - либо плохо искал.
Прошу помощи в данном вопросе.
Заранее спасибо.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
17.06.2013 12:41Ответ № 1
(0) Gvozdinskij_V, так и не понял что именно и как вы хотите узнать!?

если база открыта, то значит она уже подключена к sql базе.
Покажете код регламентного задания, скорее всего в нем прописано
Gvozdinskij_V
17.06.2013 12:46Ответ № 2
(1) E_Migachev,
Да подключена.
Мне нужно в помощью кода узнать какое имя у открытой SQL базы: BASE1, BASE2, COPY_BASE1 или COPY_BASE2.
Изменено 17.06.13 12:47:04
Gvozdinskij_V
17.06.2013 13:33Ответ № 3
Имя базы получил из СтрокаСоединенияИнформационнойБазы()...

Спасибо за внимание.
arbuzyka2525
17.06.2013 14:25Ответ № 4
Так он же возвращает имя базы на сервере 1с, а не на SQL. На SQL по сути база может иметь другое имя не такое как на сервере 1с.
Gvozdinskij_V
18.06.2013 11:15Ответ № 5
(4) arbuzyka2525,
У меня проще - имена совпадают, а универсальность в данном случае не нужна.
E_Migachev
18.06.2013 12:02Ответ № 6
(3) Gvozdinskij_V, вот универсальный код получения местонахождения базы 1С
Код 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);

ПутьКБД = ИмяСервера + "/ " + ИмяИБНаСервере;
ФайловаяБД = Ложь;
КонецЕсли;
Возврат ПутьКБД;
КонецФункции
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.