Параметры инф. базы прочитать

1. 1max87 20.09.23 10:59 Сейчас в теме
//Соединяюсь с агентом сервера 1С, чтобы прочитать параметры ИБ
СоединениеСАгентом = V83.ConnectAgent("Server1C");
//получаю массив баз на сервере
МассивБаз = СоединениеСАгентом.GetInfoBases(Кластеры[0]);

Но в этом массиве я могу посмотреть только имя базы. А мне нужно посмотреть параметры базы, в частности код разрешения или включена ли блокировка регламентных заданий. Как добраться до параметров ИБ, чтобы их прочесть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1936667 20.09.23 11:29 Сейчас в теме
(1)
А мне нужно
Авторизоваться
3. 1max87 20.09.23 11:58 Сейчас в теме
(2) СоединениеСАгентом.Authenticate(Кластеры[0], , );

Это сделал
4. user1936667 20.09.23 12:07 Сейчас в теме
(3) Это в кластере. А тебе надо в каждой базе через AddAuthentication
5. 1max87 22.09.23 09:02 Сейчас в теме
(4)
AddAuthentication


Чтобы авторизироваться в каждой базе, нужно к ней подключиться, если я правильно понимаю? а подключиться я не могу к каждой базе, т.к. некоторые базы заблокированы. У меня как раз стоит задача у заблокированных баз прочитать код разрешения.
6. nomad_irk 81 22.09.23 10:14 Сейчас в теме
(5)вы не находите противоречия между тем, что вы хотите сделать и соображений безопасности?
7. 1max87 22.09.23 10:22 Сейчас в теме
(6)
(6) В кластере есть перечень информационных баз с определенными параметрами. Все что мне нужно это прочитать программно эти параметры (НЕ ИЗМЕНЯТЬ ИХ!). Есть метод агента GetInfoBases, но он не дает список всех параметров базы, а только имя. Так вот вопрос в том как добраться до всех параметров базы, чтобы прочитать их.
8. nomad_irk 81 22.09.23 10:31 Сейчас в теме
(7)Вам ответили в (2).
Все что мне нужно это прочитать программно эти параметры (НЕ ИЗМЕНЯТЬ ИХ!)

Код разрешения для того и скрывается, чтобы его не читали кто попало.
9. 1max87 22.09.23 10:48 Сейчас в теме
(8) ответили, но не конкретизировали ответ. потому вопрос актуален, в частности (5)
12. 1max87 22.09.23 11:05 Сейчас в теме
(8) Скрывается, но в (2) дали ответ как открыть, чтобы прочесть (Вы утверждаете). Вопрос в том КАК? Авторизоваться в каждой базе гласит ответ (2). Но в (5) я уточняю (2) ответ, ибо этот ответ не привел пока меня к решению задачи.
15. nomad_irk 81 22.09.23 11:21 Сейчас в теме
(12)читаем С-П:

GetInfoBases (GetInfoBases)
Синтаксис:
GetInfoBases(<Кластер>)
Параметры:
<Кластер> (обязательный)
Тип: Кластер серверов.
Кластер серверов, для которого необходимо получить список информационных баз. Может быть элементом полученного методом GetClusters массива кластеров, зарегистрированных в текущем центральном сервере. Еще кластер может быть создан методом CreateClusterInfo с последующим заполнением его свойств.
Возвращаемое значение:
Тип: COMSafeArray.
Массив кратких описаний информационных баз. Каждое краткое описание информационной базы является объектом с интерфейсом Описание информационной базы.
Описание:
Получает массив информационных баз, зарегистрированных в кластере. Для успешного выполнения метода необходима аутентификация одного из администраторов кластера. Про каждую информационную базу выдается только такая информация, для получения которой не требуется аутентификация пользователя информационной базы. Получение всех параметров зарегистрированных информационных баз, а так же создание и удаление информационных баз может быть выполнено только посредством интерфейса Соединение с рабочим процессом после аутентификации пользователей.
Показать


идем в С-П, в раздел Соединение с рабочим процессом:

Соединение с рабочим процессом (IWorkingProcessConnection)
Методы:
AddAuthentication (AddAuthentication)
AuthenticateAdmin (AuthenticateAdmin)
Connect (Connect)
CreateInfoBase (CreateInfoBase)
CreateInfoBaseInfo (CreateInfoBaseInfo)
Disconnect (Disconnect)
DropInfoBase (DropInfoBase)
GetInfoBaseConnections (GetInfoBaseConnections)
GetInfoBases (GetInfoBases)
UpdateInfoBase (UpdateInfoBase)
Описание:
Позволяет выполнять административные функции над рабочим процессом кластера. Представляет собой объект с интерфейсом IV8ServerConnection.
Показать

идем в GetInfobases

Соединение с рабочим процессом (IWorkingProcessConnection)
GetInfoBases (GetInfoBases)
Синтаксис:
GetInfoBases()
Возвращаемое значение:
Тип: COMSafeArray.
Одномерный массив COMSafeArray, содержащий объекты Информационная база.
Описание:
Получает массив информационных баз, зарегистрированных в кластере серверов. Для выполнения не требуется аутентификации. При этом у информационной базы можно получить только значения свойств Name и Descr.

идем в описание объекта Информационная база


