Имя: Пароль:
1C
1С v8
COM соединения с базами 1С на различных версиях платформы "Без перерегистрации и СМС"
0 Mikhail Volkov
 
10.07.19
11:12
Ссылка на статью: http://catalog.mista.ru/public/610960/ - не получается пункт: 6. Выбираем вариант "Установка новых компонентов", находим нашу библиотеку comcntr.dll. При этом у меня выскакивает ошибка: "Этот объект уже зарегистрирован"!? Ничего не создает.
Подскажите, что ни так делаю? Нет опыта в создании компонентов...
1 Mikhail Volkov
 
10.07.19
11:24
2 butterbean
 
10.07.19
11:24
что непонятно во фразе "Этот объект уже зарегистрирован"??
3 Cyberhawk
 
10.07.19
11:27
Как тебя _земля_ ИТ носит - непонятно )
4 Mikhail Volkov
 
10.07.19
11:30
(2) Непонятно что делать в такой ситуации? Не создавать компонент с этой версией comcntr.dll, искать его среди имеющихся?
5 butterbean
 
10.07.19
11:31
(4) да
6 Cyberhawk
 
10.07.19
11:31
На худой конец начни с чистого листа
7 Mikhail Volkov
 
10.07.19
12:15
(5) В приложениях V8COMConnector нашел компонент V83.COMConnector.1 с C:\Program Files\1cv8\8.3.10.2466\bin\comcntr.dll (версия, из которой осуществляется Com-соединение), а для 8.3.14.1779 (версия, с которой осуществляется Com-соединение) не нашел. Плохо искал?
https://jpegshare.net/b0/74/b074f3798d4b4cb00f20322d84e60f45.jpg.html
8 Mikhail Volkov
 
10.07.19
12:24
(4)+ А может в таком случае не "Установка новых компонентов", а "Импорт уже зарегистрированных компонентов"?
9 DrZombi
 
гуру
10.07.19
12:34
(7) Вы пробовали регистрировать библиотечку по новой? :)

https://support.microsoft.com/ru-ru/help/249873/how-to-use-the-regsvr32-tool-and-troubleshoot-regsvr32-error-messages

И обратите внимание на № 2

Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows
10 NorthWind
 
10.07.19
13:07
(0) ну так разрегистрируйте. Regsvr32 с ключиком /u, если мне не изменяет память.
11 Mikhail Volkov
 
10.07.19
13:18
(8)+ Среди "Выбор компонентов для импорта" нашел только  V82.COMConnector.1 с C:\Program Files\1cv82\8.2.19.130\bin\comcntr.dll!? По-моему ошибку: "Этот объект уже зарегистрирован" выбрасывает, если зарегистрирована comcntr.dll любой версии?
(9) Ну, как обычно: Пуск - Все программы -... - Регистрация утилиты администрирования серверов x86-64 (8.3.14.1779), когда 2-ю платформу 8.3.14.1779 добавил для КА2.4. Остальные, например, Альфа-Авто (не может работать с платформой выше 8.3.10) остались на 8.3.10.2466. Нужен Com-обмен Альфа-Авто с КА2.4.
(10) Всех версий платформ?
12 Mikhail Volkov
 
10.07.19
14:08
(10) Только Regsvr32 /u "C:\Program Files\1cv8\8.3.10.2466\bin\comcntr.dll" выполнился успешно, для 1cv82\8.2.19.130 и 1cv8\8.3.14.1779 с ошибками. Теперь при добавлении библиотеки comcntr.dll нужной версии пишет "Файл не существует"!?
13 Mikhail Volkov
 
10.07.19
14:43
(12) Нет, ну как "Файл не существует", если файлы comcntr.dll существуют (разных версий)? Может что-то перезагрузить надо?
14 Garykom
 
гуру
10.07.19
15:01
(13) Надо немного изучить теории, тогда не будет смешных вопросов
15 Mikhail Volkov
 
10.07.19
15:21
(14) По какому вопросу изучить?
16 Cyberhawk
 
10.07.19
15:23
(15) СОМ, СОМ+, ДСОМ в Виндовз
17 Cyberhawk
 
10.07.19
15:23
Ну и длл и исполнение кода процессами ОС
18 Mikhail Volkov
 
10.07.19
15:40
(13)+ О, закрыл-открыл консоль Службы компонентов и другая ошибка https://jpegshare.net/70/3a/703a28e60ca4931e43af4bd1fe955fe2.jpg.html. Какую службу надо перезагрузить не прерывая работу 1С? Не весь же сервер...
19 Mikhail Volkov
 
10.07.19
18:40
Теперь закрыл-открыл консоль Службы компонентов и снова ошибка: "Этот объект уже зарегистрирован"!? Только сервер перезагружать?
20 Mikhail Volkov
 
