Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».
Данная ошибка означает, что класс V82.COMConnector не зарегистрирован в системе. Для устранения ошибки необходимо зарегистрировать указанный компонент.
Порядок регистрации компонента V82.COMConnector.
1. Заходим в Панель управления → Администрирование → Службы компонентов.
2. Переходим к ветке Компьютеры → Мой компьютер → Приложения COM+.
3. В контекстном меню выбираем Создать → Приложение. Откроется Мастер установки приложений COM+.
4. Нажимаем «Далее».
5. Выбираем «Создать новое приложение».
6. Вводим имя «V82COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
7. На следущем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
8. Нажимаем «Готово».
9. В появившейся ветке V82COMConnector переходим к подветке Компоненты.
10. В контекстном меню выбираем Создать → Компонент. Откроется Мастер установки компонентов COM+.
11. Нажимаем «Далее».
12. Выбираем «Установка новых компонентов».
13. Выбираем файл <каталог 1С>bincomcntr.dll.
14. Нажимаем «Далее» → «Готово».
15. Переходим к ветке V82COMConnector.
16. В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
17. Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
18. Нажимаем «ОК».
Класс V82.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.
Устранение ошибок подключения через COM-соединение |
|
Часто бывает нужно получить данные из разных баз, которые, что вовсе не
В каждом из этих случаев необходимо из одной базы подключиться к другой Ситуация первая. При попытке подключения через COM-соединение regsvr32 «[Путь к библиотеке]bincomcntr.dll , например, regsvr32 «c:Program Files (x86)1cv88.3.5.1119bincomcntr.dll» и Если такая ошибка выпадает при попытке подключить к БД на платформе 7.7, то Ситуация вторая. При попытке установить COM-соединение Ситуация третья. При попытке подключения через COM-соединение Ситуация четвертая. При попытке подключения через COM-соединение 1. Заходим в Панель управления → Администрирование → Службы компонентов. 4. Имя нового приложения лучше написать чтобы было понятно о чем речь: 5. На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».В Пока все на этом. |
27.11.2017
Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».
Данная ошибка означает, что класс V82.COMConnector не зарегистрирован в системе. Для устранения ошибки необходимо зарегистрировать указанный компонент.
Порядок регистрации компонента V82.COMConnector.
1. Заходим в Панель управления → Администрирование → Службы компонентов.
2. Переходим к ветке Компьютеры → Мой компьютер → Приложения COM+.
3. В контекстном меню выбираем Создать → Приложение. Откроется Мастер установки приложений COM+.
4. Нажимаем «Далее».
5. Выбираем «Создать новое приложение».
6. Вводим имя «V82COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
7. На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
8. Нажимаем «Готово».
9. В появившейся ветке V82COMConnector переходим к подветке Компоненты.
10. В контекстном меню выбираем Создать → Компонент. Откроется Мастер установки компонентов COM+.
11. Нажимаем «Далее».
12. Выбираем «Установка новых компонентов».
13. Выбираем файл <каталог 1С>incomcntr.dll.
14. Нажимаем «Далее» → «Готово».
15. Переходим к ветке V82COMConnector.
16. В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
17. Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
18. Нажимаем «ОК».
Класс V82.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.
При попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».
Варианты решения:
1. Зарегистрировать библиотеку ComConnector comcntr.dll из каталога программы.
Перед этим необходимо отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL
В 32-битной версии сервера проблема решилась бы командой: regsvr32 «C:Program Files (x86)1cv88.3.10.2466bincomcntr.dll»
но в 64-битной версии команда будет примерно такой * : C:WindowsSysWOW64regsvr32 «C:Program Files (x86)1cv88.3.10.2466bincomcntr.dll»
При удачном выполнении Вы увидите:
Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u
Если и это не помогло, попробуйте переустановить платформу 1С в режиме Исправить и отметьте COM соединение
2. Разновидность предыдущего варианта в виде пакетного файла.
Regsvr32 «C:Program Files1cv88.3.12.1776bincomcntr.dll»
Создаём bat или cmd файл, проверяем пути, меняем версию на нужную и запускаем от Администратора:
set version=8.3.10.2466
set x64=C:Program Files1cv8%version%bincomcntr.dll
set x32=C:Program Files (x86)1cv8%version%bincomcntr.dll
set reg64=%systemroot%System32regsvr32.exe
set reg32=%systemroot%SysWoW64regsvr32.exe
%reg64% /i /s «%x64%»
%reg64% /u /s «%x32%»
%reg64% /i /s «%x64%»
%reg32% /u /s «%x64%»
%reg64% /i /s «%x64%»
%reg32% /u /s «%x32%»
%reg64% /i «%x64%»
3. В случае, если не помогает — создаём коннектор руками:
- Заходим в Панель управления — Администрирование — Службы компонентов.
- Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.
- В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.
- Нажимаем «Далее».
- Выбираем «Создать новое приложение».
- Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
- На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
- Нажимаем «Готово».
- В появившейся ветке V83COMConnector переходим к подветке Компоненты.
- В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.
- Нажимаем «Далее».
- Выбираем «Установка новых компонентов».
- Выбираем файл <каталог 1С>bincomcntr.dll.
- Нажимаем «Далее» — «Готово».
- Переходим к ветке V83COMConnector.
- В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
- Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
- Нажимаем «ОК».
Класс V83.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.
24.01.20 — 17:44
Платформа 8.3.16.1063 (клиент-сервер x86-64).
ЗУП 3.1.12.113
БП 3.0.75.58
При попытке проверить подключение в настройке синхронизации ЗУП-БП вылетает ошибка «Не удалось подключится к другой программе: -2147221005(0x800401F3): Недопустимая строка с указанием класса».
Делал:
c:WindowsSysWOW64>regsvr32 «C:Program Files (x86)1cv88.3.16.1063bincomcntr.dll»
c:WindowsSysWOW64>regsvr32 «C:Program Files1cv88.3.16.1063bincomcntr.dll»
Сносил COM-соединение через изменение установки, устанавливал заново. Вручную удалял приложение V83COMConnector через dcomcnfg и добавлял заново. В свойствах приложения убирал принудительную проверку доступа для приложения, применял политику программных ограничений — уровень неограниченный. Прописывал пользователя, из-под которого будет производиться вход: и локального, и доменного. Но каждый раз «Недопустимая строка с указанием класса». Чего ей ещё от меня надо-то?
1 — 24.01.20 — 17:48
(0)дык в реестре то что сидит ?
2 — 24.01.20 — 17:49
(0) Переходи на веб и http сервисы
3 — 24.01.20 — 17:51
«c:WindowsSysWOW64>regsvr32 «C:Program Files1cv88.3.16.1063bincomcntr.dll»» кривая строка
4 — 24.01.20 — 17:51
5 — 24.01.20 — 17:53
Для настройки синхронизации используй файлы — самое стабильное
6 — 24.01.20 — 17:57
(1) Поиск в реестре по V83COMConnector не дал результатов. Или что имеется в виду?
(2) Это не решение конкретной проблемы.
(3) Почему кривая? У меня нет там двойных закрывающих кавычек. К тому же система сообщила об успешном выполнении.
(4) Если делать через system32, сообщает о том, что не найден указанный модуль, хотя он по этому пути есть.
(5) Но не самое оптимальное в нашем случае. И опять же, это не решение конкретной проблемы.
7 — 24.01.20 — 18:01
(6) Проблема у вас только одна — попытка использования устаревших и уже нихрена реально не поддерживаемых технологий.
Представь что у тебя Linux (или Mac) и действуй исходя из этого.
8 — 24.01.20 — 18:09
(0) обратись к профессионалам
9 — 24.01.20 — 18:10
(7) я вангую что он ставит не там и не той разрядности
10 — 24.01.20 — 18:14
(9) Там проблемы когда несколько разных версий платформы 1С стоят или ставили криво.
Можно совместить 8.1. 8.2 и 8.3 а вот разные 8.3 глючит.
Например если 8.3.16 и 8.3.15 ну или разрядность того.
11 — 24.01.20 — 18:17
(10) неа. Я подозреваю что надо ставить на сервере, а он пытается на клиенте. Ну и х86-64 и SysWOW64 — как бы противоречие, хотя там надо просто зарегать COM+-приложение
12 — 24.01.20 — 18:26
С учетом того,что стандартный обмен все равно передает xml-файл,то можно перейти на web-сервисы без проблем.
13 — 24.01.20 — 18:28
(12) это надо публиковать базу, а мало кто это хочет делать
14 — 24.01.20 — 20:22
(13) так надо опубликовать внутри локальной сети, не надо в глобальном интернете публиковать.
15 — 24.01.20 — 20:35
(14) COM сервер тоже как бы публикуется, только при установке. И вот в (0) это и есть попытки публикации правильного COM сервера.
Какая нафик разница что публиковать, модуля расширения веб-сервера поставить и через командную строка аналогично базу зарегать на правильный веб-сервер.
Веб сервер апач например банально копированием и httpd.exe -k install
16 — 24.01.20 — 21:14
мне регистрация в службах компонентов всегда помогала
17 — 25.01.20 — 04:02
Фига тут наванговали уже)
Нет, версия одна и запускаю на сервере. Проблема решилась перезапуском сервера 1С. Всем спасибо за участие.
18 — 25.01.20 — 08:30
(10) > а вот разные 8.3 глючит.
Пытаюсь с базы на 8.3.10.2466 x86-64 установить OLE-соединение с базой на 8.3.14.1779 x64. Обе базы на одном сервере разнесены по портам, 8.3.14.1779 на портах 16хх. В строке подключения к имени сервера дописываю «:1640». Получаю ошибку: «Несоответствие версий клиента и сервера 1С:Предприятия». Показывает: версию сервера правильную, клиента — нет: 8.3.10.2466!?
(11) > хотя там надо просто зарегать COM+-приложение
Поподробнее бы. А то читал в http://catalog.mista.ru/public/276794/: «Для начала создадим для коннектора обертку COM+, чтобы вызовы происходили не в контексте 1cv8.exe (1cv8c.exe), а в контексте dllhost.exe. В интернете достаточно публикаций на тему как это сделать…», а что конкретно имеется ввиду?
(17) > Проблема решилась перезапуском сервера 1С.
Моя проблема не решается перезагрузкой сервера Службы компонентов: возможно ли создать обертку OLE соединения V83.Application
19 — 27.01.20 — 12:19
Вроде COM-соединение возможно с базой на другой версии платформы 8.3 А OLE-соединение возможно?
20 — 27.01.20 — 13:56
Решение ошибки подключения через COM
http://catalog.mista.ru/public/97085/
открытие вручную cmd.exe в папке C:WindowsSysWOW64
запуск от имени администратора
C:WindowsSysWOW64>regsvr32 «C:Program Files1cv88.3.16.1063bincomcntr.dll»
(кстати на 16-ю версию платформы люди жалуются, нам сейчас пока запретили её ставить)
Панель управленияВсе элементы панели управленияАдминистрированиеСлужбы компонентовКомпьютерыМой компьютерПриложения COM+CommCtrlРолиCreatorOwnerПользователи
Сюда добавить пользователей ОС сервера, под кем приходится запускать регламентные задания, а главное USR1CV8.
В свойствах CommCtrl на вкладке Безопасность убрать галочку Принудительная проверка доступа для приложения, поставить галочку Применить политику программных ограничений, выбрать Уровень ограничений «Неограниченный».
В http://catalog.mista.ru/public/97085/ советуют самому создать V82.COMConnector. Я не создавал.
И лучше физически перезагрузить сервер сам компьютер.
21 — 27.01.20 — 16:03
(20) > И лучше физически перезагрузить сервер сам компьютер.
У меня все базы на 8.3.10.2466 (x86-64), только одна 8.3.14.1779 (x64) на диапазоне портов 16хх. Когда к ней подключаюсь в строке подключения к имени сервера дописываю «:1640». Даже вручную делаю команду C:WindowsSysWOW64regsvr32 «c:Program Files1cv88.3.14.1779bincomcntr.dll», пишет: Успешно выполнено DllRtgisterServer в c:Program Files1cv88.3.14.1779bincomcntr.dll. Но при этом все равно ошибка: «Несоответствие версий клиента и сервера 1С:Предприятия» (8.3.10.2466 — 8.3.14.1779).
22 — 27.01.20 — 16:20
(21) Я вот думаю сказать или нет что COM как и прочие приложения могут быть как x32 так и x64…
И короче регать думать надо что и откуда. И откуда и куда подключаться.
Ну не выйдет цыветочек и x32 не умеет с x64 через COM или OLE
23 — 27.01.20 — 16:21
(22)+ Точнее не умеет в типовом уровне, можно разные ухищрения
24 — 27.01.20 — 16:33
(22) Все дело в разной разрядности, с 32-х на 64-х разрядную не подключиться?
25 — 27.01.20 — 16:48
(24) x64 можно сделать чтобы к x32 подрубилось, наоборот не видел
Спроси у H A D G E H O G s как он провернул Проблемы выгрузки больших XML в 7.7 и их решения.
26 — 27.01.20 — 16:51
(25)+ Подразумевал что «обертку COM+» позволяет из x64 1С подключиться к x32 1C по COM/OLE, где x32 выступает как inproc server
А вот как наоборот я лично хз, думать лень но вот товарищ провернул с XML
27 — 28.01.20 — 10:54
Ладно, создал (перенес процедуры подключения по Com) базу, которую можно запускать на 8.3.10.2466 x86-64 и 8.3.14.1779 x64. Запускаю на 8.3.10.2466, соединяюсь с базой на 8.3.14.1779, получаю как в рабочей базе ошибку: «Несоответствие версий клиента и сервера 1С:Предприятия». Запускаю на 8.3.14.1779, соединяюсь с базой на 8.3.14.1779, и опять же получаю ошибку: «Несоответствие версий клиента и сервера 1С:Предприятия» (8.3.10.2466 — 8.3.14.1779)!? При чем СисИнфо = Новый СистемнаяИнформация; СисИнфо.ВерсияПриложения пишет версию 8.3.14.1779.
28 — 28.01.20 — 16:05
+ Зато открывает из 8.3.14.1779 формы объектов базы на 8.3.10.2466! Получается что клиентскую часть Com-соединения определяет не платформа, из которой устанавливается Com-соединение, а нечто другое. Что?
29 — 28.01.20 — 18:05
+ Сделал перерегистрацию comcntr.dll: D:WindowsSysWOW64regsvr32 «D:Program Files1cv88.3.14.1779bincomcntr.dll», но это ничего не изменило, та же ошибка: «Несоответствие версий клиента и сервера 1С:Предприятия» (8.3.10.2466 — 8.3.14.1779). Почему версия клиентской части остается 8.3.10.2466? Сделал перерегистрацию comcntr.dll, Com-соединение устанавливается из базы на 8.3.14.1779… что еще?
30 — 28.01.20 — 18:13
(29) в запуске базы не стоит принудительно 8.3.10?
31 — 28.01.20 — 18:43
(30) Нет, специально базу сделал, из которой не было Com-соединений (в отличии от рабочей), на другом сервере.
32 — 28.01.20 — 19:03
Забей уже на COM и OLE это официально устаревшая технология.
Дальше будет только хуже с работоспособностью.
33 — 28.01.20 — 19:48
(0)
Выложи обмен на обменник, очень интересно
34 — 28.01.20 — 19:56
(0) а регать 64-ю утилиту разве не другой приблудой?
У меня на РДП сессии тож проблема была с СОМ клиентским. Сегодня пролечили реганьем 64-битного СОМа. А так админы 2 недели не могли ладу дать — и 1С переставляли и сессию прибивали и профиль новый заводили — результат не было
35 — 29.01.20 — 07:25
(34) А какой? Регистрация утилиты администрирования серверов x86-64 (8.3.14.1779) дает тот же результат: Успешно выполнено DllRtgisterServer в c:Program Files1cv88.3.14.1779bincomcntr.dll. Правда 8.3.14.1779 на нестандартном диапазоне портов 16хх. Может в этом дело, как правильно зарегистрировать comcntr.dll?
36 — 29.01.20 — 11:21
(0) начни с того что удали все старые платформы… переустанови
37 — 29.01.20 — 12:17
(36) Снести 8.3.10.2466, а 8.3.14.1779 пересадить на стандартный диапазон портов 15хх?
38 — 29.01.20 — 14:32
Выполнил регистрацию с ключами regsvr32 /n /i:user теперь пишет: Ошибка при вызове конструктора (COMОбъект): -2147467262(0x80004002): Интерфейс не поддерживается
39 — 29.01.20 — 15:07
(38) отмените регистрацию через regsvr32 /u и больше ничего не регистрируйте.
40 — 30.01.20 — 08:07
(39) Выполнил: D:WindowsSysWOW64regsvr32 /u «D:Program Files1cv88.3.10.2466bincomcntr.dll», но ничего не изменилось: файловая база запущенная на 8.3.14.1779 при Com-соединении с базой на 8.3.14.1779 ошибку: «Несоответствие версий клиента и сервера 1С:Предприятия» (8.3.10.2466 — 8.3.14.1779).
41 — 30.01.20 — 08:24
(40) ты может на сервере это делаешь, а соединение на клиенте? Ну или наоборот
42 — 30.01.20 — 08:33
(41) Рабочие сервера разделены на SQL и Терминал, но их пока не трогаю. Все эксперименты делаю на своем компе.
43 — 31.01.20 — 14:56
(36) Сносить пока не стал, нашел старый системный диск, на нем по одной платформе 8.1, 8.2, 8.3. Обновил до 8.3.14.1779. Иногда возникает «Ошибка при вызове конструктора (COMОбъект): -2147467262(0x80004002): Интерфейс не поддерживается» — это вроде, когда при установки платформы забыл COM отметить? Но при установки 8.3.14.1779 с windows64full нет COM!?
Еще при перезагрузке компа пишет: «DTAget.exe Приложение не удалось запустить, поскольку DTCommonRes.ddt не был найден. Повторная установка приложения может исправить эту проблему» — это тоже по 1С не в порядке?
44 — 01.02.20 — 11:18
Можно ли до начала Com-соединения как-то определить (через регистры): какая comcntr.dll (ее версию) в данный момент действует?
И можно ли ее поменять на нужной версии другими способами? (с админ. правами)
45 — 01.02.20 — 11:46
(44) RegEdit
И поры бы научиться пользоваться гуглом чтобы находить http://datadump.ru/regsvr32/
46 — 02.02.20 — 08:15
(45) Статья может быть хорошая, подтверждает, что ссылка нужной версии comcntr.dll прописана в реестре. Но конкретно по моему вопросу (44) ничего. А в статье «COM соединения к базам 1С на различных версиях платформы» (http://catalog.mista.ru/public/276794/ автор Леонид Кириенко) указывается конкретная ссылка HKEY_CLASSES_ROOTWow6432NodeCLSID{2B0C1632-A199-4350-AA2D-2AEE3D2D573A}InprocServer32 для 64 битной ОС. Но на рабочем сервере ее нет, а в моем компе в ней прописана D:Program Files (x86)1cv828.2.19.130bincomcntr.dll — для моего случая бесполезна.
Перерыл все ссылки с значением параметра: D:Program Files1cv88.3.10.2466bincomcntr.dll и D:Program Files (x86)1cv88.3.10.2466bincomcntr.dll. Их было 3 и 8, когда добавил платформу 8.3.14.1779, то часть ссылок 2 и 5 переписались со значением параметра D:Program Files1cv88.3.14.1779bincomcntr.dll. Когда обратно перерегистрирую на 8.3.10.2466 (только переустановкой платформы и перезагрузкой компа! Регистрация утилиты администрирования серверов x86-64 (8.3.10.2466) и D:WindowsSysWOW64regsvr32 «D:Program Files1cv88.3.10.2466bincomcntr.dll» не помогают!?) значения этих ссылок не меняется!!!??? Допускаю, что есть еще ссылка, которая содержит одну из этих ссылок, и переписывает ее при регистрации. Но как ее найти?
А Леонид Кириенко переключает платформу Com-соединения переписыванием ссылки с comcntr.dll нужной версии. Плюс еще делает taskkill.exe /f /im dllhost.exe с административными правами. По поводу последнего он пишет «Для начала создадим для коннектора обертку COM+, чтобы вызовы происходили не в контексте 1cv8.exe (1cv8c.exe), а в контексте dllhost.exe. В интернете достаточно публикаций на тему как это сделать…», конкретную ссылку не дает. На рабочем сервере в службе компонентов добавил V8COMConnector, не знаю правильно ли, результата нет…
47 — 03.02.20 — 08:15
При ошибках: различия версий https://i.ibb.co/pdrH9Wy/COM.jpg, база не обнаружена на сервере (предлагает создать), и других в ОписаниеОшибки() не пишет конкретную причину, а лишь: «Ошибка при вызове метода контекста (Connect): Неизвестная ошибка».
48 — 03.02.20 — 08:23
(44) regdllview и regdllview-x64
49 — 03.02.20 — 08:23
В семерке в базовой не было com…
50 — 03.02.20 — 08:24
(48) это мини-утилитка, там удобнее смотреть, чем в реестре.
51 — 03.02.20 — 10:02
(50) Скачал, как ей пользоваться?
52 — 03.02.20 — 14:36
Нашел https://ibb.co/rQMZNnn «RegDllView — миниатюрная утилита, выводящая список всех зарегистрированных файлов dll/ocx/exe (COM-регистрация), причем для каждого файла можно посмотреть дату и время последней регистрации, а также список всех записей в системном реестре (CLSID/ProgID).
Кроме этого, RegDllView позволяет без труда отменить регистрацию dll/ocx или, наоборот, зарегистрировать в системе нужные dll/ocx — так, для регистрации нужно будет всего лишь перетащить один или несколько файлов из окна Explorer в окно RegDllView».
Отменить регистрацию понимаю удалением строки с D:Program Files1cv88.3.10.2466bincomcntr.dll, а как зарегистрировать D:Program Files1cv88.3.14.1779bincomcntr.dll — не понял?
53 — 03.02.20 — 16:44
Перерегистрировал платформу на 8.3.14.1779, а все равно ошибка различий версий!? https://ibb.co/jVV9jHW Откуда он берет клиентскую часть 8.3.10.2466?
54 — 03.02.20 — 16:53
55 — 03.02.20 — 18:22
(54) У меня нет проблемы «Недопустимая строка с указанием класса». Запускаю Com-соединение из базы на платформе 8.3.14.1779. RegDllView показывает что запущена comcntr.dll версии 8.3.14.1779. Соединяюсь с базой на 8.3.14.1779. И такая ошибка, откуда он берет клиентскую часть 8.3.10.2466? Хотя если соединяюсь с базой на платформе 8.3.10.2466, то все нормально.
56 — 04.02.20 — 07:53
+ Выходит RegDllView только видимость создает, не зря в () писал, что перерегистрация платформы возможна только переустановкой платформы и перезагрузкой компа! Регистрация утилиты администрирования серверов x86-64 (8.3.10.2466) и D:WindowsSysWOW64regsvr32 «D:Program Files1cv88.3.10.2466bincomcntr.dll» не помогают. Но сейчас переустановка платформы не помогла!?
57 — 04.02.20 — 07:55
58 — 05.02.20 — 15:50
Бог с ней RegDllView, что она показывает не понятно. Вернулся к статье «COM соединения к базам 1С на различных версиях платформы» (http://catalog.mista.ru/public/276794/ автор Леонид Кириенко). По поводу «Для начала создадим для коннектора обертку COM+, чтобы вызовы происходили не в контексте 1cv8.exe (1cv8c.exe), а в контексте dllhost.exe» пригодилась ссылка (54). Правда не понял суть этого, но сделал https://ibb.co/HHXj1hG, не знаю правильно ли?
В 1С прописал:
Процедура СменитьВерсиюПлатформы(СтруктураПодключения, СтрокаПодключения, ВерсияПриложения)
Если Найти(СтрокаПодключения, «PatrERP») > 0 Тогда
СтрокаПодключения = СтрЗаменить(СтрокаПодключения, СтруктураПодключения.ИмяСервера, СтруктураПодключения.ИмяСервера + «:1740»);
КонецЕсли;
ТребуемаяВерсия = ?(Найти(СтрокаПодключения, «PatrERP») = 0, «8.3.10.2466», «8.3.14.1779»);
CLSID = «{181E893D-73A4-4722-B61D-D604B3D67D47}»;
Ключ = «HKEY_CLASSES_ROOTWow6432NodeCLSID» + CLSID + «InprocServer32»;
WshShell = Новый COMОбъект(«WScript.Shell»);
Значение = WshShell.RegRead(Ключ);
Если Найти(Значение, ТребуемаяВерсия) > 0 Тогда
ВерсияПриложения = ТребуемаяВерсия;
Возврат;
Иначе
Сообщить(«Значение ключа » + Ключ + «: » + Значение, СтатусСообщения.Внимание);
КонецЕсли;
Если ТребуемаяВерсия = «8.3.14.1779» Тогда
Значение = СтрЗаменить(Значение, » (x86)1cv88.3.10.2466″, «1cv88.3.14.1779»);
Иначе
Значение = СтрЗаменить(Значение, «1cv88.3.14.1779″, » (x86)1cv88.3.10.2466″);
КонецЕсли;
WshShell.RegWrite(Ключ, Значение);
ЗапуститьПриложение(«taskkill.exe /f /im dllhost.exe»,, Истина);
ВерсияПриложения = ТребуемаяВерсия;
КонецПроцедуры // СменитьВерсиюПлатформы()
Запускаю на 8.3.14.1779, соединяюсь с базой на 8.3.10.2466 — все нормально (и раньше так было). Соединяюсь с базой на 8.3.14.1779 — происходит замена ссылки в реестре HKEY_CLASSES_ROOTWow6432NodeCLSID{181E893D-73A4-4722-B61D-D604B3D67D47}InprocServer32 на параметр D:Program Files1cv88.3.14.1779bincomcntr.dll, DLL в службе компонентов (это же значение). Но 1С выдает ошибку: «Несоответствие версий клиента и сервера 1С:Предприятия» (8.3.10.2466 — 8.3.14.1779). Что ни так сделал?
59 — 05.02.20 — 16:20
А запускаю эту же базу на 8.3.10.2466, получаю: Ошибка при вызове метода контекста (RegRead) Значение = WshShell.RegRead(Ключ);
по причине: Произошла исключительная ситуация (WshShell.RegRead): Неверная ссылка на корень в разделе реестра «HKEY_CLASSES_ROOTWow6432NodeCLSID{181E893D-73A4-4722-B61D-D604B3D67D47}InprocServer32».
В чем дело?
60 — 06.02.20 — 07:51
Вопрос открытый: По какому принципу запускается именно клиентская часть 8.3.10.2466 для COM соединения? (а не 8.3.14.1779)
61 — 09.02.20 — 14:15
Тишина… никто не знает? А главный вопрос: возможна ли смена версии до начала COM соединения?
62 — 11.02.20 — 15:34
Для запуска файловой базы всегда стартует последняя платформа. Для запуска серверной базы смотрит на порт сервера, как-то понимает какую платформу запускать для клиентской и серверной частей. Почему для COM соединения всегда запускается одна и та же клиентская часть? На реестр никак не реагирует, какой указана версия comcntr.dll. Может в файлах ini надо самому настройки менять? Где, в каком?
63 — 11.02.20 — 15:45
На сервере в последнее время ставлю только 64разрядный клиент, устанавливая платформу проверяю компоненту com. Предыдущую платформу всегда сношу. Стараюсь до удаления старой платформы не переносить каталог с её инсталляцией в другое место и не удалять его, иначе могут возникнуть сложности с деинсталляцией. Вроде после этого com работает.
64 — 11.02.20 — 15:52
(63) > Предыдущую платформу всегда сношу.
Нужны 2 версии платформы на одном сервере.
65 — 11.02.20 — 16:03
(64) Читали?
http://catalog.mista.ru/public/610960/
Но придется переписать вызов V83COMConnector, чтобы использовались разные ProgID в обработке обмена. RegDLLView все правильно показывает, но надо понимать, что она показывает, к тому же, там 32 и 64-битные dll надо смотреть соответствующими версиями. По крайней мере, RegDLLView дает очевидное понимание, что сейчас зарегистрировано.
66 — 11.02.20 — 16:08
(0) Если достало глючное поведение COM, выверенные конвертации хочется использовать прямым подключением — http://catalog.mista.ru/public/1176839/
67 — 11.02.20 — 16:30
(65) > RegDLLView дает очевидное понимание, что сейчас зарегистрировано.
Где его смотреть?
http://catalog.mista.ru/public/610960/ читал, но это для COM с ограниченными возможностями, мне нужно OLE-соединение.
(66) Задача так поставлено — открывать объекты другой базы. Когда все базы на одной платформе, не спорю, удобно. Но по моему не очень надо, если очень надо, то зайди в нее, найди нужный объект, открой его, и делай что хочешь…
68 — 11.02.20 — 17:02
(67) А, так вам Application нужен, что же вы тему немного офтопите? comcntr.dll — это только COM «с ограниченными возможностями». Application регистрируется обычно через: C:Program Files1cv8[версия платформы]bin1cv8.exe» /regserver . Зарегить обе версии сразу — готового решения нет. Проще всего — разнести платформы по разным серверам. А лучше всего — не использовать v83.application, Automation — позапрошлый век в наше время.
69 — 11.02.20 — 17:32
(68) > Application регистрируется обычно через: C:Program Files1cv8[версия платформы]bin1cv8.exe» /regserver .
А где смотреть (менять если получится), в реестре?
70 — 11.02.20 — 17:49
(69) Прекрати уже фигней страдать, технология COM/OLE все, забыть про нее и делать другими способами.
Есть смысла в COM когда дикий легаси из кровавого энтерпрайза и переписывать влом, некому и нет денег.
71 — 11.02.20 — 17:50
(70) ну так у него так все и есть
72 — 11.02.20 — 18:00
(71) Он херней страдает, давно бы поставил одну платформу 8.2 для альфы и вторую (тоже одну) 8.3 для КА или что там у него.
Несколько одновременно 8.3.Х.Y глючит COM/OLE по страшному
73 — 11.02.20 — 18:40
(68) Да, значение D:Program Files (x86)1cv88.3.10.2466bin1cv8.exe найдено в 6 реестрах:
HKEY_CLASSES_ROOTCLSID{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}LocalServer32
HKEY_CLASSES_ROOTWow6432NodeCLSID{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}LocalServer32
HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}LocalServer32
HKEY_LOCAL_MACHINESOFTWAREClassesWow6432NodeCLSID{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}LocalServer32
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18ComponentsB322A3EFECA3A15429059AD028FECAB3
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeClassesCLSID{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}LocalServer32
А значений значение D:Program Files1cv88.3.10.2466bin1cv8.exe и значение D:Program Files1cv88.3.14.1779bin1cv8.exe не найдено. Хорошо, перепишу в них на значение D:Program Files1cv88.3.14.1779bin1cv8.exe, и надо выполнить что-то. Что? Например, в http://catalog.mista.ru/public/276794/ автор выполняет taskkill.exe /f /im dllhost.exe для COM. А мне что?
(70) Отвечал уже в (67), до меня так было, все уже привыкли к этому.
74 — 11.02.20 — 19:07
(73) А DOS или CP/M у вас там случаем нету? С Clipper и FoxPro под них?
75 — 11.02.20 — 19:09
76 — 11.02.20 — 19:58
Automation до сих пор жива,как жив Microsoft Office
собственно,для него она и придумывалась.
но,в силу того,что разработчики положили на ее реализацию во многих приложениях,местая о том,что есть другие способы,но когда нужно за пользователя сделать часть действий через код,то в офисе народ давит запись макроса и наслаждается эффектом Вау,а в остальных местах начинает грызть кактусы,так как без Automation макросов нету.
но,решение Automation не для интеграции,а для упрощения взаимодействия с пользователем.
применение его для интеграции особенно без участия пользователя выглядит достаточно костыльно.
77 — 12.02.20 — 09:14
(68) что еще нужно, чтобы запускалась клиентская часть платформы 8.3.14.1779 (а не 8.3.10.2466) при OLE-соединении, кроме перезаписи реестра?
78 — 12.02.20 — 09:22
(77) Зарегьте какую-нибудь одну через: C:Program Files1cv8[версия платформы]bin1cv8.exe» /regserver . От второй отказывайтесь или установите на другой компьютер(если речь о файловой, то наверняка найдется, где развернуть). Т.е., на данном этапе уже лучше изменить подход, чем тратить ресурсы и время на «костыли».
79 — 12.02.20 — 09:35
(78) Это как, командой (из командной строки)?
80 — 12.02.20 — 09:39
81 — 15.02.20 — 12:34
Интересно, при запуске серверной базы 1С смотрит какой порт приписал к имени сервера, и запускает нужную версию платформы для серверной части. Почему для клиентской части не использован этот алгоритм?
82 — 16.02.20 — 16:55
+ Вроде значения реестров не меняются после регистрации версии платформы. Как определить какая версия зарегистрирована последней, какая запустится клиентская часть для OLE-соединения?
83 — 17.02.20 — 12:39
Странно, у меня сейчас даже C:Program Files1cv8[версия платформы]bin1cv8.exe» /regserver не переключается, и после перезагрузки.
84 — 17.02.20 — 16:43
+ Это я переустанавливал платформы 8.3, Агент сервера 1С:Предприятия 8.3 со стандартными портами 15хх исчез, остался только добавленный с нестандартными портами!? Как его восстановить?
85 — 17.02.20 — 16:46
(84) «Ручки шаловливые кошельку покоя не дают»©
86 — 17.02.20 — 17:15
+ Хотя HKEY_LOCAL_MACHINESYSTEMControlSet001Services1C:Enterprise 8.3 Server Agent (x86-64) остался со значением ImagePath «D:Program Files1cv88.3.10.2466binragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «D:Program Files1cv8srvinfo».
87 — 18.02.20 — 07:34
(78) > установите на другой компьютер
Впервые столкнулся с проблемой COM/OLE-соединения когда подключался к базе партнера. Другой сервер и домен, только локальная сеть общая (работаем на территории одного АСК). Версии 1С 8.3 были разные. Пока не поставил версию такую же как у них ничего не получалось.
88 — 18.02.20 — 17:44
Кажется нашел http://catalog.mista.ru/public/803433/ — «Показывает текущие версии зарегистрированных компонент 1С (требуется .NET Framework 4.0 и права администратора)». Как определить есть у меня .NET Framework 4.0?
89 — 18.02.20 — 17:49
(0) Это в 8.3.16 что-то наделали,у меня такая же ерунда.
Не советую ставить, ибо глюков там до хрена, только что откатился обратно до 8.3.13
90 — 18.02.20 — 17:50
а что за компонента V8x.ServerAbout из (88)
91 — 18.02.20 — 18:48
(90) Не знаю, меня интересует V8x.Application.
92 — 18.02.20 — 18:53
(0) Переходи на веб-сервисы. Ком — в топку!
93 — 18.02.20 — 19:45
(0) (89) 8.3.15, похоже, тоже. Судя по всему, что-то сейчас работает иначе, чем раньше. Я *censored* [устал] регить V83COMConnector сегодня разными способами. Благо, на сервере вроде получилось сделать через «Исправить» установленной платформы. А вот на клиентах (есть обработки, где на клиенте, то бишь сервере терминалов, запускается соединение) что-то не получалось совсем. Такое ощущение, что теперь не просто регистрируется компонента, а еще где-то какие-то зависимости прописываются. Причем эти зависимости кэшируются системой, судя по тому, что перезапуск помогает в некоторых случаях. И еще следствие этого — различные «костыли» с запуском разных версий ComConnector не работают, по крайней мере, 8.3.12 и 8.3.15 не удалось подружить как то совсем. Похоже, придется ставить Апач и кодить http-сервисы. Либо выносить кластер 8.3.15 на отдельную виртуалку и инициировать V83COMConnector только НаСервере.
94 — 18.02.20 — 21:02
(89) Были глюки со «старым» апачем 2.4.39 и то после обновления пропали.
Так что 8.3.16.1148 вполне гуд.
95 — 19.02.20 — 09:00
(93) > Причем эти зависимости кэшируются системой, судя по тому, что перезапуск помогает в некоторых случаях.
Выше 8.3.14 у меня нет платформ. Агента со стандартными портами восстановил. Избежать кэширование удалось?
96 — 19.02.20 — 20:12
(87)+ Вряд-ли система обращается к реестру того сервера, на котором находится подсоединяемая база, чтобы определить зарегистрированную версию. Наверное к своему реестру (или к чему?). Если бы предварительно переписать значение на нужную версию платформы, то было бы все нормально?
97 — 19.02.20 — 20:27
(96) Не будет нормально. Забудь про COM/OLE. Скоро железо на ARM перейдет с x86 и где этот COM?
98 — 19.02.20 — 22:11
(0) в (2) же написали чего не понятно. Это всего лишь вопрос времени .
99 — 19.02.20 — 22:23
(97) windows ce прекрасно там работало и com тоже.
а вот поставить туда httpd было сложнее.
100 — 20.02.20 — 00:23
(99) com там на wince на arm было свое, несовместимое с x86 на большой винде
так что 100





















