Параллельное использование нескольких версий COM control (несколько версий платформ)

13.10.17

База данных - Инструменты администратора БД

Краткая инструкция по использованию нескольких версий com control.

1. Открываем службу компонентов, добавляем новое приложение COM+ наименование произвольное:

 

 

2. Внутри созданного приложения выбираем компоненты и жмем Добавить новый компонент:

 

Вводим путь для платформы номер 1:
C:\Program Files\1cv8\8.3.9.2233\bin\Comcntrl.dll  - Соответственно библиотека версии 8.3.9.2033

Создастся компонент с именем "V83.COMConnector.1" Его необходимо переименовать. 

После установки НЕСКОЛЬКИХ компонентов потребуется обращаться поименно в зависимости от версии, которая будет присвоена, для этого по вновь созданному компоненту жмем правой кнопкой - псевдоним:

Задаем ему имя "V8.3.9.2033.COMConnector" (при инициализации новых объектов будем создавать их по заданному имени) - можете придумать свое.

 

В этом же окне Поле "Новый код CLSID" - копируем в блокнот нам потребуется оно чуть позднее - делаем пометку что это версия 2233, чтоб не забыть. ({3E006D3E-D351-4446-851D-D8CF792E205A} - V8.3.9.2033

В списке появится 2 компонента, старый можно удалить:

 


Создаем вторую нужную нам версию 

 


 

 

Указываем путь до второй версии:

В моем случае это 8.3.6.2041 -  C:\Program Files\1cv8\8.3.6.2041\bin\comcntr.dll

Так же задаем псевдоним, чтоб не путаться а старую версию удаляем:


 

 

Теперь самое важное:

После регистрации мы увидим, что Windows К компоненте 8.3.9 привязал более позднюю зарегистрированную:


Открываем реестр пуск - выполнить - regedit

Идем в корень реестра и нажимаем CTRL+F - Ищем CLSID компоненты, которая не соответствует, на моем примере  это - {3E006D3E-D351-4446-851D-D8CF792E205A}

 

 

 

 

На этом настройка Windows окончена, для инициализации нужной компоненты используем код вида:

COMConnector = Новый COMObject("V8.3.9.2033.COMConnector");  

Или

COMConnector = Новый COMObject("V8.3.6.2041.COMConnector");  

P.S. если вы захотите использовать 3,4,5 компонтентов - после каждой регистрации нужного компонента необходимо перепроверить все ветки реестра CLSID - Убедится что каждой компоненте адрес библиотеки соответствует

COMConnector COMObject Разные версии Comcntrl

См. также

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    7174    26    4    

50

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    5491    23    1    

51

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2880 руб.

14.01.2013    181687    1103    0    

876

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    29937    88    151    

63

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31493    32    18    

48

Мониторинг Инструменты администратора БД Системный администратор Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    15075    37    0    

54

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней.

6000 руб.

06.11.2012    71246    623    45    

82

Инструменты администратора БД Системный администратор Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62114    90    59    

75
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kolya_tlt 87 13.10.17 17:49 Сейчас в теме
и где же ты был пару месяцев назад?
SP2000; user1550762; Bukaska; DrAku1a; sisdrou; Светлый ум; TreeDogNight; +7 Ответить
2. swimdog 767 13.10.17 22:45 Сейчас в теме
Мы перешли на 8.3.10 и выкинули все старье
4. Team leader 12 14.10.17 20:31 Сейчас в теме
(2) И что это означает? там коннектор не используется?
5. swimdog 767 15.10.17 12:04 Сейчас в теме
(4) Нет, там используются коннекторы одного типа. Для одной версии не нужны такие заморочки.
12. Darklight 32 27.10.17 14:08 Сейчас в теме
(5)И что, в 8.3.10 можно писать
 Новый COMObject("V8.3.COMConnector"); 

и соединяться с любым релизом 10-й версии платформы, и 8.3.10.1212, и с 8.3.10.2561 и с 8.3.10.2685...
???
3. DenisCh 14.10.17 09:03 Сейчас в теме
Это всё на сервере?
А если файловые? Или код НаКлиенте работает? Тогда на каждом компе выполнять?
Я правильно понимаю?
6. qvvert 153 15.10.17 23:15 Сейчас в теме
7. sisdrou 23 16.10.17 09:01 Сейчас в теме
Спасибо. Жаль запоздалая статья. Уже проделан танец с бубном)
8. DrAku1a 1730 17.10.17 07:52 Сейчас в теме
Может, кто-то ещё всё это автоматизирует - сделает в виде обработки (которая будет автоматом регать платформу) или в виде программы-настройщика?..
9. qvvert 153 17.10.17 17:57 Сейчас в теме
(8) Режим полного лентяя))) а что можно и сделать)))
10. Darklight 32 24.10.17 10:29 Сейчас в теме
Боян (хоть и с более подробными картинками). Вот тут уже подымалась данная тема
https://infostart.ru/public/610960/
Там же и программа настройщик.
Там же, в комментариях описаны возникающие, при этом, проблемы :-(
11. qvvert 153 27.10.17 13:38 Сейчас в теме
(10)
Пардоньте, НЕ видел. Действительно те же яйца только в профиль, но добывались самостоятельно.
13. obsfromekb 30 18.12.17 11:29 Сейчас в теме
Тема действительно не нова, но изложена подробно и наглядно.
От себя могу только сказать, что то, что здесь изложено, не панацея для случаев, когда в рамках одного сеанса windows происходит постоянное обращение к COM-объектам 1С разных версий. Первый вызов всегда отрабатывает корректно, но в дальнейшем могут возникать проблемы (как я понимаю Приложение COM+ попадает в кэш и системе становится не важно к какой компоненте мы обращаемся, если Приложение уже используется).
Решил так, перед каждый вызовом COM:
	Попытка
		ЗапуститьПриложение("taskkill.exe /f /im dllhost.exe",,Истина);
		КоннекторV8 = Новый COMObject("V83.COMConnector_8.3.5");
15. karimov_m 18.12.17 12:50 Сейчас в теме
(13)Можно попробовать посмотреть на вкладку Activation в свойствах компонента.
1. Убрать пулы
2. Выбрать опцию "Must be activated in the callers context"
14. karimov_m 18.12.17 12:37 Сейчас в теме
Полезно.
Надо дописать, что манипуляции с добавлением компонентов и реестром (по идее) надо делать на том же сервере, где стоит сервер приложения. Конечно же, если подразумевается создание COM-объекта на сервере..

Также интересна реализация такого приема:
На сервере поднимается 2-3 COM-соединения к базе (типа пул), далее с клиентов поступают запросы/инвоки на какие-либо действия (в той базе, по которой организовался пул) и некий алгоритм обрабатывает эти запросы клиентов к другому приложению (конфигурации) по COM. Тем самым можно организовать "прослойку" (типа API) к другой базе по COM с жестко определенным функционалом + возможная выгода в использовании лицензий (пул из трех COM-соединений может обрабатывать (в порядке очереди) много больше реальных "клиентов")
16. Darklight 32 18.12.17 13:20 Сейчас в теме
(14)Идея с пулами COM-соединений на сервере (например, в фоновых заданиях), конечно, интересная, но, покуда нет эффективного решения по обмену между сессиями - она будет интересна только для узкого круга задач, где нет необходимости в интенсивном выполнении команд. Зачастую, такие медленные задачи вполне справляются самостоятельно порождая com-соединения. А по лицензиям (что важно только для длительных задач) - тут уж сами выбирайте - либо длинная очередь медленных задач, либо ультрокороткая - но с большим расходом лицензий.
17. karimov_m 18.12.17 14:41 Сейчас в теме
(16)а в чем именно нужен обмен между сессиями? Синхронизацию или длительное хранение общей для всех сессий информации можно организовать в самом механизме пулов, если организовать его в виде вызовов "API пула соединений"
18. Darklight 32 18.12.17 15:06 Сейчас в теме
(17)Работа с пулами подразумевает передачу им порции данных для выполнения и возврат результата.
19. karimov_m 18.12.17 18:09 Сейчас в теме
(18) Работа с пулами подразумевает использование пулов, не более=)
Сама задача - организации доступ к некой ИС(1С база1) посредством сторонней ИС (1С база2) из другой системы ("1с база3" - собственно откуда идут клиенты базы "1с база1" через "1С база2") и состоит в эмуляции доступа к 1С базе 1 клиентам базы 1С база3. Только вместо прямого создания соединения из 1С база3 к 1С база1, это происходт через 1С база2 - где формируется пул. А уж какие там данные ходят и что необходимо делается - это уже отдельная логика и детали реализации.. Пулы в 1С база2 - для механизма кэширования обращений к 1С базе1. Что-то такое есть вроде в конфигурации "Интеграция" от tormozit
20. Darklight 32 18.12.17 18:24 Сейчас в теме
(19)Вот эта логика и детали организации тут и будет узким местом!
21. karimov_m 18.12.17 18:44 Сейчас в теме
(20)мм.. ну ок, пусть будет узким для вас)
Как говориться, смотря как приготовить;) Речь же не о гонке производительности а в целом об архитектуре. Так то если судить то вся 1С - одно большое "узкое место", быстрее как бы напрямую делать запросы к SQL серверу..
22. Darklight 32 19.12.17 09:29 Сейчас в теме
(21)Я свои доводы по поводу пулов COM-соединений привёл. Если считаете, что это годится в иных случаях - приведите свои.
23. karimov_m 19.12.17 11:46 Сейчас в теме
(22) какие доводы? Что они "узкое место" ? Так это зависит от задачи же. Поверьте, не все задачи являются оптимизационными.
24. e-9 60 22.12.17 16:25 Сейчас в теме
Добавил первый компонент (8.3.6.2390) успешно; ставлю второй (8.3.10.2561) - валится с ошибкой 80110802 (см. скрин), не добавляется.
Что может быть не так?
Прикрепленные файлы:
25. e-9 60 22.12.17 17:09 Сейчас в теме
26. karimov_m 22.12.17 17:35 Сейчас в теме
(25) теневое копирование включено на системном диске?
После того как добавил второй компонент (и после изменений соотв.ветки реестра). перезагрузите систему. Ошибка может уйти..
31. KAPACEB.AA 464 17.10.19 13:10 Сейчас в теме
(25)
Мне удалось обойти эту ошибку используя библиотеки разной разрядности для компонент. Одну dll выбирал из каталога Program Files, а другую из Program Files x86, установив предварительно две версии клиента.
27. user982256 24.05.18 16:12 Сейчас в теме
(24) У меня такая же проблема, рсскажите удалось победить?
28. e-9 60 21.06.18 18:51 Сейчас в теме
(27) убедил заказчика синхронизировать версии платформ)
...моя трабла возникла на моем компе, где стоит голая семерка без обнов - мож, чего-то там просто не хватает.
29. user982256 21.06.18 19:10 Сейчас в теме
(28) А я решил проблему следующим образом - насоздавал кучу (сколько надо версий, в моем случае 4) псевдономов и в реестре для каждого псевдонима (искать по clsid) сменил физический путь к dll и все взлетело. Так же обращаю внимание на то что COM компоненты должны быть зарегистрированны как серверный компонент - а то проблемы с последовательным конекторов разной версии.
32. KAPACEB.AA 464 17.10.19 13:11 Сейчас в теме
30. kislitsin 31.08.19 18:13 Сейчас в теме
Воспользовался вашей статьей, столкнулся с проблемой
COMConnector = Новый COMObject(ИмяCOMСоединителя()); // "V83.COMConnector"
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура.

