Параллельное использование нескольких версий 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С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 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.

12000 руб.

06.12.2023    2756    11    1    

30

Infostart УДиФ: Управление данными и формами

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

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

10000 руб.

10.11.2023    3242    10    1    

31

PowerTools

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

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

3600 руб.

14.01.2013    177339    1070    0    

846

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

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

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

14400 руб.

29.04.2020    27137    78    146    

59

"Менеджер потоков 2.1": УПП: "Восстановление партий"

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

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11706    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

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

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

3600 руб.

06.02.2017    31040    31    18    

47

Система хранения присоединенных файлов в томах на диске

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

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

4200 руб.

10.11.2015    61226    87    59    

72

Хранилище файлов на SQL

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

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10893    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kolya_tlt 85 13.10.17 17:49 Сейчас в теме
и где же ты был пару месяцев назад?
SP2000; user1550762; Bukaska; DrAku1a; sisdrou; Светлый ум; TreeDogNight; +7 Ответить
2. swimdog 762 13.10.17 22:45 Сейчас в теме
Мы перешли на 8.3.10 и выкинули все старье
4. Team leader 12 14.10.17 20:31 Сейчас в теме
(2) И что это означает? там коннектор не используется?
5. swimdog 762 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 152 15.10.17 23:15 Сейчас в теме
7. sisdrou 23 16.10.17 09:01 Сейчас в теме
Спасибо. Жаль запоздалая статья. Уже проделан танец с бубном)
8. DrAku1a 1678 17.10.17 07:52 Сейчас в теме
Может, кто-то ещё всё это автоматизирует - сделает в виде обработки (которая будет автоматом регать платформу) или в виде программы-настройщика?..
9. qvvert 152 17.10.17 17:57 Сейчас в теме
(8) Режим полного лентяя))) а что можно и сделать)))
10. Darklight 32 24.10.17 10:29 Сейчас в теме
Боян (хоть и с более подробными картинками). Вот тут уже подымалась данная тема
https://infostart.ru/public/610960/
Там же и программа настройщик.
Там же, в комментариях описаны возникающие, при этом, проблемы :-(
11. qvvert 152 27.10.17 13:38 Сейчас в теме
(10)
Пардоньте, НЕ видел. Действительно те же яйца только в профиль, но добывались самостоятельно.
13. obsfromekb 28 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 458 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 458 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 7132 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 7132 20.07.21 16:07 Сейчас в теме
(35) Да. Были. Простого решения нет, т.к. внепроцессный COM сервер вызывать тяжелее по определению https://infostart.ru/1c/articles/387577/
Оставьте свое сообщение