Подключение двух и более COMConnector'ов (COM-соединений) к различным релизам сервера 1С:Предприятие 8.3 на одном компьютере

04.06.22

Администрирование - Сервера

В публикации рассматривается вопрос о создании двух и более одновременно работающих COM-соединений к различным релизам сервера 1С:Предприятие 8.3 на одном компьютере. Разрабатывалось, тестировалось и работает под платформами 1С 8.3. Но, насколько я углубился в тему, этот алгоритм должен работать и под 8.1, и под 8.2 и в комбинациях.

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

Поэтому решился выложить свою версию.

Просидев ночь, я получил короткий и быстрый алгоритм создания двух и более COM-соединений к серверам 1С:Предприятие разных релизов на одном компьютере, коим и хочу поделиться.

 

Среда разработки, тестирования и использования:

ОС: Windows 11, СУБД: MS SQL 2019, Серверы 1С:Предприятие: релизы 8.3.13.1644 и 8.3.21.1302

ОС: Windows Server 2019, СУБД: MS SQL 2019, Серверы 1С:Предприятие: релизы 8.3.13.1644 и 8.3.21.1302

 

Используемые публикации и обсуждения:

[Шпаргалка] Несколько версий сервера 1С на одном сервере (компьютер)

COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС"

Теперь по порядку.

Собственно началось с установки на Windows Server 2019 второго сервера 1С:Предприятие 8.3.21.1302 для работы с конфигурацией "Бухгалтерия предприятия 3.0". До этого в хлам переписанная конфигурация "Управление торговлей 10.3" работала под сервером 1С:Предприятие 8.3.13.1644. Перевести ее сразу под сервер 1С:Предприятие 8.3.21.1302 не представлялось возможным (требуется доработка конфигурации и продолжительное тестирование), а "Бухгалтерия предприятия 3.0" не работает под сервером 1С:Предприятие 8.3.13.1644. Но нужно как-то организовать обмен между УТ и БП. Поэтому и возникла задача об организации двух ОДНОВРЕМЕННО работающих COM-соединений для серверов 1С:Предприятие 8.3.13.1644 и 1С:Предприятие 8.3.21.1302.

Сначала была установка второго сервера 1С:Предприятие 8.3.21.1302. Останавливаться на этом этапе не буду, он грамотно и подробно описан в [Шпаргалка] Несколько версий сервера 1С на одном сервере (компьютер). Замечу только, что после выполнения этого этапа у меня получилось вот что:

 

Затем начался непосредственно "танец с бубнами" с COM-соединениями. Попробовал использовать Подсистема "Инструменты разработчика" 1С 8. Но так как процесс проходил ночью после рабочего дня, то окончательно разобраться в ней, к сожалению, не получилось. Потом глаз упал на COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС". Вот тут стало интереснее и в результате чтения обсуждения и производства опытов над ОС и 1С и родился алгоритм, который привожу ниже.

ШАГ 1. Запускаем консоль Службы компонентов.

В Windows 11 я не нашел как ее запустить интерактивно, поэтому использовал следующее решение. Запускаем командную строку (CMD) от имени администратора. Выбираем "Файл" -> "Добавить или удалить оснастку" -> "Службы компонентов" -> "Добавить" -> "ОК". Затем "Файл" -> "Сохранить как...". Вводим свое наименование (например, "Службы компонентов") и место сохранения. Таким образом получаем консоль, в которой будем работать дальше.

 

 

ШАГ 2. В ветке "Приложения COM+" создаем 3 приложения : 1СV8, 1CV8_3_13_1644 и 1CV8_3_21_1302, и 2 псевдонима: V83.ComConnector.8.3.13.1644 и V83.ComConnector.8.3.21.1302.

Имена приложениям и псевдонимам для удобства даем в соответствии с релизами серверов 1С:Предприятие.

 

 

Способ активации Серверное приложение, Далее

 

 

Учетная запись Текущий пользователь, Далее

 

 

Далее

 

 

Далее

 

 

Результат

 

 

Добавляем компонент в приложение 1CV8

 

 

При этом выбираем ЛЮБОЙ из нужных нам двух компонентов comcntr.dll

 

 