Не в курсе как это решить ?
33. M_Volkov 5 29.08.20 10:27 Сейчас в теме
Задаем ему имя "V8.3.9.2033.COMConnector" (при инициализации новых объектов будем создавать их по заданному имени) - можете придумать свое.
Наверное в именах необязательно указывать номер конкретной версии, достаточно их заменить на, например: ПрежняяВерсия или ВысокаяВерсия?
Теперь самое важное:
После регистрации мы увидим, что Windows К компоненте 8.3.9 привязал более позднюю зарегистрированную...
Идем в корень реестра и нажимаем CTRL+F - Ищем CLSID компоненты, которая не соответствует...
Далее на рисунке показана замена ее значения на правильную.
Это я к тому, что периодически приходится обновлять высокую версию платформы - требование обновляемой конфигурации. В связи с этим приходится создавать новый компонент Службы компонентов с новой версией comcntr.dll, а в прежнем компоненте возвращать прежнюю версию comcntr.dll.
Вопрос: если в именах компонент не указывать номер конкретной версии, то можно ли не создавать новый компонент, а заменить в прежнем компоненте высокой версии comcntr.dll новой версии, на которую обновили (заменили) платформу?
34. tormozit 7191 29.04.21 10:13 Сейчас в теме
Реализовал удобную настройку по аналогичному принципу в ИР https://www.hostedredmine.com/issues/922012
35. kDymok 17.06.21 12:37 Сейчас в теме
Замечено, что компоненты, созданные описанным способом через службу компонентов, заметно медленней работают, чем созданный стандартным способом C:\windows\System32\regsvr32 /s "c:\progra~1\1cv8\8317~1.198\bin\comcntr.dll"
Например, одна и таже задача, один и тот же код, выгрузить 2,5 тыс. строк из одной базы в другую проходит или за 2 часа или за 20 минут соответственно.

Было ли у кого такие тормоза? Как решили?
36. tormozit 7191 20.07.21 16:07 Сейчас в теме
(35) Да. Были. Простого решения нет, т.к. внепроцессный COM сервер вызывать тяжелее по определению https://infostart.ru/1c/articles/387577/
37. valvit 7 11.04.24 10:46 Сейчас в теме
Ветка конечно старая, но возможно кто сталкивался. При создании псевдонима интерфейсы не копируются и при обращении из кода сомОбъект3 = Новый COMObject("V83_BUH.COMConnector");
получаю: Ошибка при вызове конструктора (COMObject): Недопустимая строка с указанием класса
Прикрепленные файлы:
38. qvvert 153 12.04.24 10:52 Сейчас в теме
(37) Проверяйте где вы инициализируете ком объект, на клиенте или на сервере. и соответственно реестр смотрите на соответствующем компе.
Оставьте свое сообщение