Получаем настоящий дескриптор соединения из выбранной своей ИБ. Disconnect не принимает сгенерированный UUID.
Где и как запускать
Синтаксический пример толстого клиента Windows, обращающегося к COM-интерфейсу своего отдельного учебного сервера. Эти COM-методы в справке имеют контекст «Интеграция». Здесь COM не запускался.
Подготовка
Подготовьте собственный локальный учебный агент по 127.0.0.1:1540, ровно один свой кластер и один свой рабочий процесс. На компьютере примера должен быть зарегистрирован совместимый V85.COMConnector.
Заполните в своей форме ИмяАгента, ПарольАгента, ИмяАдминистратораКластера и ПарольКластера. Для доступа к своей ИБ нужны ИмяАдминистратораБазы и ПарольБазы. Все пароли вводятся скрыто и не печатаются.
Подключение рабочего процесса берёт действительный адрес из полученного описания процесса. Это не подключение по случайному GUID или к неизвестной машине.
Административный пример запускайте отдельно. В своей целевой ИБ оставьте одно ненужное тестовое соединение с согласованным завершением и без несохранённой работы.
Менеджер = Новый 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];
Соединения = Процесс.GetInfoBaseConnections(База).Выгрузить();
Если Соединения.Количество() <> 1 Тогда
ВызватьИсключение "Нужно одно согласованное тестовое соединение";
КонецЕсли;
Процесс.Disconnect(Соединения[0]);
Сообщить("Запрошено отключение своего тестового соединения");Разбор по шагам
Прочитайте реальные соединения собственной ИБ.
Откажитесь при отсутствии или неоднозначном количестве.
Передайте настоящий дескриптор в Disconnect.
Как проверить результат
Не создаётся фиктивный объект Соединение.
Отключение не выдаётся за сохранение работы пользователя.
Ожидаемый результат
Это короткий синтаксический пример для указанного учебного стенда. Здесь он не выполнялся; сообщение после вызова не заменяет отдельную проверку фактического состояния.
На что обратить внимание
Принудительный разрыв может оборвать текущую операцию; счётчик соединений не доказывает владение без собственной подготовки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.