11.07.19
10:33
Сервер перезагрузил.
Выбираем вариант "Установка новых компонентов", находим нашу библиотеку comcntr.dll. При этом выскакивает та же ошибка: "Этот объект уже зарегистрирован"!? Ничего не создает.
Выбираем вариант "Импорт уже зарегистрированных компонентов", ничего с DLL comcntr.dll (любой версии) не нашел. Более того, при открытии компонента V83.COMConnector.1 выдается ошибка: https://jpegshare.net/7c/a1/7ca159216f33c45382208a39762f3788.jpg.html Видать сработала разрегистрация (10). Значит регистрировать библиотечку по новой, и использовать именно этот компонент V83.COMConnector.1, не создавать новый?
21 Mikhail Volkov
 
11.07.19
11:39
Так и сделал: https://jpegshare.net/ad/63/ad63e99e7d0ba964a80291ae7cc725c7.jpg.html
Правильно ли?
22 Mikhail Volkov
 
11.07.19
18:57
Сейчас вместо:
    Соединитель = Новый ComОбъект("V83.Application");
придется писать:
    Соединитель = Новый ComОбъект("V83.COMConnector_" + НомерВерсии);
НомерВерсии: "8.3.10.2466" или "8.3.14.1779" заранее (до подключения) нельзя узнать к чему (на какой платформе) подключаешься?
Вроде раньше, когда занимался этой проблемой Com-обмен между базами различных доменов, в случае неудачной попытки соединения в ОписаниеОшибки() писало какую версию надо использовать.
23 Mikhail Volkov
 
11.07.19
20:08
В СтрокаПодключения указывается ИмяСервера, к нему номер порта нужно дописывать?
24 NorthWind
 
11.07.19
22:13
(11) я не решал конкретно эту задачу. Но вообще COM-объект можно как зарегистрировать, так и разрегистрировать, что, как мне показалось, может позволить избежать вашего сообщения.
25 Mikhail Volkov
 
12.07.19
08:24
(24) Ошибку "Этот объект уже зарегистрирован" надо понимать как существование компонента V83.COMConnector.1, содержащий ссылку на DLL comcntr.dll (любой версии). После того как разрегистрировал (12) появилась ошибка компонента V83.COMConnector.1 "Объект не найден в реестре" (20), но ошибка "Этот объект уже зарегистрирован" осталась.
26 stix2010
 
12.07.19
09:24
(0) неужели еще кто то Com коннектором пользуется
27 Mikhail Volkov
 
12.07.19
14:52
(26) Да, много лет...
28 Mikhail Volkov
 
13.07.19
15:56
(23) Да, дописывать надо порт. Иначе ошибку пишет несовпадения версий клиента и сервера.
Но почему ошибку пишет: Метод объекта не обнаружен (СтрокаСоединенияИнформационнойБазы)?
29 zak555
 
13.07.19
16:39
Сначала разрегистрировать ( -u ), а потом зарегать вновь
30 Mikhail Volkov
 
13.07.19
17:09
(29) Не помогает (12), но разобрался (25).
Меня сейчас больше интересует почему ошибку пишет: Метод объекта не обнаружен (СтрокаСоединенияИнформационнойБазы) на Соединитель.СтрокаСоединенияИнформационнойБазы()? Сдается мне, что
Соединитель = Новый ComОбъект("V83.COMConnector_" + НомерВерсии); не эквивалентен Соединитель = Новый ComОбъект("V83.Application"); а только Соединитель = Новый ComОбъект("V83.COMConnector"); с ограниченными возможностями?
31 Mikhail Volkov
 
14.07.19
08:15
+ Да, V83.COMConnector с ограниченными возможностями меня не устраивает: https://docplayer.ru/64409617-Obmen-dannymi-mezhdu-bazami-1s-cherez-com-soedinenie.html
Можно создать два вида COM объектов для приложения 1С. Это OLE соединения V83.Application и COM соединения V83.COMConnector. В случае с V83.Application запускается практически полноценный экземпляр приложения 1С. В случае использования V83.COMConnector запускается небольшая серверная часть. Скорость работы в этом случае выше, но некоторые функции могут быть недоступны. В частности работа с формами и с общими модулями для которых не установлено свойство работы с внешними соединениями. Преимущественно надо использовать V83.COMConnector и только в случае нехватки функционала V83.Application.
Как создать OLE соединения с базами 1С на различных версиях платформы?
32 Mikhail Volkov
 
15.07.19
17:37
Не работал с консолью Службы компонентов. Возможно ли в ней создать обертку OLE соединения V83.Application, или перенастроить имеющуюся COM соединения V83.COMConnector?
33 Mikhail Volkov
 
16.07.19
10:07