Далее

 

 

Результат

 

 

Создаем 2 псевдонима: V83.ComConnector.8.3.13.1644 и V83.ComConnector.8.3.21.1302 в соответствующих приложениях

 

 

Результат

 

 

На этом работа с консолью Службы приложений завершена.

В результате созданы два COMConnector'а: V83.COMConnector.8.3.13.1644 и V83.COMConnector.8.3.21.1302.

Но весь процесс еще не завершен.

ШАГ 3. Работаем с реестром Windows.

Теперь нужно привести в соответствие псевдонимы созданных COMConnector'ов с реальными библиотеками comcntr.dll, которые будут подгружаться при вызове конструктора Новый COMОбъект.

Для этого запускаем Win+R - regedit.

Далее описанная операция повторяется для каждого созданного псевдонима.

По Ctrl-F ищем имя псевдонима V83.ComConnector.8.3.13.1644

 

 

Нашли раздел (имя раздела = ID псевдонима)

 

 

В подразделе InprocServer32 в значение (По умолчанию) подставляем полный путь к нужной компоненте

 

 

Практика показала, что эти изменения достаточно внести в ветке HKEY_CLASSES_ROOT\WOW6432Node\CLSID\.

Но для успокоения души можно пройтись дальше поиском (F3) и удостовериться, что имена компонентов COM+ совпадают с папками 1С bin соответствующих версий.

ТЕПЕРЬ ВСЕ, можно работать.

ШАГ 4. Создание и вызов методов компонент в языке 1С.

ПРИМЕР тонкий клиент

&НаКлиенте
Функция ПодключитьCOM()
    результат = Неопределено;
    строкаПодключения = "Srvr=""localhost:1541"";Ref=""ut"";Usr=""администратор"";Pwd=""12345"";";
    Попытка
        соединение = Новый COMОбъект("V83.COMConnector.8.3.13.1644");
        результат = соединение.Connect(строкаПодключения);
        ПоказатьПредупреждение(, "Подключено!");
    Исключение
        Сообщить(ОписаниеОшибки());
        ПоказатьПредупреждение(, "Ошибка подключения!");
    КонецПопытки;
    Возврат результат;
КонецФункции
// Это можно делать и &НаСервере, только смысла в возврате значения нет,
// т.к. он, в отличие от &НаКлиенте, не сохранится для дальнейшего использования.
// Но это уже другая история...

ПРИМЕР толстый клиент

Функция ПодключитьCOM()
    результат = Неопределено;
    строкаПодключения = "Srvr=""localhost:2541"";Ref=""bp"";Usr=""администратор"";Pwd=""12345"";";
    Попытка
        соединение = Новый COMОбъект("V83.COMConnector.8.3.21.1302");
        результат = соединение.Connect(строкаПодключения);
        Предупреждение("Подключено!");
    Исключение
        Сообщить(ОписаниеОшибки());
        Предупреждение("Ошибка подключения!");
    КонецПопытки;
    Возврат результат;
КонецФункции

