1с ошибка при вызове метода контекста connect
(6) Проблема у вас только одна - попытка использования устаревших и уже нихрена реально не поддерживаемых технологий.
Представь что у тебя Linux (или Mac) и действуй исходя из этого.
(9) Там проблемы когда несколько разных версий платформы 1С стоят или ставили криво.
Можно совместить 8.1. 8.2 и 8.3 а вот разные 8.3 глючит.
Например если 8.3.16 и 8.3.15 ну или разрядность того.
(10) неа. Я подозреваю что надо ставить на сервере, а он пытается на клиенте. Ну и х86-64 и SysWOW64 - как бы противоречие, хотя там надо просто зарегать COM+-приложение
С учетом того,что стандартный обмен все равно передает xml-файл,то можно перейти на web-сервисы без проблем.
(12) это надо публиковать базу, а мало кто это хочет делать
(13) так надо опубликовать внутри локальной сети, не надо в глобальном интернете публиковать.
мне регистрация в службах компонентов всегда помогала
Нет, версия одна и запускаю на сервере. Проблема решилась перезапуском сервера 1С. Всем спасибо за участие.
Вроде COM-соединение возможно с базой на другой версии платформы 8.3 А OLE-соединение возможно?
(кстати на 16-ю версию платформы люди жалуются, нам сейчас пока запретили её ставить)
Панель управления\Все элементы панели управления\Администрирование\Службы компонентов\Компьютеры\Мой компьютер\Приложения COM+\CommCtrl\Роли\CreatorOwner\Пользователи\
Сюда добавить пользователей ОС сервера, под кем приходится запускать регламентные задания, а главное USR1CV8.
И лучше физически перезагрузить сервер сам компьютер.
У меня все базы на 8.3.10.2466 (x86-64), только одна 8.3.14.1779 (x64) на диапазоне портов 16хх. Когда к ней подключаюсь в строке подключения к имени сервера дописываю ":1640". Даже вручную делаю команду C:\Windows\SysWOW64\regsvr32 "c:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll", пишет: Успешно выполнено DllRtgisterServer в c:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll. Но при этом все равно ошибка: "Несоответствие версий клиента и сервера 1С:Предприятия" (8.3.10.2466 - 8.3.14.1779).
(21) Я вот думаю сказать или нет что COM как и прочие приложения могут быть как x32 так и x64.
И короче регать думать надо что и откуда. И откуда и куда подключаться.
Ну не выйдет цыветочек и x32 не умеет с x64 через COM или OLE
Исправление следующей ошибки 1С 8.3 (может возникать при синхронизации, выгрузке-загрузке различных данных с удаленным подключением и т.п., как правило после обновления платформы):
"При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса"
Решение: в реестре Windows необходимо зарегистрировать компоненту comcntr.dll
Сначала пробуем простые варианты.
Первый вариант: пробуем удалить и заново установить платформу 1С, войдя в систему с полными правами (предварительно перезагрузив компьютер).
Проверяем. Если не помогло -
Второй вариант:
Открываем Проводник (Мой компьютер), в адресной строке пишем %windir% и нажимаем Enter,
открывается командное окно с путем: C:\Windows\,
Далее в зависимости от разрядности вашей версии Windows (32 или 64 разряда) входим в соответствующую директорию,
находим среди файлов cmd.exe и запускаем его от имени Администратора (клик правой клавишей - запустить от имени Администратора).
В появившемся окне также в зависимости от разрядности Windows вставляем (можно отсюда через копировать-вставить) следующую строку:
для Windows 7x32
в %windir%\System32\RegSvr32.exe "С:\Program Files (x86)\1cv8\8.3.11.3034\bin\comcntr.dll"
для Windows 7x64
в %windir%\SysWoW64\RegSvr32.exe "С:\Program Files (x86)\1cv8\8.3.11.3034\bin\comcntr.dll"
Важно! Здесь вместо подстроки "С:\Program Files (x86)\1cv8\8.3.11.3034" укажите путь к Вашему каталогу 1С Предприятие.
Если и это не помогло -
Третий вариант, регистрируем компонент в реестре вручную:
Открываем: Панель управления - Администрирование - Службы компонентов – Компьютеры – Мой компьютер
Выбираем: Приложения COM+ - Дополнительные действия - Приложения - Создать приложение.
Вводим имя "V83COMConnector" , ставим опцию "Серверное приложение", и Указанный пользователь выбираем "Администратор", либо "Текущий пользователь".
В появившейся ветке V83COMConnector выбираем Компоненты – Создание нового компонента – Установка новых компонентов.
Выбираем файл - входим в Ваш каталог 1С, далее \bin\comcntr.dll, и выбираем Готово.
Правой кнопкой мыши нажимаем по ветке V83COMConnector, далее переходим на Свойства – Безопасность.
Снимаем опцию "Принудительная проверка доступа для приложений", выставляем опцию "Применить политику программных ограничений" и выбираем уровень "Неограниченный".
Значит дело было так. Появилась необходимость подключаться к базам по com соединению, для анализа тамошних объектов метаданных. Проблема оказалась в том, что базы могли работать на разных версиях 1С. Пошел в интернет, искал, читал, но все фигня, в оновном все предлагают держать базы на одной версии, что для меня было невозможным.
Кроме, вот этой статьи. Огромное спасибо автору (Леонид Кириенко) и zakiap
Тут уже интересней, но есть пару минусов
1) 1С должна работать от имени учетки с админскими правами.
2) "Варварское" поведение по отношению dllhost.exe :)
3) Могут возникнуть проблемы при одновременном обращении к базам на разных версиях.
Но, как оказалось, самым для меня полезным, оказалась не сама статья, а один из комментариев к ней.
Если присмотрется, то видно, что у него создано несколько оберток для разных версий. Увидев этот коммент, я тут же обрадовался, думал сейчас все расскажут. Но не тут то было, показать, показал, а рассказать забыл)
Инструкция
1. Идем "Панель управления" - "Администрирование" - "Службы компонентов"
2. В оснастке служб компонентов, "Службы компонентов" - "Компьютеры" - "Мой компьютер" - "Приложения COM+"
3. Создаем новое приложение, правой кнопкой по "Приложения COM+" - "Создать" - "Приложение"
4. Выбираем "Создать новое приложение", называем например "1cv8", тип выбираем "Библиотечное приложение"
должно полчуить так
5. Раскрываем "1cv8", правой кнопкой по "Компоненты" - "Создать" - "Компонент".
6. Выбираем вариант "Установка новых компонентов", находим нашу библиотеку comcntr.dll
Находится она в катлоге BIN установленной платформы, у меня например путь такой
"C:\Program Files (x86)\1cv8\8.3.10.2168\bin\comcntr.dll"
должны получить следующую картину
7. Правой кнопкой по "V83.COMConnector.1" - "Псевдоним. ", меняем наименование с "CopyOf.V83.COMConnector.1" на "V83.COMConnector_8.3.9.2033". Данное действие проделываем для всех нужных версий платформ.
8. Открываем "regedit" через пуск или команду "Выполнить", нажимаем F3 и указываем для поиска строку с наименованием созданой нами обертки, например "V83.COMConnector_8.3.9.2033". Или использум для поиска CLSID созданной обертки.
9. Ищем значение в ветке "HKEY_LOCAL_MACHINE" у меня путь такой HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\\ выглядеть должно так
В ветке "InprocServer32" меняем значение у меня, "C:\Program Files (x86)\1cv8\8.3.10.2168\bin\comcntr.dll" на путь к нужной версии длл, в данном случае "C:\Program Files (x86)\1cv8\8.3.9.2033\bin\comcntr.dll".
Данное дейстие проделываем для всех созданных оберток.
Все готово) Для подключения к конкретной версии базы, в 1С теперь нужно использовать следующую конструкцию
В файлах утилита, которая выполнит все эти действия автоматически. Подходит для тех у кого 1С лежит в каталоге
"C:\Program Files (x86)\1cv8". У кого что то отличается, вот ссылка на GitHub . Запустить утилиту нужно от имени администратора. Надеюсь данный материал будет вам полезен)
Обработка для проверки работоспобности соединения с разыми версиямиСпециальные предложения
(15) Решил проблему, создав компоненты в отдельных приложениях СОМ user841691; AlxPop; Franchiser; SoftIce; SurovcevD; WizaXxX; + 6 – Ответить (15) Методом проб и ошибок- свойствах приложения-> Активация-> Серверное подключение . Так заводится и создается инстанс без ошибок Доброго дня.
Оставлю это здесь.
При последовательном подключении к разным платформам COM соединением, необходимо сделать следующую настройку в свойствах КомКоннектора
размер группы увеличить с 1 до 5
время ожидания уменьшить с 15 до 2
Спасибо за статью. Мне она помогла, но если просто сделать как написано, возникали ошибки. Куча комментариев с разными ошибками не дали быстрого решения как именно сделать настройки. Предлагаю слегка скорректированный алгоритм. (*) - измененные шаги. В нем нет последних шагов по работе с реестром. У меня сработало на двух серверах.
Если автор посчитает возможным - можно было бы перенести в шапку.
Читайте также: