Имя: Пароль:
1C
1С v8
GetInfoBases() - работает не так, как хотелось бы :(
,
0 HEKPOH
 
26.06.15
15:39
Всем привет!

Задача: получить свойства серверных баз LicenseDistributionAllowed (Разрешить сервером выдачу лицензий) и ScheduledJobsDenied (Блокировка регл. заданий включена). Сервер 8.3

Решение (обработка 1С):
1.    Соединяюсь с центральным сервером
2.    Получаю массив кластеров (в моем случае – кластер один)
3.    Аутентифицируюсь в кластере
4.    Получаю массив рабочих процессов
5.    Подключаюсь к запущенному рабочему процессу
6.    Аутентифицируюсь под юзверем с правами админа баз 1С в этом кластере
7.    Получаю массив баз с помощью GetInfoBases()
8.    В цикле пробегаю по массиву и получаю следующие свойства баз:
a.    dbName
b.    dbServerName
c.    DBMS
d.    LicenseDistributionAllowed
e.    ScheduledJobsDenied
f.    SessionsDenied

Все работает, но обнаружился косяк :(
В кластере 60 баз. В десяти базах свойства dbName, dbServerName, DBMS равны пустой строке. По этим же базам данные в свойствах LicenseDistributionAllowed и ScheduledJobsDenied не соответствуют тем, которые получаются из консоли администрирования серверов 1С.
Кто-нибудь сталкивался с таким? Как победить?

1.    Доступ ко всем базам есть (1С и SQL)
2.    Свойства у всех баз одинаковые (1С и SQL)
3.    Агента рестартовал
4.    Базы аттачил – выявлялись глюки консоли, но потом все приходило в норму

Хелп, плиз :)
1 Лефмихалыч
 
26.06.15
15:53
(0) версия платформы какая?
2 HEKPOH
 
26.06.15
16:01
1С:Предприятие 8.3 (8.3.6.2014)
3 Лефмихалыч
 
26.06.15
16:32
если dbName, dbServerName, DBMS, то какая разница, кто и что возвращает про лицензии и регламентые? В этом случае эти значения LicenseDistributionAllowed и ScheduledJobsDenied на самом деле - неопределено.
4 HEKPOH
 
26.06.15
16:35
(3) вопрос и заключается в том, что:
"почему происходит такое, что свойства пятидесяти баз читаются полностью, а десяти - нет, хотя на все базы есть админский доступ?"
5 HEKPOH
 
26.06.15
16:35
+(4) и как это победить? :)
6 Лефмихалыч
 
26.06.15
16:44
>почему происходит такое
потому, что на селезневской 12 кто-то так решил однажды

>как это победить?
Волевым решением. Например при обходе результата GetInfoBases()

Для каждого ИнформационнаяБаза из РезультатGetInfoBases Цикл
   Если БазаДанныхНеУстановлена(ИнформационнаяБаза) Тогда
       // вести себя так, как будто
       // LicenseDistributionAllowed = ложь
       // ScheduledJobsDenied = Ложь
   КонецЕсли;
КонецЦикла


Функция БазаДанныхНеУстановлена(ИнформационнаяБаза)
Если ПустаяСтрока(ИнформационнаяБаза.dbName) или ПустаяСтрока(ИнформационнаяБаза.dbServerName) или ПустаяСтрока(ИнформационнаяБаза.DBMS) Тогда
   Возврат истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
7 Лефмихалыч
 
26.06.15
16:45
эти две галки все равно смысла не имеют без корректной ссылки на БД
8 HEKPOH
 
26.06.15
16:54
(7) )))))) но, все равно, спасибо за участие.

В задаче нужно было получить корректное LicenseDistributionAllowed.

Метод GetInfoBases() получает же имя и описание базы 1С в любом случае...

В итоге, чтобы проверить значение LicenseDistributionAllowed для баз, у которых dbName = "", придется ручками смотреть свойства в консоли кластера.

Грустно)
9 Лефмихалыч
 
26.06.15
17:07
(8) при не заполненной БД база один хрен не рабочая, так какая в пень разница, кто там лицензии раздает и разрешено ли там исполнять регламентные?..
10 HEKPOH
 
26.06.15
17:08
11 HEKPOH
 
26.06.15
17:08
(9) в том-то и дело, что базы рабочие!
12 HEKPOH
 
26.06.15
17:17
картинка побольше http://s009.radikal.ru/i307/1506/8d/e0908337af4b.jpg
13 Лефмихалыч
 
26.06.15
18:56
Как они могут быть рабочие, если у них не заполнен коннект к СУБД?
14 HEKPOH
 
27.06.15
06:16
(13) еще раз повторюсь. у них не заполнен коннект к СУБД только в результате метода GetInfoBases(). Если же просматривать свойства баз из консоли кластера, то всё у баз заполнено
15 HEKPOH
 
29.06.15
09:15
up
16 DmitrO
 
29.06.15
09:21
Вроде бы, чтобы получить свойства базы, должна быть еще аутентификация в самой базе, в 1С. Для этих, проблемных баз, есть аутентификация для пользователя под которым работает подключение к рабочему процессу?
17 HEKPOH
 
29.06.15
09:23
(16) да. пункт 6 из (0)
18 DmitrO
 
29.06.15
09:27
а рабочих процессов сколько? один?
19 HEKPOH
 
29.06.15
09:29
(18) десять. все активные.
я даже в качестве бреда подключался к каждому из десяти процессов (в цикле). собрал информацию по базам. в результате получилась табличка с данными, которые показывают, что все процессы вернули одни и те же данные
20 DmitrO
 
29.06.15
09:31
хм.. тогда не понятно..
Пиши в 1С.
21 HEKPOH
 
29.06.15
15:42
(16) спасибо!
еще раз перепроверил все. в этих десяти базах стояла доменная авторизация. поменял на 1С, и все заработало