PS

    ПРЕИМУЩЕСТВА

    1. СКОРОСТЬ И ПРОСТОТА. Все операции можно неторопливо выполнить за 5-10 минут (разброс - это время поиска в реестре Windows на конкретном компьютере). Алгоритм не сложный и доступный для тех, кто сталкивался с подобными проблемами.

    2. СДЕЛАЛ И ЗАБЫЛ. Код строго привязан к компонентам COM+ операционной системы и на него не повлияют ни "случайная" раз- или пере- регистрация COM-компонентов, ни установка нового релиза платформы 1С, ни черт, ни ладан, ни герой... :). Хотя это пока под вопросом из-за непродолжительного срока тестирования и использования. Если же все-таки произошел сбой, то восстановление занимает те же 5 минут, причем не требуется перезапуск клиентских приложений 1С!

    3. ПРАВА. Не требуются полные права администратора операционной системы на выполнение описанных операций. Достаточны доступ к консоли Службы компонентов и реестру WIndows. Если системный администратор не готов предоставить их администратору или программисту 1С, то он способен выполнить эти операции сам за короткое время.

    4. ОПИСАНИЕ. Постарался более-менее полно и наглядно описать алгоритм (не в последнюю очередь для себя, чтобы при необходимости им воспользоваться).

    НЕДОСТАТКИ

    1. Говорят, что при регистрации компонентов указанным способом (посредством DCOM) снижается скорость обработки данных. Мной это еще не тестировалось. Основной целью был стабильный одновременный обмен данными между базами данных приложений, работающих под серверами 1С:Предприятие разных релизов, установленных на одном компьютере.

    2. Малое время использования для набора статистики по стабильности, скорости и т.п., нужно время, будем посмотреть.

    БАЯН

    Как было сказано в начале, уверен, что многие занимались этой проблемой и решили ее. Но мне такое решение, к сожалению, не попалось :(. Вот и решил выложить свое выстраданное. Поэтому убедительна просьба не давать комментарии типа "разуй глаза", "погугли" и т.п. Если есть конкретные замечания или более совершенные или отличные разработки - прошу. Благодарю.

Вступайте в нашу телеграмм-группу Инфостарт

WIndows COM+ COM COMConnector соединение сервер два различный разный релиз один компьютер

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Сервера Системный администратор Бесплатно (free)

За считанные месяцы цены на серверное железо выросли в разы, а бюджеты компаний – нет, поэтому ошибка при подборе оборудования для 1С теперь обходится особенно дорого. Разбираем, почему логика «возьмем самое дорогое и производительное» здесь не работает, какие особенности памяти, дисков и серверных конфигураций нужно учитывать и где действительно можно сэкономить – от свертки базы до использования десктопного компьютера. Показываем, как продавцы могут предлагать вместо подходящих компонентов более выгодные им аналоги или неликвид и почему советы нейросетей о частоте процессора, конфигурациях и тесте Гилева нельзя принимать на веру. Объясняем, какие ошибки приводят к потере производительности и на чем при подборе сервера для 1С экономить нельзя.

08.09.2026    766    7o2uYXg    1    

4

HighLoad оптимизация Сервера Системный администратор 1С 8.3 Абонемент ($m)

Снимает настройки кластера, рабочих серверов и баз штатным объектом платформы и по каждой пишет не значение, а последствие: не "резервирование = Ложь", а "при аварии сеансы базы завершатся, а не переедут". Только чтение.

10 стартмани

28.08.2026    596    3    nedomolkov.ivan    0    

1

HighLoad оптимизация Сервера Системный администратор 1С 8.3 Бесплатно (free)

Поставил RAS, а кластер отвечает "различаются версии клиента и сервера". Открыл свойства сервера, а поля интервала перезапуска там больше нет. Разбор двух диалогов консоли: что вписывать в каждое поле и от чего это защищает.

28.08.2026    1181    nedomolkov.ivan    6    

2

HighLoad оптимизация Сервера Системный администратор 1С 8.3 Бесплатно (free)

Кластер достался настроенным кем-то другим: rphost растёт, к утру обмены не выполнены, а в консоли десятки значений, и непонятно, норма это или мина. Разбор того, чего стоят дефолты кластера на боевой базе и чем их читать, не открывая консоль.

28.08.2026    1154    nedomolkov.ivan    2    

3

HighLoad оптимизация Сервера Системный администратор Программист 1С 8.3 Бесплатно (free)

Сводная таблица показывала загрузку диска 97-99 % каждый день, и вывод напрашивался сам: диск упирается в потолок, надо расширять. Среднее по тому же ряду оказалось 4,24 %, а выше 80 % диск был в семи пятиминутных интервалах из 2016 - по одному на каждую ночь недели, это окно резервного копирования. В потолок диск не упирается. Потом тот же метод соврал в обратную сторону: на прореженном до пяти минут ряде исчезли пятнадцатисекундные провалы свободного места до 27 мегабайт. Одна ошибка чтения графиков дала два противоположных ложных вывода из одних данных. Настоящее узкое место сидело в памяти, и находок там две: растущий рабочий процесс сервера приложений и мёртвые сеансы терминального сервера. Разбираю, какие свойства кластера это ограничивают, какие три таймаута проверить, и показываю место, где мой собственный расчёт не сошёлся на три с половиной гигабайта.

19.08.2026    1385    nedomolkov.ivan    5    

3

Администрирование СУБД Сервера Системный администратор Программист 1С 8.3 Бесплатно (free)

Переносили боевую базу 276 ГБ с MS SQL на PostgreSQL. Перенос вставал четыре раза подряд, каждый раз через час и без единого сообщения об ошибке. Две гипотезы, взятые из чужих статей, замеры не подтвердили. Настоящей причиной оказался неразрывный пробел в наименовании номенклатуры: ICU схлопывает его с обычным, MS SQL считает строки разными, PostgreSQL одинаковыми, и уникальный индекс не создаётся. Разбор с цифрами, скриптом поиска и правилом вместо списка символов.

13.08.2026    1441    nedomolkov.ivan    2    

3

Администрирование СУБД Сервера Системный администратор Программист 1С 8.3 Бесплатно (free)

Перенесли базу 1С на 276 ГБ с Windows и MS SQL на Ubuntu и PostgreSQL. Главная неприятность оказалась вообще не про Linux, а вот восемь встреченных по дороге ловушек про него ровно настолько, что каждая стоила отдельного часа. Флаг виртуализации, который врёт; процессы, умирающие вместе с сессией; кластер с английской локалью; автотюнер с work_mem 512 МБ. Ни одной из них нет в чек-листах, которые я читал перед началом.

13.08.2026    1494    nedomolkov.ivan    2    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7385 04.06.22 12:58 Сейчас в теме
Попробовал использовать Подсистема "Инструменты разработчика" 1С 8... разобраться в ней, к сожалению, не получилось

Там это по задумке делается за 1 минуту. В каком месте не получилось? Кстати ты мог бы задать вопрос в телеграм чате тех. поддержки https://www.hostedredmine.com/issues/922012
nyam-nyam; +1 Ответить
2. dimaster 42 25.07.22 20:53 Сейчас в теме
(1) тож решал Вашей подсистемой. все ок
3. Djo82 13 27.12.24 08:20 Сейчас в теме
А если физически 2 разных сервера, на двух по 3 приложения com создавать? Немного не догнал, второй дублирует первый? Почему 3 если платформы разных 2?
4. Djo82 13 27.12.24 09:02 Сейчас в теме
Не удалось подключиться к другой программе: Произошла исключительная ситуация (V83.COMConnector.1): Несоответствие версий клиента и сервера 1С:Предприятия
Различаются версии клиента и сервера (8.3.22.2239 - 8.3.25.1374), клиентское приложение: COM-соединение

не получилось, главное в бухгалтерии проверка проходит, в унф нет
Унф на 8.3.22.2239
БП на 8.3.25.1374
5. Djo82 13 27.12.24 09:59 Сейчас в теме
пошел в отладчик,
COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя());

