Параллельное использование нескольких версий 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 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

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

8400 7140 руб.

20.08.2024    7764    55    22    

66

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

16800 руб.

06.12.2023    8840    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10412    36    20    

61

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187971    1138    0    

912

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

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

14400 руб.

29.04.2020    32666    106    152    

73

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

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

4200 руб.

10.11.2015    62814    94    59    

79

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

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

6000 руб.

06.11.2012    72787    625    45    

84

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

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

3000 руб.

21.07.2022    9831    7    4    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kolya_tlt 88 13.10.17 17:49 Сейчас в теме
и где же ты был пару месяцев назад?
SP2000; user1550762; Bukaska; DrAku1a; sisdrou; Светлый ум; TreeDogNight; +7 Ответить
2. swimdog 772 13.10.17 22:45 Сейчас в теме
Мы перешли на 8.3.10 и выкинули все старье
4. Team leader 12 14.10.17 20:31 Сейчас в теме
(2) И что это означает? там коннектор не используется?
5. swimdog 772 15.10.17 12:04 Сейчас в теме
(4) Нет, там используются коннекторы одного типа. Для одной версии не нужны такие заморочки.
12. Darklight 33 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 1745 17.10.17 07:52 Сейчас в теме
Может, кто-то ещё всё это автоматизирует - сделает в виде обработки (которая будет автоматом регать платформу) или в виде программы-настройщика?..
9. qvvert 157 17.10.17 17:57 Сейчас в теме
(8) Режим полного лентяя))) а что можно и сделать)))
10. Darklight 33 24.10.17 10:29 Сейчас в теме
Боян (хоть и с более подробными картинками). Вот тут уже подымалась данная тема
https://infostart.ru/public/610960/
Там же и программа настройщик.
Там же, в комментариях описаны возникающие, при этом, проблемы :-(
11. qvvert 157 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 33 18.12.17 13:20 Сейчас в теме
(14)Идея с пулами COM-соединений на сервере (например, в фоновых заданиях), конечно, интересная, но, покуда нет эффективного решения по обмену между сессиями - она будет интересна только для узкого круга задач, где нет необходимости в интенсивном выполнении команд. Зачастую, такие медленные задачи вполне справляются самостоятельно порождая com-соединения. А по лицензиям (что важно только для длительных задач) - тут уж сами выбирайте - либо длинная очередь медленных задач, либо ультрокороткая - но с большим расходом лицензий.
17. karimov_m 18.12.17 14:41 Сейчас в теме
(16)а в чем именно нужен обмен между сессиями? Синхронизацию или длительное хранение общей для всех сессий информации можно организовать в самом механизме пулов, если организовать его в виде вызовов "API пула соединений"
18. Darklight 33 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 33 18.12.17 18:24 Сейчас в теме
(19)Вот эта логика и детали организации тут и будет узким местом!
21. karimov_m 18.12.17 18:44 Сейчас в теме
(20)мм.. ну ок, пусть будет узким для вас)
Как говориться, смотря как приготовить;) Речь же не о гонке производительности а в целом об архитектуре. Так то если судить то вся 1С - одно большое "узкое место", быстрее как бы напрямую делать запросы к SQL серверу..
22. Darklight 33 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 466 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 466 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 7229 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 7229 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 157 12.04.24 10:52 Сейчас в теме
(37) Проверяйте где вы инициализируете ком объект, на клиенте или на сервере. и соответственно реестр смотрите на соответствующем компе.
Оставьте свое сообщение