Здравствуйте.
Проблема появилась после обновления платформы на сервере на 8.3.13.1513.
Создаю com-объект:
Далее проверяю объект:
Возвращает Истина
При просмотре в отладчике Коннектор пустой. Нет ни HighBoundDefault, ни LowBoundDefault и т.д.
При попытке создать соединение
Вываливается ошибка: Метод объекта не обнаружен (Connect)
На платформе 8.3.11 код работал. Объект создавался, взаимодействие между базами было.
Компонента зарегистрирована. Так как если бы была не зарегистрирована, то выдавалась бы ошибка:
"Ошибка при вызове конструктора (COMОбъект)
Коннектор = Новый COMОбъект("V83.COMConnector");
по причине:
Недопустимая строка с указанием класса"
Разрядность и сервера и клиента x64.
Запускаю с клиента версии 8.2.19.130.
Обратное соединение из 8.3 в 8.2 работает полностью.
Надеюсь на помощь знающих людей.
Заранее благодарю.
Проблема появилась после обновления платформы на сервере на 8.3.13.1513.
Создаю com-объект:
Коннектор = Новый COMОбъект("V83.COMConnector");
Далее проверяю объект:
ТипЗнч(Коннектор) = Тип("COMОбъект");
Возвращает Истина
При просмотре в отладчике Коннектор пустой. Нет ни HighBoundDefault, ни LowBoundDefault и т.д.
При попытке создать соединение
Соединение = Коннектор.Connect(СтрокаСоединения);
Вываливается ошибка: Метод объекта не обнаружен (Connect)
На платформе 8.3.11 код работал. Объект создавался, взаимодействие между базами было.
Компонента зарегистрирована. Так как если бы была не зарегистрирована, то выдавалась бы ошибка:
"Ошибка при вызове конструктора (COMОбъект)
Коннектор = Новый COMОбъект("V83.COMConnector");
по причине:
Недопустимая строка с указанием класса"
Разрядность и сервера и клиента x64.
Запускаю с клиента версии 8.2.19.130.
Обратное соединение из 8.3 в 8.2 работает полностью.
Надеюсь на помощь знающих людей.
Заранее благодарю.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробовал через Excel -> Ctrl+F11 (VBA) -> Tools -> References просмотреть.
В Available References есть 1CV82 COM Connector Type Library, а вот 1CV83 COM Connector Type Library нет.
Проверил все References, но ни в одном нет указания пути к 8.3.13.
Может ли такое быть, что бы компонента была и зарегистрирована и не зарегистрирована?
В Available References есть 1CV82 COM Connector Type Library, а вот 1CV83 COM Connector Type Library нет.
Проверил все References, но ни в одном нет указания пути к 8.3.13.
Может ли такое быть, что бы компонента была и зарегистрирована и не зарегистрирована?
(9) Запускаем 8.2.19.130. В 8.2.19.130 создаем Новый COMОбъект("V83.COMConnector"). Т.е. создаем соединение из 8.2 в 8.3.
Регистрирует компоненту сисадмин. Ранее, при установке другой платформы, когда была ошибка с компонентой, он регистрировал ее для новой платформы и все работало. Из этого делаю вывод, что он верно регистрирует компоненту.
Про regsvr32 сейчас сказать не могу. Нужно уточнить.
Регистрирует компоненту сисадмин. Ранее, при установке другой платформы, когда была ошибка с компонентой, он регистрировал ее для новой платформы и все работало. Из этого делаю вывод, что он верно регистрирует компоненту.
Про regsvr32 сейчас сказать не могу. Нужно уточнить.
(14)
На текущий момент базу на 8.3 запустить в режиме совместимости с 8.2 - нельзя из-за особенностей конфигурации. Точно так же как и 8.2 в режиме совместимости с 8.3 по аналогичной причине.
Я извиняюсь, но мне кажется, что мы ушли от первоначальной темы.
Такая конструкция работала на связке баз 8.2.19.130 - 8.3.11.2899, когда в 8.2 создавалось соединение с 8.3.
Теперь эта конструкция выдает ошибку при попытке выполнить
Возможно я не понимаю, что Вы говорите.
Вы же знаете что такое режим совместимости?
На текущий момент базу на 8.3 запустить в режиме совместимости с 8.2 - нельзя из-за особенностей конфигурации. Точно так же как и 8.2 в режиме совместимости с 8.3 по аналогичной причине.
Я извиняюсь, но мне кажется, что мы ушли от первоначальной темы.
Такая конструкция работала на связке баз 8.2.19.130 - 8.3.11.2899, когда в 8.2 создавалось соединение с 8.3.
Теперь эта конструкция выдает ошибку при попытке выполнить
Соединение = Коннектор.Connect(СтрокаСоединения);
Возможно я не понимаю, что Вы говорите.
(20) Если вы с 8.2 пытаетесь подключиться, то попробуйте использовать V82.ComConnector.
Для справки: в типовых конфигурациях, при подключении определяется версия платформы и по ней создается ком соединитель. Вот так выглядит функция:
Вот пример использования:
Для справки: в типовых конфигурациях, при подключении определяется версия платформы и по ней создается ком соединитель. Вот так выглядит функция:
Функция ИмяCOMСоединителя()
СистемнаяИнфо = Новый СистемнаяИнформация;
ПодстрокиВерсии = СтрРазделить(СистемнаяИнфо.ВерсияПриложения, ".");
Возврат "v" + ПодстрокиВерсии[0] + ПодстрокиВерсии[1] + ".COMConnector";
КонецФункции
Вот пример использования:
Логин = "МойЛогин";
Пароль = "МойПароль";
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
ЭтоФайловаяБаза = ИнформационнаяБазаФайловая(СтрокаСоединения);
Если ЭтоФайловаяБаза тогда
ПутьДоБазы = "F:\Base1S\82\БазаДляТеста";
СтрокаПодключения = "File=""" + ПутьДоБазы + """";
Иначе
ИмяСервера = "LocalHost";
ИмяБазы = "Uat";
СтрокаПодключения = "Srvr = """+ ИмяСервера+"""; Ref = """+ИмяБазы+"""";
КонецЕсли;
СтрокаПодключения = СтрокаПодключения + ";Usr = """ + Логин + """";
СтрокаПодключения = СтрокаПодключения + ";Pwd = """ + Пароль + """";
Попытка
V8 = Новый COMОбъект(ИмяCOMСоединителя());
БД = V8.Connect(СтрокаПодключения);
СообщениеПользователю = New UserMessage();
СообщениеПользователю.Текст = "Поключились к базе ПЛ";
СообщениеПользователю.Сообщить();
Исключение
СтрокаСообщенияОбОшибке = "При попытке соединения по OLE произошла следующая ошибка:" + Символы.ПС
+ ОписаниеОшибки();
СообщениеПользователю = New UserMessage();
СообщениеПользователю.Текст = СтрокаСообщенияОбОшибке;
СообщениеПользователю.Сообщить();
Возврат Неопределено;
КонецПопытки;
Показать
К сожалению ничего не помогло.
(21)
Ругается на Несоответствие версий клиента и сервера 1С:Предприятия
Самое удивительное, что если COM объект создается через скрипт PowerShell, то он отрабатывает хорошо. В штатном режиме, как и на предыдущей платформе.
Если же этот COM объект создавать из 8.2.19.130 то создается пустой COM Объект.
Установили 8.3.12.1595 и все заработало.
Промежуточный вывод: в 8.3.13.1513 с comcntr.dll какие-то проблемы.
(21)
попробуйте использовать V82.ComConnector
Ругается на Несоответствие версий клиента и сервера 1С:Предприятия
Самое удивительное, что если COM объект создается через скрипт PowerShell, то он отрабатывает хорошо. В штатном режиме, как и на предыдущей платформе.
Если же этот COM объект создавать из 8.2.19.130 то создается пустой COM Объект.
Установили 8.3.12.1595 и все заработало.
Промежуточный вывод: в 8.3.13.1513 с comcntr.dll какие-то проблемы.
На сервере под управлением Microsoft Windows Server 2008 R2 ×64 работает 32-х разрядная версия сервера 1С. Не спрашивайте – почему именно так, но на личном опыте убедился, что версия 1С данной разрядности работает стабильнее, чем её 64-х битный собрат. Единственным минусом, который я пока обнаружил, является тот факт, что при установке 32-х битной версии нет возможности активировать компоненту COM+ соединений, т.к. 64-х битные приложения не могут запускать 32-х битные DLL, которые активируются при запуске 32-х битного COM+ объекта 1С.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот