Подключение двух и более 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 соединение сервер два различный разный релиз один компьютер

См. также

Запуск сервера хранилища конфигураций и сервера удаленного управления на Linux, посредством systemd

Linux Сервера Платформа 1С v8.3 Абонемент ($m)

Сказ о том, как сделать "кошерный" запуск серверов хранилища конфигураций (вдруг еще кто-то до сих пор пользуется) и удаленного администрирования под GNU/Linux с использованием systemd

1 стартмани

07.09.2023    4063    Sloth    0    

22

Первый день архитектора 1С на новой работе

Мониторинг Сервера Администрирование СУБД Бесплатно (free)

Как быстро познакомиться с системой на новой работе или если вас пригласили провести аудит контура на 1С? О том, какие инструменты использовать для быстрой проверки настроек сервера 1С, сервера MS SQL и общей оценки инфраструктуры на производительность, на конференции Infostart Event 2021 Post-Apocalypse рассказал архитектор 1С Юрий Былинкин.

01.06.2023    10526    ardn    19    

78

Путь самурая. Ставим локальный Сервер взаимодействия

Сервера Администрирование веб-серверов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    11586    VPanin56    39    

70

Быстрое конфигурирование серверов с Ansible

Администрирование веб-серверов Сервера Бесплатно (free)

Всю рутину по обновлению платформы, настройке веб-серверов и серверов хранилищ на всем парке серверов компании можно автоматизировать с помощью удобочитаемых YAML-скриптов Ansible. О том, как написать сценарии такой автоматизации, чтобы запускать их параллельно для группы серверов, на митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал ведущий разработчик компании ПИК Digital Павел Комаров.

26.01.2023    4468    lopatrik    4    

22

Жизнь платформы 1C:Предприятие в кластере Kubernetes

Сервера DevOps и автоматизация разработки Облачные сервисы, хостинг Бесплатно (free)

Во многих сферах запуск приложений в Kubernetes является де-факто стандартом архитектуры, так как это позволяет быстро и эффективно задействовать ресурсы, не затрачивая на это большие деньги. Но с платформой 1С:Предприятие не все так просто, но потенциально возможно. Руслан Жданов на митапе «DevOps в 1С: CI/CD. Непрерывная интеграция и поставка решений на 1С» рассказал про то, как с помощью Kubernetes организовать в облаке управление кластером из серверов 1С и реализовать там тестирование приложений на 1С или запуск скриптов на OneScript.

24.01.2023    9199    ZhdanovR    3    

26

Замена имени сервера в файле ibases.v8i у пользователей в домене через GPO

Сети Сервера Платформа 1С v8.3 Абонемент ($m)

При переезде на новый сервер 1С возникла необходимость подготовить всех пользователей (а их 300+) к этому переезду и желательно не мешая их работе. А если быть точнее, то заменить в их списках информационных баз имя сервера. Итак, что имеем в условии.  Есть сервер 1С с именем  WIN2016.  Необходимо перенастроить всех пользователей на новый сервер с именем SRV1C. Для этого придется либо руками у каждого пользователя исправить записи по каждой базе через открытие 1С, либо поправить файл ibases.v8i, который находится в папке профиля пользователя. Второй вариант более интересен, но лезть на 300+ компьютеров не наш метод.

1 стартмани

30.11.2022    3094    0    dungeonkeeper    13    

5

Трое в лодке, не считая собаки - Автономный сервер 1С

Сервера 8.3.14 Конфигурации 1cv8 Бесплатно (free)

Краткая шпаргалка по Автономному серверу 1С. Описаны основные параметры настройки и быстрый алгоритм развертки на ПК.

17.11.2022    4408    AntoShiK86    9    

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

Там это по задумке делается за 1 минуту. В каком месте не получилось? Кстати ты мог бы задать вопрос в телеграм чате тех. поддержки https://www.hostedredmine.com/issues/922012
nyam-nyam; +1 Ответить
2. dimaster 39 25.07.22 20:53 Сейчас в теме
(1) тож решал Вашей подсистемой. все ок
Оставьте свое сообщение