![]() |
![]() |
![]() |
|
v8: Имя SQL базы | ☑ | ||
---|---|---|---|---|
0
wPa
20.11.08
✎
15:06
|
Как получить сиквельное имя текущей базы?
|
|||
1
Sadovnikov
20.11.08
✎
15:08
|
Например, так:
|Select NameBase From |( |Select dbid,db_name(dbid) As NameBase From master..sysaltfiles Where [FileName]= |( |Select Top 1 [FileName] From sysfiles |) |)As Z"; |
|||
2
wPa
20.11.08
✎
15:13
|
(1) не корректно выразился. Как получить сиквельное имя текущей базы (где выполняется код) средствами 1С. Толкьо через кластер или еще есть способ?
|
|||
3
Sadovnikov
20.11.08
✎
15:15
|
(2) Так выполни запрос из (1) в 1С и получишь скульное имя базы.
|
|||
4
Барбариска
20.11.08
✎
15:24
|
//***************************************************
Функция XOR(Знач ParA, Знач ParB) Res = 0; Koef = 1; Для к=1 По 8 Цикл BitA = ParA % 2; BitB = ParB % 2; ParA = Int(ParA / 2); ParB = Int(ParB / 2); BitC = (BitA + BitB) % 2; Res = Res + BitC * Koef; Koef = Koef * 2; КонецЦикла; Возврат Res; КонецФункции Функция СтрокаСоединения(Файл) Перем SQLKeyCode[36], ConnectCode[200]; FSO = CreateObject("Scripting.FileSystemObject"); F = FSO.OpenTextFile(Файл, 1); ConnectLen = 0; Пока F.AtEndOfStream = 0 Цикл ConnectLen = ConnectLen + 1; ConnectCode[ConnectLen] = КодСимв(F.Read(1)); КонецЦикла; F.Close(); FSO = 0; SQLKey = "19465912879oiuxc ensdfaiuo3i73798kjl"; Для к=1 По 36 Цикл SQLKeyCode[к] = КодСимв(Сред(SQLKey, к, 1)); КонецЦикла; Connect = ""; Для к=1 По ConnectLen Цикл Connect = Connect + Симв(XOR(ConnectCode[к], SQLKeyCode[(к - 1) % 36 + 1])); КонецЦикла; vl=СоздатьОбъект("СписокЗначений"); Connect=СтрЗаменить(Connect,"{",""); Connect=СтрЗаменить(Connect,"}",""); vl.ИзСтрокиСРазделителями(Connect); Возврат vl; КонецФункции --------------------- 4-й параметр в возвращаемом списке - имя базы |
|||
5
wPa
20.11.08
✎
15:24
|
(3) точно. но .. надо знать сервер ))
|
|||
6
Барбариска
20.11.08
✎
15:26
|
+(4)
Файл в качестве параметра - это КаталогИБ()+"1Cv7.DBA"; |
|||
7
pvase
20.11.08
✎
15:26
|
||||
8
КонецЦикла
20.11.08
✎
15:28
|
select @@SERVERNAME
|
|||
9
Sadovnikov
20.11.08
✎
15:35
|
(5) Так зачем тогда в двух постах писал слова "база"? :)
|
|||
10
wPa
20.11.08
✎
15:39
|
(9) дык нужна то база )))
|
|||
11
Sadovnikov
20.11.08
✎
15:40
|
(10) Ты это... Расскажи - чего сделать-то в итоге хочешь? И зачем?
|
|||
12
Immortal
20.11.08
✎
15:42
|
лучше через кластер
|
|||
13
wPa
20.11.08
✎
15:45
|
(12) да уже пробую
|
|||
14
wPa
20.11.08
✎
15:46
|
(11) Скажем так. Мне надо из обработки сделать сиквельный запрос к текущей базе
|
|||
15
Sadovnikov
20.11.08
✎
15:47
|
(14) Стоп. Это восьмерка или все-таки семерка?
|
|||
16
Serg_1960
20.11.08
✎
15:54
|
Для восьмёрки :)
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы(); Если Найти(Врег(СтрокаСоединения), "FILE=") Тогда //Файловая версия ИмяБазы = СтрЗаменить(Сред(СтрокаСоединения,6),";",""); Иначе СтрокаСоединения = СтрЗаменить(СтрокаСоединения,";",Символы.ПС); ИмяСервера = Сред(СтрПолучитьСтроку(СтрокаСоединения,1),6); ИмяБазы = Сред(СтрПолучитьСтроку(СтрокаСоединения,2),5); КонецЕсли; |
|||
17
wPa
20.11.08
✎
16:03
|
(16) Это имя базы на сервере приложений. Нужна dbName
|
|||
18
wPa
20.11.08
✎
16:20
|
(15) Восьмерка
(12) Мдя через кластер как и предполагалось - семь кругов ада )) |
|||
19
wPa
20.11.08
✎
16:36
|
(18) Аааа!! Нет не подходит кластер - нужно пройти две авторизации - на агенте и на рабочем процессе!
Есть мысли? Надо получить dbName и dbServerName текущей рабочей базы. |
|||
20
Demiurg
20.11.08
✎
16:38
|
если авторизацию кластера и агента выбирать виндовую, то логин и пароль опускаются при авторизации
|
|||
21
Demiurg
20.11.08
✎
16:39
|
напиши, что делаешь, может твоя задача решается проще
|
|||
22
Serg_1960
20.11.08
✎
16:42
|
Ыыы :( Автор себе порочный круг создал:( Чтобы узнать у SQL-сервера имя базы - надо с ним соединение установить и запросить, - а соединение не установишь пока имя базы не знаешь :(
|
|||
23
Immortal
20.11.08
✎
16:45
|
то есть имя сервера тоже неизвестно?
|
|||
24
Immortal
20.11.08
✎
16:46
|
п.с. слава богу эту голубизну из ников убрали.
|
|||
25
Demiurg
20.11.08
✎
16:48
|
(22) гонишь, подключиться можно и к master базе
|
|||
26
Demiurg
20.11.08
✎
16:49
|
пропарси файл кластера,
доступ к нему через модуль сервера сделай |
|||
27
Serg_1960
20.11.08
✎
16:49
|
(21) автору надо (14) сиквельный запрос к текущей базе... но сначало узнать имя сервера и имя базы в SQL. (16) ему не подходит. Ему строку соединения с базой надо. Типа:
Connection = Новый COMОбъект("ADODB.Connection"); String = "driver={SQL Server};server=SqlSrvr;uid=sa;pwd=PasWord;Database=Base"; // или String = "Provider=SQLOLEDB.1;Password=PasWord;Persist Security Info=True;User ID=sa;Initial Catalog=Base;Data Source=SQLSRVR"; Connection.Open(String); |
|||
28
wPa
20.11.08
✎
16:50
|
(21) Уже писал. Мне надо сделать сиквельный запрос к текущей базе.
А как сделать нт авторизацю? метод AddAuthentication требует логина пароля (22) Это не я - это млин методов нет в платформе как получить сервер базу! |
|||
29
wPa
20.11.08
✎
16:51
|
(26) не универсальный способ - если я обработку ношу с собой? )
|
|||
30
Serg_1960
20.11.08
✎
16:54
|
(25) Ага, гоню :( - ибо сам не знаю... но очень хочу узнать :)
(28) Имя сервера можно получить из СтрокаСоединенияИнформационнойБазы(). Так? |
|||
31
wPa
20.11.08
✎
16:57
|
(30) Из строки соединения ты получишь имя сервера клстера с портом и базу. У них есть свойства - имя базы на сиквеле и сервер сиквела - они то и нужны. Не у всех имена баз в кластере и на сиквеле совпадают! ;)
Но чтобы достучаться до этих свойств надо пройти две авторизации! |
|||
32
Serg_1960
20.11.08
✎
17:02
|
(31) "имена базы кластера и SQL-базы могут быть разные" - ага я до этого уже допетрил :( Не совсем тормоз :)
Но в платформе не было, нет и не будет возможности получить пароль. Из соображений безопасности... Это тоже мне ясно :) И что остаётся? Голые знания: ты пароль или знаешь или нет :( |
|||
33
НЕА123
20.11.08
✎
17:03
|
может там есть оно?
C:\Program Files\1cv81\server\reg_XXXX\*.lst |
|||
34
Serg_1960
20.11.08
✎
17:12
|
(33) А ты до "может там" сначала доберись :)
Одним словом "порочный круг" (имхо) "Монмаренси! Спаси нас!"(с) Трое в лодке Одна надежда на Demiurg Вячеслав! Гилев! Спаси нас :) http://gilev.ru/ |
|||
35
wPa
20.11.08
✎
17:15
|
(32) Это понятно - я про другое. На агенте сервера кластеров можно авторизоваться без пароля (если пустой пользователь, то текущая авторизация), но вот на процессе авторизоваться без пароля не получается! А без этого свойства найденной базы не доступны! Вот где хрень. Зачем нужна еще одна авторизация на процессе недогоняю.
|
|||
36
Serg_1960
20.11.08
✎
17:21
|
Сорри, я пас. Так глубоко не копал
|
|||
37
wPa
20.11.08
✎
17:21
|
нарою отпишу код
|
|||
38
wPa
20.11.08
✎
17:30
|
вот это не могу пройти
"Получение полной информации о соединениях и принудительный разрыв соединений возможны только при помощи интерфейса Соединение с рабочим процессом после аутентификации пользователей информационной базы. " |
|||
39
wPa
20.11.08
✎
19:03
|
(38) прошел авторизацию созданием нового пользователя с ролью ПравоАдминистрирования. Работает - сервер и базу получаю. Еслии интересно - выложу
|
|||
40
Demiurg
20.11.08
✎
19:09
|
Вырезаю из старого кода, там есть в некоторых местах лажа, но суть подхода думаю понятна
(на пароль смотреть не надо, он не будет извелкаться, только на общую схему) Попытка Соединения = ПолучитьСоединенияИнформационнойБазы(); Для каждого СоединениеИнформационнойБазы Из Соединения Цикл Если СоединениеИнформационнойБазы.Пользователь.Имя = ИмяПользователя() И СоединениеИнформационнойБазы.ИмяПриложения="1CV8" Тогда Если Лев(СтрокаСоединенияИнформационнойБазы(),5)="File=" Тогда ФайловыйВариант = Истина; Сервер=""; ИмяБазы = ""; Иначе ФайловыйВариант = Ложь; ПозицияРазделителя = Найти(СтрокаСоединенияИнформационнойБазы(),";"); Сервер= Сред(СтрокаСоединенияИнформационнойБазы(),7, ПозицияРазделителя-8); ИмяБазы = Сред(СтрокаСоединенияИнформационнойБазы(),ПозицияРазделителя+5,СтрДлина(СтрокаСоединенияИнформационнойБазы())-ПозицияРазделителя-5); КонецЕсли; КонецЕсли; Текст.ДобавитьСтроку("Пользователь ["+СоединениеИнформационнойБазы.Пользователь+"]"+ "Приложение ["+ПредставлениеПриложения(СоединениеИнформационнойБазы.ИмяПриложения)+"]"+ "Начало ["+ СоединениеИнформационнойБазы.НачалоСеанса+"]"+ "Компьютер ["+ СоединениеИнформационнойБазы.ИмяКомпьютера+"]"+ "Соединение ["+ СоединениеИнформационнойБазы.НомерСоединения+"]"); КонецЦикла; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей(); Для Каждого ПользовательСписка Из СписокПользователей Цикл Текст.ДобавитьСтроку(""+ПользовательСписка.Имя+" ("+ПользовательСписка.ПолноеИмя+")"); КонецЦикла; Исключение КонецПопытки; Если НЕ ФайловыйВариант Тогда Текст.ДобавитьСтроку(""); Текст.ДобавитьСтроку("Параметры клиент-серверной архитектуры:"); Текст.ДобавитьСтроку("Сервер 1С:Предприятие["+Сервер+"]"); Текст.ДобавитьСтроку("Имя базы на сервере ["+СтрЗаменить(ИмяБазы,"""","")+"]"); ЛогинКластера = ""; ПарольКластера = ""; ЛогинАгента=""; ПарольАгента = ""; // Попытка определеть локальное размещение кластера Если СокрЛП(ВРег(Сервер)) = СокрЛП(ВРег(ИмяКомпьютера())) Тогда Попытка РабочийФайл = Лев(КаталогПрограммы(),СтрДлина(КаталогПрограммы())-4)+"\server\reg_1541\1CV8Reg.lst"; ИмяФайла = Лев(РабочийФайл,СтрДлина(РабочийФайл)-3)+"txt"; КопироватьФайл(РабочийФайл,ИмяФайла); Текст1 = Новый ЧтениеТекста(ИмяФайла); Стр=""; Стр = Текст1.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки Если Найти(Стр,ИмяБазы) <> 0 Тогда НачалоПоиска = Найти(Стр,"DBMS")+5; Стр = Прав(Стр,СтрДлина(Стр)-НачалоПоиска+1); ПозицияРазделителя = Найти(Стр,";"); ТипСУБД = Лев(Стр,ПозицияРазделителя-1); Текст.ДобавитьСтроку("Тип СУБД ["+ТипСУБД+"]"); Стр = Прав(Стр,СтрДлина(Стр)-ПозицияРазделителя-9); ПозицияРазделителя = Найти(Стр,";"); СерверСУБД = Лев(Стр,ПозицияРазделителя-3); Текст.ДобавитьСтроку("Сервер СУБД ["+СерверСУБД+"]"); Стр = Прав(Стр,СтрДлина(Стр)-ПозицияРазделителя-5); ПозицияРазделителя = Найти(Стр,";"); БазаСУБД = Лев(Стр,ПозицияРазделителя-3); Текст.ДобавитьСтроку("База СУБД ["+БазаСУБД+"]"); Стр = Прав(Стр,СтрДлина(Стр)-ПозицияРазделителя-8); ПозицияРазделителя = Найти(Стр,";"); ЛогинБазыСУБД = Лев(Стр,ПозицияРазделителя-3); Текст.ДобавитьСтроку("Логин базы ["+ЛогинБазыСУБД+"]"); Стр = Прав(Стр,СтрДлина(Стр)-ПозицияРазделителя-8); ПозицияРазделителя = Найти(Стр,";"); ПарольБазыСУБД = Лев(Стр,ПозицияРазделителя-3); //Текст.ДобавитьСтроку("ПарольБазыСУБД ["+ПарольБазыСУБД+"]"); // Подключение к СУБД СерверSQL = СерверСУБД; ЛогинПользователя = ЛогинБазыСУБД; ПарольПользователя = ПарольБазыСУБД; База = БазаСУБД; СтрокаСоединения = "Provider=SQLOLEDB;Password="+ПарольПользователя+";Persist Security Info=True;User ID=" + ЛогинПользователя+";Initial Catalog="+База+";Data Source="+СерверSQL; Попытка SQLServer = Новый COMОбъект("ADODB.Connection"); SQLServer.CursorLocation=3; SQLServer.ConnectionTimeout = 30; SQLServer.CommandTimeout = 1200; SQLServer.ConnectionString = СтрокаСоединения; RecSet= Новый COMОбъект("ADODB.Recordset"); АДФайла=Прав(Строка(Новый УникальныйИдентификатор),8); АДТрассы="1"; SQLServer.Open(); Текст.ДобавитьСтроку(""); Текст.ДобавитьСтроку("----------------------------------------------"); Текст.ДобавитьСтроку("Анализ сервера СУБД:"); Текст.ДобавитьСтроку(""); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Попытка Query="EXEC xp_msver"; RecSet.Open(Query,SQLServer,3,1,1); Если RecSet.RecordCount>0 Тогда RecSet.MoveFirst(); Пока НЕ RecSet.EOF() Цикл ИмяПараметра=СокрЛП(RecSet.Fields(1).Value); Если ИмяПараметра="ProductVersion" Тогда Текст.ДобавитьСтроку("Версия СУБД ["+RecSet.Fields(3).Value+"]"); ИначеЕсли ИмяПараметра="Platform" Тогда Текст.ДобавитьСтроку("Платформа СУБД ["+RecSet.Fields(3).Value+"]"); ИначеЕсли ИмяПараметра="WindowsVersion" Тогда Текст.ДобавитьСтроку("Версия Windows ["+RecSet.Fields(3).Value+"]"); ИначеЕсли ИмяПараметра="PhysicalMemory" Тогда Текст.ДобавитьСтроку("ОЗУ сервера ["+RecSet.Fields(3).Value+"]"); КонецЕсли; RecSet.MoveNext(); КонецЦикла; КонецЕсли; RecSet.Close(); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Текст.ДобавитьСтроку(""); Попытка Query="EXEC sp_helpdb "+СтрЗаменить(ИмяБазы,"""",""); RecSet.Open(Query,SQLServer,3,1,1); Если RecSet.RecordCount>0 Тогда RecSet.MoveFirst(); Пока НЕ RecSet.EOF() Цикл ИмяПараметра=СокрЛП(RecSet.Fields(1).Value); Текст.ДобавитьСтроку("Для базы "+RecSet.Fields(0).Value+ " общий размер ["+ИмяПараметра+"], DBID ["+RecSet.Fields(3).Value+"], уровень совместимости "+RecSet.Fields(6).Value); RecSet.MoveNext(); КонецЦикла; КонецЕсли; RecSet.Close(); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Текст.ДобавитьСтроку(""); Попытка Query="SELECT * FROM sys.dm_os_performance_counters WHERE counter_name like 'User Connections%'"; RecSet.Open(Query,SQLServer,3,1,1); Если RecSet.RecordCount>0 Тогда RecSet.MoveFirst(); Пока НЕ RecSet.EOF() Цикл ИмяСчетчика=СокрЛП(RecSet.Fields(1).Value); Текст.ДобавитьСтроку("Количество подключений к серверу ["+RecSet.Fields(3).Value+"]"); RecSet.MoveNext(); КонецЦикла; КонецЕсли; RecSet.Close(); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Текст.ДобавитьСтроку(""); Текст.ДобавитьСтроку("Свободного места на диска сервера СУБД:"); Попытка Query="EXEC master.dbo.xp_fixeddrives"; RecSet.Open(Query,SQLServer,3,1,1); Если RecSet.RecordCount>0 Тогда RecSet.MoveFirst(); Пока НЕ RecSet.EOF() Цикл ИмяДиска=СокрЛП(RecSet.Fields(0).Value); Текст.ДобавитьСтроку("на диске "+ИмяДиска+" ="+RecSet.Fields(1).Value+" Mb"); RecSet.MoveNext(); КонецЦикла; КонецЕсли; RecSet.Close(); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Текст.ДобавитьСтроку(""); Текст.ДобавитьСтроку("Распределение памяти на сервере СУБД:"); Попытка Query="SELECT * FROM sys.dm_os_performance_counters WHERE object_name like 'SQLServer:Mem%'"; RecSet.Open(Query,SQLServer,3,1,1); Если RecSet.RecordCount>0 Тогда RecSet.MoveFirst(); Пока НЕ RecSet.EOF() Цикл ИмяСчетчика=СокрЛП(RecSet.Fields(1).Value); Текст.ДобавитьСтроку(""+ИмяСчетчика+" = "+RecSet.Fields(3).Value); RecSet.MoveNext(); КонецЦикла; КонецЕсли; RecSet.Close(); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Попытка SQLServer.Close(); Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Текст.ДобавитьСтроку(""); КонецЕсли; Стр = Текст1.ПрочитатьСтроку(); КонецЦикла; Попытка //УдалитьФайлы(ИмяФайла Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; Исключение Текст.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; КонецЕсли; |
|||
41
Demiurg
20.11.08
✎
19:14
|
через кластер будет что-то вроде этого
Соединения = ПолучитьСоединенияИнформационнойБазы(); Для каждого СоединениеИнформационнойБазы Из Соединения Цикл Если ПустаяСтрока(ИмяПользователя()) Тогда Продолжить; КонецЕсли; Если СоединениеИнформационнойБазы.Пользователь.Имя = ИмяПользователя() И СоединениеИнформационнойБазы.ИмяПриложения="1CV8" Тогда Если Лев(СтрокаСоединенияИнформационнойБазы(),5)="File=" Тогда ФайловыйВариант = Истина; ИмяСервераИБ=""; ИмяБазы = ""; Иначе ФайловыйВариант = Ложь; ПозицияРазделителя = Найти(СтрокаСоединенияИнформационнойБазы(),";"); ИмяКластера= Сред(СтрокаСоединенияИнформационнойБазы(),7, ПозицияРазделителя-8); ОписаниеИБ.Вставить("ИмяСервераИБ",ИмяСервераИБ); ИмяИнформационнойБазы = Сред(СтрокаСоединенияИнформационнойБазы(),ПозицияРазделителя+5,СтрДлина(СтрокаСоединенияИнформационнойБазы())-ПозицияРазделителя-5); ОписаниеИБ.Вставить("ИмяИнформационнойБазы",СтрЗаменить(ИмяИнформационнойБазы,"""","")); ИнформационнаяБаза = ОписаниеИБ.ИмяИнформационнойБазы; Пользователь = ИмяПользователя(); КонецЕсли; Прервать; КонецЕсли; КонецЦикла; Соединитель = Новый COMОбъект("V81.COMConnector"); АгентСервера = Соединитель.ConnectAgent(ИмяКластера); КластерыСерверов = АгентСервера.GetClusters().Выгрузить(); ИмяСервераИБВРег = ВРег(ИмяКластера); Для Каждого Кластер Из КластерыСерверов Цикл Если ВРег(Кластер.HostName) = ИмяСервераИБВРег Тогда СерверИнформационнойБазы = Кластер; Прервать; КонецЕсли; КонецЦикла; АгентСервера.Authenticate(СерверИнформационнойБазы,АдминистраторКластера,ПарольАдминистратораКластера ); ПроцессыCOM = АгентСервера.GetWorkingProcesses(СерверИнформационнойБазы); РабочиеПроцессы = ПроцессыCOM.Выгрузить(); РабочийПроцесс = РабочиеПроцессы[0]; СписокСоединений = РабочиеПроцессы; СоединениеСРабочимПроцессом = Соединитель.ConnectWorkingProcess( РабочийПроцесс.HostName + ":" + Формат(РабочийПроцесс.MainPort, "ЧГ=")); СоединениеСРабочимПроцессом.AddAuthentication(Пользователь,ПарольПользователя); // Получение списка информационных баз ИнформационныеБазы = СоединениеСРабочимПроцессом.GetInfoBases().Выгрузить(); // Поиск информационной базы с требуемыми параметрами подключения ИмяИнформационнойБазыВРег = ВРег(ИмяИнформационнойБазы); Для Каждого ИБ Из ИнформационныеБазы Цикл // Если информационная база найдена Если ВРег(ИБ.Name) = ВРег(ИмяИнформационнойБазы) Тогда // Запомнить информационную базу и прекратить поиск ИнформационнаяБаза = ИБ.Name; Прервать; КонецЕсли; КонецЦикла; ИнформационныеБазы = СоединениеСРабочимПроцессом.GetInfoBases().Выгрузить(); Для Каждого ИБ Из ИнформационныеБазы Цикл // Если информационная база найдена Если ВРег(ИБ.Name) = ВРег(ИмяИнформационнойБазы) Тогда //р= СоединениеСРабочимПроцессом.Connect(ИБ,"тест",""); Для шаг = 0 по СписокСоединений.Количество()-1 Цикл // ф=Соединитель.ConnectWorkingProcess(СписокСоединений[шаг].HostName + ":" + Формат(СписокСоединений[шаг].MainPort, "ЧГ=")); Попытка ф.AddAuthentication(Пользователь,ПарольПользователя);Исключение КонецПопытки; Соединения = ф.GetInfoBaseConnections(ИБ).Выгрузить(); Для Каждого соед Из Соединения Цикл Если соед.AppID="SrvrConsole" Тогда Продолжить; КонецЕсли; Если соед.AppID="COMConsole" Тогда Продолжить; КонецЕсли; Если соед.AppID="Designer" Тогда Продолжить; КонецЕсли; НоваяСессия = Сессии.Добавить(); НоваяСессия.Юзер = соед.UserName; НоваяСессия.Комп = Соед.HostName; НоваяСессия.Сессия1С = соед.ConnID; НоваяСессия.SPID = соед.dbProcInfo; КонецЦикла; КонецЦикла; //Соединения = СоединениеСРабочимПроцессом.GetInfoBaseConnections(ИБ).Выгрузить(); Прервать; КонецЕсли; КонецЦикла; |
|||
42
wPa
20.11.08
✎
19:31
|
(41) Да точно так. Только пользователя и пароль при авторизации на процессе приходится указывать. Поэтому создаю юзера нового с правом администрирования.
|
|||
43
Demiurg
20.11.08
✎
19:33
|
(42) для текущего пользователя Windows из под которого сидишь - добавь в админы кластера (т.е. виндовая авторизация для админа кластера) и все будет чики-поки
|
|||
44
Demiurg
20.11.08
✎
19:35
|
(42) а если совсем правильно, то "стучатся" на кластер надо в 2 захода:
1) сначало без авторизации (считаем, что кластер по умолчанию без админов, либо виндовая авторизация админов) 2) если ошибка авторизация, то просим пользователя указать логин и пароль админа интерактивно (и запоминаем его в ИБ) |
|||
45
wPa
20.11.08
✎
19:55
|
(44) на процессе без авторизации не пройдет по любому
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |