COM: убрать свою регистрацию без удаления БД

Учебные задачи

DropInfoBase с режимом 0 удаляет регистрацию, но не удаляет базу данных СУБД. Нужны административные права в выбранной ИБ.

Где и как запускать

Синтаксический пример толстого клиента Windows, обращающегося к COM-интерфейсу своего отдельного учебного сервера. Эти COM-методы в справке имеют контекст «Интеграция». Здесь COM не запускался.

Подготовка

  1. Подготовьте собственный локальный учебный агент по 127.0.0.1:1540, ровно один свой кластер и один свой рабочий процесс. На компьютере примера должен быть зарегистрирован совместимый V85.COMConnector.

  2. Заполните в своей форме ИмяАгента, ПарольАгента, ИмяАдминистратораКластера и ПарольКластера. Для доступа к своей ИБ нужны ИмяАдминистратораБазы и ПарольБазы. Все пароли вводятся скрыто и не печатаются.

  3. Подключение рабочего процесса берёт действительный адрес из полученного описания процесса. Это не подключение по случайному GUID или к неизвестной машине.

  4. В процессе оставьте одну отдельную ненужную собственную ИБ без нужных пользователей и заданий; получите согласие на удаление регистрации.

Менеджер = Новый COMОбъект("V85.COMConnector");
Агент = Менеджер.ConnectAgent("127.0.0.1:1540");
Агент.AuthenticateAgent(ИмяАгента, ПарольАгента);
Кластеры = Агент.GetClusters().Выгрузить();
Кластер = Кластеры[0];
Агент.Authenticate(Кластер, ИмяАдминистратораКластера, ПарольКластера);
Процессы = Агент.GetWorkingProcesses(Кластер).Выгрузить();
ОписаниеПроцесса = Процессы[0];
Адрес = ОписаниеПроцесса.HostName + ":" + Формат(ОписаниеПроцесса.MainPort, "ЧГ=0;ЧДЦ=0");
Процесс = Менеджер.ConnectWorkingProcess(Адрес);
Процесс.AuthenticateAdmin(ИмяАдминистратораКластера, ПарольКластера);
Процесс.AddAuthentication(ИмяАдминистратораБазы, ПарольБазы);
Базы = Процесс.GetInfoBases().Выгрузить();
Если Базы.Количество() <> 1 Тогда
    ВызватьИсключение "Нужна одна собственная учебная ИБ";
КонецЕсли;
База = Базы[0];
Сообщить("Собственная регистрация: " + База.Name);
Процесс.DropInfoBase(База, 0);
Сообщить("Вызвано удаление регистрации без удаления БД");

Разбор по шагам

  1. Получите настоящую ИБ своего рабочего процесса.

  2. Явно выберите режим 0, не 1 и не 2.

  3. Отдельно проверьте список регистраций и сохранённую БД.

Как проверить результат

  1. Режим 1 удаляет БД, режим 2 очищает её; здесь они не выбраны.

  2. Объект имеет реальное Name, а не случайный идентификатор.

Ожидаемый результат

Это короткий синтаксический пример для указанного учебного стенда. Здесь он не выполнялся; сообщение после вызова не заменяет отдельную проверку фактического состояния.

На что обратить внимание

  1. Если ИБ не существует, метод может вызвать исключение.

  2. Удаление регистрации не является просмотром и может прекратить доступ по этой регистрации.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.