Значение

ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()

Возвращает

v83.COMConnector

а мне нужен

CopyOf.V83.COMConnector.8.3.25.1374

подсунул пока текстом, дальше видно будет
6. Djo82 13 27.12.24 20:22 Сейчас в теме
Сделал, но один нюанс остался.
Там где стоит унф на 8.3.22.2239 зарегистировал V83.COMConnector с платформой 8.3.25.1374, это нужно чтобы COM шел по той платформе кому выгружаем. но у меня почему тот на отрез отказывался и предлагал при той же проверки платформу 8.3.22.2239. Все снес добавил основной на платформе 8.3.22.2239 и добавил псевдоним с платформой 8.3.25.1374. и этот же псевдоним подсунул унф-ке. (смотри ниже)

!!!Обязательно проверяйте реестр, при создании через псевдоним, платформа перенимается с первого.!!!

Вставил костыль и прописал константу (тип строка), вывел на форму настройки подключения. Туда вписал наименования компоненты Приложения com+ с платформой 8.3.25.1374.

На втором сервере,где стоит бухгалтерия на 8.3.25.1374, таких проблем не было.
поставил ровно наоборот. зарегистировал V83.COMConnector с платформой 8.3.22.2239. и больше ничего не добавлял никаких псевдонимов.

Код из УНФ 3, где подменивал строки
Функция УстановитьВнешнееСоединениеСБазой(Параметры, ПодключениеНедоступно, КраткоеОписаниеОшибки) Экспорт
	
	Результат = Новый Структура;
	Результат.Вставить("Соединение");
	Результат.Вставить("КраткоеОписаниеОшибки", "");
	Результат.Вставить("ПодробноеОписаниеОшибки", "");
	Результат.Вставить("ОшибкаПодключенияКомпоненты", Ложь);
	