Информационная база (IInfoBaseInfo)
Свойства:
DateOffset (DateOffset)
DBMS (DBMS)
dbName (dbName)
dbPassword (dbPassword)
dbServerName (dbServerName)
dbUser (dbUser)
DeniedFrom (DeniedFrom)
DeniedMessage (DeniedMessage)
DeniedParameter (DeniedParameter)
DeniedTo (DeniedTo)
Descr (Descr)
ExternalSessionManagerConnectionString (ExternalSessionManagerConnectionString)
ExternalSessionManagerRequired (ExternalSessionManagerRequired)
LicenseDistributionAllowed (LicenseDistributionAllowed)
Locale (Locale)
Name (Name)
PermissionCode (PermissionCode)
SafeModeSecurityProfileName (SafeModeSecurityProfileName)
ScheduledJobsDenied (ScheduledJobsDenied)
SecurityLevel (SecurityLevel)
SecurityProfileName (SecurityProfileName)
SessionsDenied (SessionsDenied)
Описание:
Содержит параметры информационной базы 1С:Предприятия. Объект может быть построен программно. Для этого необходимо его создать методом CreateInfoBaseInfo и заполнить его свойства путем присваивания им новых значений. Уже заполненные объекты могут быть получены методом GetInfoBases. В последнем случае для чтения значений всех их свойств, кроме Name, необходимы административные права.
Представляет собой объект с интерфейсом IInfoBaseInfo.
Показать
16. 1max87 22.09.23 11:27 Сейчас в теме
(15) Это я первым делом прочитал. Из всего вышеперечисленного можно выделить "Уже заполненные объекты могут быть получены методом GetInfoBases. В последнем случае для чтения значений всех их свойств, кроме Name, необходимы административные права."

Только что в коде то написать? P.S. Благодарен, что пытаетесь помочь.
17. nomad_irk 81 22.09.23 11:39 Сейчас в теме
(16)
Только что в коде то написать?

Вы не внимательно читаете даже мною приводимые цитаты С-П.
В них сказано, что для возможности получения всех свойств базы, необходимо использовать список баз не кластера, а интерфейса объекта "Соединение с рабочим процессом", у него есть такой же метод GetInfoBases, а так же есть методы для авторизации внутри БД.

Если до сих пор не понятно, то вместо

СоединениеСАгентом = V83.ConnectAgent("Server1C");

необходимо выполнять
СоединениеСРабочимпроцессом = V83.ConnectWorkingProcess("Server1C");
18. 1max87 22.09.23 12:01 Сейчас в теме
(17) Благодарю. Но вопрос еще, зачем нужны методы для авторизации внутри БД, если метод GetInfoBases объекта "Соединение с рабочим процессом" уже возвращает значения всех параметров базы
19. nomad_irk 81 22.09.23 12:03 Сейчас в теме
(18)Опять же внимательно читаем С-П: они не доступны(кроме имени базы), если не выполнить авторизацию внутри БД, к которой выполняется подключение.
20. 1max87 22.09.23 12:26 Сейчас в теме
21. 1max87 22.09.23 12:31 Сейчас в теме
(19)
(19) Вроде бы и ответ, но к рабочему процессу сервера подключиться не удается. указываю порты процессов кластера, тогда подключаюсь, но в процессах кластера не все базы открыты, и соответственно параметры не для всех баз прочитать можно.
22. 1max87 22.09.23 12:40 Сейчас в теме
(21) У сервера 1С может быть несколько процессов, к какому конкретно подключаться(какой порт указывать) не понятно.
24. nomad_irk 81 22.09.23 13:37 Сейчас в теме
(22)получить список процессов и по нему проверять
23. 1max87 22.09.23 12:47 Сейчас в теме
(19)
(17) Менеджер COM-соединений (COM connector)
ConnectWorkingProcess (ConnectWorkingProcess)
Синтаксис:

ConnectWorkingProcess(<Имя>)
Параметры:

<Имя> (обязательный)

Тип: Строка.
Имя или IP-адрес рабочего процесса, с которым должно быть установлено соединение, в формате: <протокол>://<адрес_или_имя>:<порт>
Например:
testcomp
tcp://testcomp
tcp://testcomp:2354
tcp://43.73.34.11:5342.
Возвращаемое значение:

Тип: Соединение с рабочим процессом.

Описание:

Создает административное соединение с рабочим процессом кластера серверов 1С:Предприятия 8.

Доступность:

Интеграция.


------------------------------

Не, не помогло. Нужно порт процесса указывать. Но и это не поможет наверно. Так как в процессе, если база не запущена, то параметры ее так же не прочесть. Вроде как.
25. user1936667 24.09.23 11:46 Сейчас в теме
(5)
Чтобы авторизироваться в каждой базе, нужно к ней подключиться, если я правильно понимаю?
Нет, неправильно.

Надо сначала добавить авторизацию, а потом подключатся. Коннектор умный, он сам применит нужного пользователя.
10. 1max87 22.09.23 10:51 Сейчас в теме
11. 1max87 22.09.23 10:51 Сейчас в теме
13. 1max87 22.09.23 11:14 Сейчас в теме
Кажется я понял. Вы намекаете, если база заблочена, то параметры ее не прочесть
14. 1max87 22.09.23 11:17 Сейчас в теме
По крайней мере как это сделать у заблоченных баз мне никто не ответил пока еще. Ищем дальше)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот