Параллельное использование нескольких версий 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

См. также

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 7140 руб.

20.08.2024    32427    197    104    

187

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

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

15000 руб.

10.11.2023    15515    66    33    

84

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    14243    61    8    

90

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

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

14400 руб.

29.04.2020    37331    115    152    

82

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

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

4200 руб.

10.11.2015    63926    99    59    

82

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    11139    14    4    

22

Администрирование Инструменты администратора БД Удаленное управление Системный администратор 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Расширение разработано для автоматизации интеграции «1С:Зарплата и управление персоналом (редакция 3.1)» с сервисом Яндекс 360 через платформу «n8n». Расширение позволяет автоматически создавать учетные записи Яндекс для новых сотрудников, обновлять данные существующих сотрудников и блокировать учетные записи уволенных сотрудников. Обмен данными осуществляется через API Яндекс 360 с использованием промежуточного сервера платформы n8n, что обеспечивает гибкость, масштабируемость и упрощение интеграционных процессов.

3600 руб.

03.04.2025    839    2    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kolya_tlt 90 13.10.17 17:49 Сейчас в теме
и где же ты был пару месяцев назад?
SP2000; user1550762; Bukaska; DrAku1a; sisdrou; Светлый ум; TreeDogNight; +7 Ответить
2. swimdog 780 13.10.17 22:45 Сейчас в теме
Мы перешли на 8.3.10 и выкинули все старье
4. Team leader 12 14.10.17 20:31 Сейчас в теме
(2) И что это означает? там коннектор не используется?
5. swimdog 780 15.10.17 12:04 Сейчас в теме
(4) Нет, там используются коннекторы одного типа. Для одной версии не нужны такие заморочки.
12. Darklight 34 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 157 15.10.17 23:15 Сейчас в теме
7. sisdrou 23 16.10.17 09:01 Сейчас в теме
Спасибо. Жаль запоздалая статья. Уже проделан танец с бубном)
8. DrAku1a 1765 17.10.17 07:52 Сейчас в теме
Может, кто-то ещё всё это автоматизирует - сделает в виде обработки (которая будет автоматом регать платформу) или в виде программы-настройщика?..
9. qvvert 157 17.10.17 17:57 Сейчас в теме
(8) Режим полного лентяя))) а что можно и сделать)))
10. Darklight 34 24.10.17 10:29 Сейчас в теме
Боян (хоть и с более подробными картинками). Вот тут уже подымалась данная тема
https://infostart.ru/public/610960/
Там же и программа настройщик.
Там же, в комментариях описаны возникающие, при этом, проблемы :-(
11. qvvert 157 27.10.17 13:38 Сейчас в теме
(10)
Пардоньте, НЕ видел. Действительно те же яйца только в профиль, но добывались самостоятельно.
13. obsfromekb 31 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 34 18.12.17 13:20 Сейчас в теме
(14)Идея с пулами COM-соединений на сервере (например, в фоновых заданиях), конечно, интересная, но, покуда нет эффективного решения по обмену между сессиями - она будет интересна только для узкого круга задач, где нет необходимости в интенсивном выполнении команд. Зачастую, такие медленные задачи вполне справляются самостоятельно порождая com-соединения. А по лицензиям (что важно только для длительных задач) - тут уж сами выбирайте - либо длинная очередь медленных задач, либо ультрокороткая - но с большим расходом лицензий.
17. karimov_m 18.12.17 14:41 Сейчас в теме
(16)а в чем именно нужен обмен между сессиями? Синхронизацию или длительное хранение общей для всех сессий информации можно организовать в самом механизме пулов, если организовать его в виде вызовов "API пула соединений"
18. Darklight 34 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 34 18.12.17 18:24 Сейчас в теме
(19)Вот эта логика и детали организации тут и будет узким местом!
21. karimov_m 18.12.17 18:44 Сейчас в теме
(20)мм.. ну ок, пусть будет узким для вас)
Как говориться, смотря как приготовить;) Речь же не о гонке производительности а в целом об архитектуре. Так то если судить то вся 1С - одно большое "узкое место", быстрее как бы напрямую делать запросы к SQL серверу..
22. Darklight 34 19.12.17 09:29 Сейчас в теме
(21)Я свои доводы по поводу пулов COM-соединений привёл. Если считаете, что это годится в иных случаях - приведите свои.
23. karimov_m 19.12.17 11:46 Сейчас в теме
(22) какие доводы? Что они "узкое место" ? Так это зависит от задачи же. Поверьте, не все задачи являются оптимизационными.
24. e-9 62 22.12.17 16:25 Сейчас в теме
Добавил первый компонент (8.3.6.2390) успешно; ставлю второй (8.3.10.2561) - валится с ошибкой 80110802 (см. скрин), не добавляется.
Что может быть не так?
Прикрепленные файлы:
25. e-9 62 22.12.17 17:09 Сейчас в теме
26. karimov_m 22.12.17 17:35 Сейчас в теме
(25) теневое копирование включено на системном диске?
После того как добавил второй компонент (и после изменений соотв.ветки реестра). перезагрузите систему. Ошибка может уйти..
31. KAPACEB.AA 470 17.10.19 13:10 Сейчас в теме
(25)
Мне удалось обойти эту ошибку используя библиотеки разной разрядности для компонент. Одну dll выбирал из каталога Program Files, а другую из Program Files x86, установив предварительно две версии клиента.
27. user982256 24.05.18 16:12 Сейчас в теме
(24) У меня такая же проблема, рсскажите удалось победить?
28. e-9 62 21.06.18 18:51 Сейчас в теме
(27) убедил заказчика синхронизировать версии платформ)
...моя трабла возникла на моем компе, где стоит голая семерка без обнов - мож, чего-то там просто не хватает.
29. user982256 21.06.18 19:10 Сейчас в теме
(28) А я решил проблему следующим образом - насоздавал кучу (сколько надо версий, в моем случае 4) псевдономов и в реестре для каждого псевдонима (искать по clsid) сменил физический путь к dll и все взлетело. Так же обращаю внимание на то что COM компоненты должны быть зарегистрированны как серверный компонент - а то проблемы с последовательным конекторов разной версии.
32. KAPACEB.AA 470 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 7290 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 7290 20.07.21 16:07 Сейчас в теме
(35) Да. Были. Простого решения нет, т.к. внепроцессный COM сервер вызывать тяжелее по определению https://infostart.ru/1c/articles/387577/
37. valvit 10 11.04.24 10:46 Сейчас в теме
Ветка конечно старая, но возможно кто сталкивался. При создании псевдонима интерфейсы не копируются и при обращении из кода сомОбъект3 = Новый COMObject("V83_BUH.COMConnector");
получаю: Ошибка при вызове конструктора (COMObject): Недопустимая строка с указанием класса
Прикрепленные файлы:
38. qvvert 157 12.04.24 10:52 Сейчас в теме
(37) Проверяйте где вы инициализируете ком объект, на клиенте или на сервере. и соответственно реестр смотрите на соответствующем компе.
Оставьте свое сообщение