#Если МобильныйКлиент Тогда
	
	СтрокаСообщенияОбОшибке = НСтр("ru = 'Подключение к другой программе не доступно в мобильном клиенте.'");
	
	Результат.ОшибкаПодключенияКомпоненты = Истина;
	Результат.ПодробноеОписаниеОшибки = СтрокаСообщенияОбОшибке;
	Результат.КраткоеОписаниеОшибки = СтрокаСообщенияОбОшибке;
	
	Возврат Результат;
	
#Иначе
	
	Если ПодключениеНедоступно Тогда
		Результат.Соединение = Неопределено;
		Результат.КраткоеОписаниеОшибки = КраткоеОписаниеОшибки;
		Результат.ПодробноеОписаниеОшибки = КраткоеОписаниеОшибки;
		Возврат Результат;
	КонецЕсли;
	
	Попытка
		//COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); // "V83.COMConnector"  
		//++new 
		Конст_COMConnector = New_ДопроведениеДокументов.ПолучитьКонстантуCOMConnector();
		Если ЗначениеЗаполнено(Конст_COMConnector) Тогда
			COMConnector = Новый COMObject(СокрЛП(Конст_COMConnector)); 
		Иначе
			COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); // "V83.COMConnector"
		КонецЕсли;
		//COMConnector = Новый COMObject("CopyOf.V83.COMConnector.8.3.25.1374");
		//new++ //временное решение
	Исключение
		Информация = ИнформацияОбОшибке();
		СтрокаСообщенияОбОшибке = НСтр("ru = 'Не удалось подключиться к другой программе: %1'");
		
		Результат.ОшибкаПодключенияКомпоненты = Истина;
		Результат.ПодробноеОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, ПодробноеПредставлениеОшибки(Информация));
		Результат.КраткоеОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, КраткоеПредставлениеОшибки(Информация));
		
		Возврат Результат;
	КонецПопытки;
	
	ФайловыйВариантРаботы = Параметры.ВариантРаботыИнформационнойБазы = 0;
	
	// Проверка корректности указания параметров.
	ОшибкаПроверкиЗаполнения = Ложь;
	Если ФайловыйВариантРаботы Тогда
		
		Если ПустаяСтрока(Параметры.КаталогИнформационнойБазы) Тогда
			СтрокаСообщенияОбОшибке = НСтр("ru = 'Не задано месторасположение каталога информационной базы.'");
			ОшибкаПроверкиЗаполнения = Истина;
		КонецЕсли;
		
	Иначе
		
		Если ПустаяСтрока(Параметры.ИмяСервера1СПредприятия) Или ПустаяСтрока(Параметры.ИмяИнформационнойБазыНаСервере1СПредприятия) Тогда
			СтрокаСообщенияОбОшибке = НСтр("ru = 'Не заданы обязательные параметры подключения: ""Имя сервера""; ""Имя информационной базы на сервере"".'");
			ОшибкаПроверкиЗаполнения = Истина;
		КонецЕсли;
		
	КонецЕсли;
	
	Если ОшибкаПроверкиЗаполнения Тогда
		
		Результат.ПодробноеОписаниеОшибки = СтрокаСообщенияОбОшибке;
		Результат.КраткоеОписаниеОшибки   = СтрокаСообщенияОбОшибке;
		Возврат Результат;
		
	КонецЕсли;
	
	// Формирование строки соединения.
	ШаблонСтрокиСоединения = "[СтрокаБазы][СтрокаАутентификации]";
	
	Если ФайловыйВариантРаботы Тогда
		СтрокаБазы = "File = ""&КаталогИнформационнойБазы""";
		СтрокаБазы = СтрЗаменить(СтрокаБазы, "&КаталогИнформационнойБазы", Параметры.КаталогИнформационнойБазы);
	Иначе
		СтрокаБазы = "Srvr = ""&ИмяСервера1СПредприятия""; Ref = ""&ИмяИнформационнойБазыНаСервере1СПредприятия""";
		СтрокаБазы = СтрЗаменить(СтрокаБазы, "&ИмяСервера1СПредприятия",                     Параметры.ИмяСервера1СПредприятия);
		СтрокаБазы = СтрЗаменить(СтрокаБазы, "&ИмяИнформационнойБазыНаСервере1СПредприятия", Параметры.ИмяИнформационнойБазыНаСервере1СПредприятия);
	КонецЕсли;
	
	Если Параметры.АутентификацияОперационнойСистемы Тогда
		СтрокаАутентификации = "";
	Иначе
		
		Если СтрНайти(Параметры.ИмяПользователя, """") Тогда
			Параметры.ИмяПользователя = СтрЗаменить(Параметры.ИмяПользователя, """", """""");
		КонецЕсли;
		
		Если СтрНайти(Параметры.ПарольПользователя, """") Тогда
			Параметры.ПарольПользователя = СтрЗаменить(Параметры.ПарольПользователя, """", """""");
		КонецЕсли;
		
		СтрокаАутентификации = "; Usr = ""&ИмяПользователя""; Pwd = ""&ПарольПользователя""";
		СтрокаАутентификации = СтрЗаменить(СтрокаАутентификации, "&ИмяПользователя",    Параметры.ИмяПользователя);
		СтрокаАутентификации = СтрЗаменить(СтрокаАутентификации, "&ПарольПользователя", Параметры.ПарольПользователя);
	КонецЕсли;
	
	СтрокаСоединения = СтрЗаменить(ШаблонСтрокиСоединения, "[СтрокаБазы]", СтрокаБазы);
	СтрокаСоединения = СтрЗаменить(СтрокаСоединения, "[СтрокаАутентификации]", СтрокаАутентификации);
	
	Попытка 
		
		Результат.Соединение = COMConnector.Connect(СтрокаСоединения);
	Исключение
		Информация = ИнформацияОбОшибке();
		СтрокаСообщенияОбОшибке = НСтр("ru = 'Не удалось подключиться к другой программе: %1'");
		
		Результат.ОшибкаПодключенияКомпоненты = Истина;
		Результат.ПодробноеОписаниеОшибки     = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, ПодробноеПредставлениеОшибки(Информация));
		Результат.КраткоеОписаниеОшибки       = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, КраткоеПредставлениеОшибки(Информация));
	КонецПопытки;
	
	Возврат Результат;
	
#КонецЕсли
	
КонецФункции
Показать
7. kejsi5 28.06.25 03:19 Сейчас в теме
сделал все в точности как указано по пунктам
и при подключении по второй версии дает ошибку
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса

при этом что заметил - если раскрыть вторую версию в консоли
картинка в группе интерфейсы нет ничего (а в первой зарегистрированной версии есть IV8ComConnector) ну и соответственно при подключении по второму имени ошибка - которая выше - может кто-то знает что не так?
Делал на windows server 2012
8. 7OH 90 09.09.26 22:31 Сейчас в теме
Без реестра сделал сегодня по итогу.
Просто создаешь нужное количество приложений.
Для каждого добавляешь компоненту, указываешь нужную DLL.
Создаётся всегда как ComConnector.1
Вот на нём делаю псевдоним тут же и удаляю оригинал.
И так для каждого приложения (так как ком.1 может быть только один).
--
Тоже покурил обработку из первого поста, но что-то не взлетало, хотя папки в КОМ+ и компоненты она создала - надо отдать должное.
Надо наверное второй подход сделать попробовать к ней, чтобы сравнить с тем, что уже работает и понять причину не взлёта в ней.
Вот менять версии в ней будет удобнее - без реестров - просто мышкой.
Для отправки сообщения требуется регистрация/авторизация