Ошибка при вызове конструктора comobject 2147024769 0x8007007f не найдена указанная процедура

Содержание

  1. Тип не определен (Запрос) Запрос = Новый >Запрос; (Проверка: Тонкий клиент)
  2. Ошибка 0x8007007f при установке Windows 11 через помощник
  3. 1. Запуск от имени админа
  4. 2. Включить UAC
  5. 3. Освободить место на диске
  6. 4. Обновить видео драйвер
  7. 5. Сканирование SFC и DISM
  8. 6. Установить/Обновить Windows 11 с ISO
  9. 2147024769 0x8007007f не найдена указанная процедура

Тип не определен (Запрос) Запрос = Новый >Запрос; (Проверка: Тонкий клиент)

Таких тем здесь много, ответ понятен, нельзя на клиенте использовать: Запрос = Новый Запрос; Но вопрос не в этом. Обычно работаю с конфигурациями ОФ: Альфа-Авто, КА1 (УПП). Везде использую общий модуль мвДоработки с галочками: Сервер, Клиент (обычное приложение), Внешнее соединение (в Альфа-Авто не использую), Вызов сервера. Когда в конфигурацию надо внести более 2-х строк, то пишу их в этот модуль в виде функции, а вызов этой функции вставляю в то место, где нужно внести изменение. Когда поддержка КА1 закончилась, сделал базу на КА2 (еще вроде на КА2.1), но в ней пока не работаем, обновляем КА1 УПП. В КА2 тоже сделал общий модуль мвДоработки с галочками: Клиент, Сервер, Внешнее соединение. В нем написал несколько функций (в УФ я начинающий). Среди них есть:
// Возвращает Истина, если у номенклатуры единственное наименование
//
Функция ЕдинственноеНаименованиеНоменклатуры(Номенклатура) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = »
|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование = &Наименование»;
Запрос.УстановитьПараметр(«Наименование», Номенклатура.Наименование);
Выборка = Запрос.Выполнить().Выбрать();
Счетчик = 0;
Пока Выборка.Следующий() Цикл
Если Счетчик > 0 Тогда
Возврат Ложь;
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
Возврат Истина;
КонецФункции

// Возвращает полное наименование ключа аналитики номенклатуры
// без дублей по наименованию
Функция ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи) Экспорт
Попытка
НаименованиеСклада = СокрЛП(МенеджерЗаписи.МестоХранения);
Исключение
НаименованиеСклада = СокрЛП(МенеджерЗаписи.Склад);
КонецПопытки;
Наименование = СокрЛП(МенеджерЗаписи.Номенклатура) + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »
+ ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)
+ СокрНаименованиеСклада(НаименованиеСклада);
Если СтрДлина(Наименование) > 100 Тогда
Наименование = Лев(СокрЛП(МенеджерЗаписи.Номенклатура), СтрДлина(СокрЛП(МенеджерЗаписи.Номенклатура)) — СтрДлина(Наименование) + 97) + «. »
+ ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »
+ ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)
+ ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)
+ СокрНаименованиеСклада(НаименованиеСклада);
КонецЕсли;
Возврат Наименование;
КонецФункции

которая вызывается из РС АналитикаУчетаНоменклатуры:
Функция ПолучитьПолноеНаименованиеКлючаАналитики(МенеджерЗаписи)

Возврат мвДоработки.ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи); //+МВ 12.05.2019
// Возврат СокрЛП(МенеджерЗаписи.Номенклатура) + «; »
// + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)
// + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)
// + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)
// + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)
// + СокрЛП(МенеджерЗаписи.МестоХранения);

В данном случае галочка Клиент на мвДоработки не нужна, но можно ли ее убрать? Наверное это зависит от других функций модуля. Как навскидку определить: может ли функция выполняться только на клиенте? Вопрос наверное глупый, но в УФ я начинающий. Убрал галочку Клинт — ошибка: Тип не определен (Запрос) исчезла. Потом вернул ее, сохранил конфигурацию, ошибка не появилась!? Раньше она появлялась, до обновления на 2.5.8.221.

Источник

Ошибка 0x8007007f при установке Windows 11 через помощник

Код ошибки 0x8007007f появляется при установке Windows 11 методом обновления через скаченного помощника Assistant или Media Creation Tool от Microsoft.

На одном из ПК я столкнулся с данным кодом ошибки, и проблема оказалась в графическом драйвере от видеокарты Nvidia, который был 2020 года. Я скачал свежий драйвер с официального сайта для Windows 11 и ошибка устранилась. Кроме этого, на форуме microsoft многие столкнулись с ошибкой 0x8007007f при установке или обновлении Windows 11 через помощник Media Creation Tool или Assistant, и у всех разные проблемы, которые я собрал в кучу.

В данной инструкции о том, как исправить ошибку 0x8007007f при установке или обновлении Windows 11 через помощник Assistant от Microsoft.

1. Запуск от имени админа

Нажмите правой кнопкой мыши по скаченному помощнику Windows11InstallationAssistant.exe и выберите «Запуск от имени администратора«. Начните обновление Windows 11 и посмотрите, устранена ли ошибка 0x8007007f.

2. Включить UAC

Если контроль учетных записей был отключен в Windiows 11, то запуск от имени администратора помощника может не сработать. В этом случае, нужно включить UAC, и вот как это сделать:

  • Нажмите сочетание кнопок Win+R и введите UserAccountControlSettings
  • Убедитесь, что ползунок находится на третьем уровне снизу
  • Запустите помощник от имени админа, как сказано в способе 1

3. Освободить место на диске

Если на системном разделе будет не хватать места для загружаемых файлов через помощник, то код ошибки 0x8007007f, также может появится. В этом случае, очистите системный раздел от ненужных файлов и попробуйте повторить процедуру установки Windows 11.

4. Обновить видео драйвер

Установите последние версию драйвера для видеокарты Nvidia, AMD или Intel с сайта производителя для Windows 11. Есть полное руководство с прямыми ссылками на сайт драйверов производителей видеокарт.

5. Сканирование SFC и DISM

Если системные файлы повреждены, то это может вызвать код ошибки 0x8007007f. Восстановим автоматически системные файлы . Для этого, нажмите Win+X и выберите Терминал Windows (Администратор) и введите ниже две команды по очереди, нажимая Enter после каждой, и дожидаясь окончание процесса.

  • sfc /scannow
  • DISM /Online /Cleanup-Image /RestoreHealth

6. Установить/Обновить Windows 11 с ISO

Скачав Windows 11 ISO образ с официального сайта Mcirtosoft вы сможете обновить или установить начисто Windows 11, что избавит вас от проблем помощника.

  1. Скачайте официальный Windopws 11 ISO
  2. Смонтируйте ISO образ в виртуальный привод
  3. Запустите Setup.exe в виртуальном приводе, где ISO образ системы, чтобы обновить Windows 11

Примечание: Если обновить Windows 11 не получилось, то вы можете создать из скаченного ISO образа установочную флешку при помощи программы Rufus и установить систему начисто.

Источник

Помогите пожалуйста советом. Есть COM сервер (Dll) написанный с использованием ATL на С++ в VisualStudio 2005 beta2. Есть Setup проект для WindowsInstaller тоже составленный в VS2005 beta2, который должен зарегистрировать эту Dll. Если запускаем инсталляцию на XP или Win2003, то все работает нормально — Dll инсталлируется и регистрируется, в Win2000 проблема — при инсталляции выдается ошибка:

Смотрим код ошибки —

Error: 0x8007007f — The specified procedure could not be found,

Такое впечатление, что не хватает какой-то Dll. Но Depends.exe не находит ошибок в зависимостях.

Подскажите в какую сторону копать, заранее спасибо.

От: bo
Дата: 12.06.05 18:45
Оценка:

Здравствуйте, arh, Вы писали:

arh>Такое впечатление, что не хватает какой-то Dll. Но Depends.exe не находит ошибок в зависимостях.

Может, 4-го сервис пака?

От: arh
Дата: 13.06.05 05:56
Оценка:

Здравствуйте, bo, Вы писали:

bo>Здравствуйте, arh, Вы писали:

arh>>Такое впечатление, что не хватает какой-то Dll. Но Depends.exe не находит ошибок в зависимостях.

bo>Может, 4-го сервис пака?

Не, сервис пак в наличии.

От: arh
Дата: 14.06.05 16:57
Оценка: 11 (1)

arh>Такое впечатление, что не хватает какой-то Dll. Но Depends.exe не находит ошибок в зависимостях.

После плясок с бубном удалось установить, что SetupProject из VisualStudio цеплял по зависимостям файл c:windowssystem32msvcr80d.dll(инсталляция была для отладочной конфигурации) оставшийся от VS2005 beta1 и ложил его в папку, куда инсталлировалось приложение, но в тот же SetupProject был добавлен MergeModule x86_Microsoft.VC80.DebugCRT ссылки на dll которого внесены в манифест инсталлируемой Dll COM.

For Whidbey, we do not support you building any CRT DLL-based applications without manifests. The redistributable MSMs we provide will only install to WinSxS
The VC++ project system automatically attaches a manifest to all projects, new and upgraded.
Martyn Lovell
Development Lead
Visual C++ Libraries

Side-by-side Assemblies
Side-by-side assembly sharing is an infrastructure available on Windows XP and later systems used to safely share assemblies among multiple applications and to offset the negative effects of sharing, such as DLL conflicts. Instead of having a single version of an assembly that assumes backward compatibility with all applications, side-by-side assembly sharing enables multiple versions of a COM or Win32 assembly to run simultaneously on the system. For more information, see Isolated Applications and Side-by-side Assemblies.

Side-by-Side Assemblies can be installed as shared assemblies or as private assemblies.
Side-by-side assemblies are not available on systems earlier than Windows XP.

От: Beatseed
Дата: 15.06.05 09:15
Оценка:

Здравствуйте, arh, Вы писали:

arh> Error: 0x8007007f — The specified procedure could not be found,
arh>[/q]
arh>Такое впечатление, что не хватает какой-то Dll. Но Depends.exe не находит ошибок в зависимостях.

arh>Подскажите в какую сторону копать, заранее спасибо
попробуй зарегистрировать по старинке: shell>regsvr32.exe pathtoyoursuper.dll
и если в имени каталогов встречаются пробелы не забудь весь параметр для regsvr32 включить в кавычки.
.

От: arh
Дата: 15.06.05 13:58
Оценка:

Здравствуйте, Beatseed, Вы писали:
B>попробуй зарегистрировать по старинке: shell>regsvr32.exe pathtoyoursuper.dll
B>и если в имени каталогов встречаются пробелы не забудь весь параметр для regsvr32 включить в кавычки.

По старинке — ругалась аналогично.
Проблему решил см. выше. Спасибо.

От: natural
Дата: 17.06.05 22:42
Оценка:

Здравствуйте, arh, Вы писали:

arh>Подскажите в какую сторону копать, заранее спасибо.

Если пользуешь Install Sheild , то ты видимо поставил галочку Self Register у своей компоненты. Попробуй галку снять и поставить свойство COM Extract At Build = Yes.

Источник

Содержание:

1. Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?

2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?

3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом    

1.      Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?

Когда ты начинающий специалист 1С, то иногда приходится чувствовать себя шаманом с бубном, так как не знаешь причин ошибки и как её исправить тоже.

Сегодня мы разберем одну из ошибок, которые появляются при работе с базой, а именно ошибку при вызове конструктора (COM-объект 1С).

Ситуацию такую, мы можем наблюдать при загрузке с Excel при использовании (COM-объекта 1С), при обмене между базами. Ситуаций, когда возникает данное сообщение с возникшей проблемой довольно много при работе с программой.

Как правило, данная ошибка возникает из-за того, что при установке платформы1С не произошла автоматическая регистрация 64-х разрядной компоненты, которая отвечает за использование COM-соединения 1С 8.3. А почему это произошло, спросите? Все очень просто и в то же время сложно, если не знаешь, в чем все ядро проблемы. А причина в том, что те, у кого выдаются такие ошибки, используют 32(86) – разрядную операционную систему и ставят вместо платформы необходимой разрядности их системы, платформу 1С предназначенную для совсем другой системы.   

2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?

Исправить данную ошибку, довольно легко. Для этого необходимо всего лишь зарегистрировать библиотеку dll в реестре при помощи командной строки или программы PowerShell, в зависимости от того, что любите использовать, и команды regsvr32.

Для того чтобы выполнить команду, достаточно будет в строке написать такой текст команды «regsvr32 «C:Program Files1cv88.3.ХХ.ХХХХbincomcntr.dll»». Вместо «ХХ.ХХХХ» необходимо указать необходимый релиз платформы, библиотеку которой, необходимо зарегистрировать в реестре системы.

Если все выполнено правильно и регистрация произошла успешно, то должно выдать сообщение, как на скриншоте, об успешной регистрации библиотеки.

Администратор: Командная строка   

3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом

Также есть некоторые особенности команды, которая регистрирует компоненты.

На данный момент я знаю только 4 параметра (которые при написании строки кода указываются перед регистрируемым dll-файлом):

·        /u — параметр, отменяет регистрацию

·        /i — параметр, который позволяет при необходимости, в зависимости от библиотеки.

·        /n —параметр используется только для установки компоненты 1С, в основном пишется вместе с предыдущим (/I);

·        /s – возможность отключить все сообщения при регистрации;

Существует, также, один немаловажный момент, что в зависимости от версии командной строки, иногда приходится прописывать путь к самой утилите.

Кстати, существуют специальные программы-инструменты, которые помогают регистрировать компоненты, без знания команд и утилит администрирования, зарегистрировать библиотеку и продолжить работать дальше.

Таких программ достаточно много и писать, какое-то одно название смысла нет.

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

Специалист компании «Кодерлайн»

Олег Мороз

Идея интересная, но у меня имеет место быть проблема. Если создавать COM-объекты разных версий с некоторой паузой между этим созданиями, то всё хорошо, вроде бы.
А, вот, если эту паузу не выдерживать — то возможно возникновение двух ошибок (я так и не смог понять причины и следствия когда какая ошибка возникает, скорее всего сначала первая, а при повторной попытке уже вторая)
Запускалось всё под клиентом одной или второй версии (пробовал и так и так) — файловый вариант.
Основной COM-объект был версии 8.3.10.2252, но даже если к нему обращаться как к «v83.COMConnector» то это ничего не меняло
Последовательность создания COM-объектов не влияет, но если получить первую ошибку, переставить их местами — возникает вторая ошибка
Версия клиента 1С: Предприятие так же не влияет.
Запуск в новом сеансе 1С проблему не решает.

Выполняю такой алгоритм:

ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");

Возникает первая ошибка:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (ConnectAgent)
ком.ConnectAgent(«srv2»);
по причине:
Неизвестная ошибка

При повторном запуске она повторяется

Переставляем местами создание COM-Объектов

ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");

И возникает вторая ошибка:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(12)}: Ошибка при вызове конструктора (COMОбъект)
ком = новый COMОбъект(«V83.COMConnector_8.3.10.2252»);
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура.

При повторном запуске она повторяется

Далее — если снова переставить обратно — ошибка будет повторяться

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(10)}: Ошибка при вызове конструктора (COMОбъект)
ком = новый COMОбъект(«V83.COMConnector_8.3.10.2252»);
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура. [

Спустя минут 15-20 всё проходит — и начинается с начала (с учётом переставленных вызовов создания COM-объектов):

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (ConnectAgent)
ком.ConnectAgent(«srv1»);
по причине:
Неизвестная ошибка

Значит COM-объект где-то кешируется (платформой 1С? — мало вероятно — т.к. перезапуск клиента ничего не решает) и при попытке создать повторно (пусть и, в общем-то, другой COM-Объект) идёт обращение к старому и происходит какой-то конфликт версий.

Увы, это почти ставит крест на данной методике. Но, если одновременная (читай последовательная но в одно и то же время в пределах 20 минут) работа не требуется — описанный в статье метод будет работать.
Но, лично мне нужна была одновременная работа :-(
Надо попробовать выполнить те же обращения, но не из 1С — если проблемы не будет, то значит это 1С кеширует (и это можно обойти — но логику работы с COM-объектом придётся выносить за пределы 1С), а если будет…. то нужно что инове придумывать!

Попробовал так же с компонентами редакции 8.2:

ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
ком = новый COMОбъект("V82.COMConnector_8.2.19.68");
ком.ConnectAgent("srv4");

В общем-то такая же ситуация, но ошибка всегда на ВТОРОЙ по счёту компоненте (не важно какой она версии!!!) и всегда такая:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(42)}: Ошибка при вызове метода контекста (ConnectAgent)
ком.ConnectAgent("srv4);
по причине:
Неизвестная ошибка

При этом если создавать и использовать их отдельно (посадил на разные кнопки)
То ситуация такая
1. Любую создаю — всё нормально
2. Создаю вторую — возникает ошибка
3. Создаю первую — ошибки нет
4. Создаю вторую — ошибка
5. Повторно создаю вторую — ошибки нет
6. Снова создаю вторую — ошибки нет
7. Создаю первую — ошибка
8. Создаю первую — ошибки нет
9. Создаю вторую — ошибка
10. Создаю вторую — ошибки нети

То есть первый раз создаётся нормально и если сразу создавать другой версии — будет ошибка — но при повторном создании — ошибки не будет — но она снова будет у первой, что при повторном создании так же ошибки не будет
Поэтому с v82 я написал вот так — и в общем-то оно работает

попытка
ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
исключение
сообщить("v82.COMConnector_8.2.19.80: "+ОписаниеОшибки());
ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
конецпопытки;
попытка
ком = новый COMОбъект("V82.COMConnector_8.2.19.68");
ком.ConnectAgent("srv4");
исключение
сообщить("v82.COMConnector_8.2.19.68: "+ОписаниеОшибки());
ком = новый COMОбъект("V82.COMConnector_8.2.19.68");
ком.ConnectAgent("srv4");
конецпопытки;

Показать

Значит компонента 8.2 не кэшируется, в отличии от 8.3 :-|

Попытка же написать так же для 8.3

попытка
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
исключение
сообщить("V83.COMConnector_8.3.10.2252: "+ОписаниеОшибки());
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");
конецпопытки;
попытка
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
исключение
сообщить("v83.COMConnector_8.3.8.2054: "+ОписаниеОшибки());
ком = новый COMОбъект("v83.COMConnector_8.3.8.2054");
ком.ConnectAgent("srv2");
конецпопытки;

Показать

первый раз отработало, но повторный запуск привёл к ошибке
V83.COMConnector_8.3.10.2252:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(38)}: Ошибка при вызове конструктора (COMОбъект): -2147024769(0x8007007F): Не найдена указанная процедура.

это самая первая строка в первой попытке — и эта ошибка дальше стабильно повторялась

Попробовал работать параллельно с компонентами V82 и v82

ком = новый COMОбъект("v82.COMConnector_8.2.19.80");
ком.ConnectAgent("srv3");
ком = новый COMОбъект("V83.COMConnector_8.3.10.2252");
ком.ConnectAgent("srv1");

Никаких ошибок не возникает!

Так что — как 1С (или windows) это всё обрабатывают, что возникает такой винегрет из разных ситуаций — непонятно….
Надо ещё разбираться и экспериментировать

Возможно эти проблемы чисто связаны с моей конфигурацией ОС — использую windows 8
А может дело в используемых релизах 1С: Предприятие, клиента и компонент (хотя на клиенте 8.2.19.80 я тоже попробовал — всё то же самое)

Может, у меня просто компоненты как-то неправильно установлены или какие-то заморочки с настройками COM+
Я, например, не нашёл типовых компонент в разделе COM+ как на картинках автора :-(
Хорошо бы кто-то ещё это всё проверил бы на своих конфигурациях платформ и компонент

Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’

Часто бывает, что при настроенной синхронизации после обновления платформы появляется ошибка «Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’». Так происходит потому, что автоматически не зарегистрировалась компонента comcntr.dll из-за проблем с правами пользователя на компьютере. Решить данную проблему можно двумя способами.

Способ №1.

Переустановить платформу под правами Администратора или под пользователем, у которого есть такие права.

Способ №2.

Если не получилось как в способе №1, то можно вручную зарегистрировать самому эту компоненту. Перед этим нам необходимо изменить Параметры контроль учетной записи. Для Windows 7 нам необходимо зайти в Пуск затем в Панель управления. Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Панель управления и перейти по открывшейся ссылке.

Курс по 1С ERP. Лекция 31. Производство. Заведение НСИ

В правом верхнем углу Панели управления выбрать Просмотр-Мелкие значки и затем в списке перейти в Учетные записи пользователей. Учетные записи пользователейТам выбрать Изменить параметры контроля учетных записей. Параметры контроля учетных записейЗатем поставить ползунок в самом нижнем положении.

Виртуальный 1С помощник

Ползунок параметров контроля учетных записейИ перезапустить компьютер. После перезагрузки необходимо: Для Windows 7 надо перейти в Пуск, затем в строке поиска ввести cmd.exe,нам покажет что найдена Командная строка и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».

Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Командная панель или cmd.exe и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора». Запуск командной строкиУ нас откроется Командная строка, где нам необходимо ввести команду: 1.Для платформы x86 Regsvr32 «C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll»).

Команда для платформы x862.Для платформы х64 Regsvr32 «C:Program Files1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files1cv8номер версии вашей платформыbincomcntr.dll»). Команда для платформы x64Затем нажать клавишу Enter. Если все сделали правильно, то увидите вот такое окно. Успешное выполнение командыПосле этого необходимо перезагрузить компьютер. Как включится, пробуйте снова сделать синхронизацию.

Ключевые проблемы в автоматизации средствами 1С

Источник: www.vdgb.ru

Параллельное использование нескольких версий COM control (несколько версий платформ)

1. Открываем службу компонентов, добавляем новое приложение COM+ наименование произвольное:

2. Внутри созданного приложения выбираем компоненты и жмем Добавить новый компонент:

Вводим путь для платформы номер 1:
C:Program Files1cv88.3.9.2233binComcntrl.dll — Соответственно библиотека версии 8.3.9.2033

Создастся компонент с именем «V83.COMConnector.1» Его необходимо переименовать.

После установки НЕСКОЛЬКИХ компонентов потребуется обращаться поименно в зависимости от версии, которая будет присвоена, для этого по вновь созданному компоненту жмем правой кнопкой — псевдоним:

Задаем ему имя «V8.3.9.2033.COMConnector» (при инициализации новых объектов будем создавать их по заданному имени) — можете придумать свое.

В этом же окне Поле «Новый код CLSID» — копируем в блокнот нам потребуется оно чуть позднее — делаем пометку что это версия 2233, чтоб не забыть. ( — V8.3.9.2033

В списке появится 2 компонента, старый можно удалить:

Создаем вторую нужную нам версию

Указываем путь до второй версии:

В моем случае это 8.3.6.2041 — C:Program Files1cv88.3.6.2041bincomcntr.dll

Так же задаем псевдоним, чтоб не путаться а старую версию удаляем:

Теперь самое важное:

После регистрации мы увидим, что Windows К компоненте 8.3.9 привязал более позднюю зарегистрированную:

Открываем реестр пуск — выполнить — regedit

Идем в корень реестра и нажимаем CTRL+F — Ищем CLSID компоненты, которая не соответствует, на моем примере это —

На этом настройка Windows окончена, для инициализации нужной компоненты используем код вида:

COMConnector = Новый COMObject(«V8.3.9.2033.COMConnector»);
COMConnector = Новый COMObject(«V8.3.6.2041.COMConnector»);

P.S. если вы захотите использовать 3,4,5 компонтентов — после каждой регистрации нужного компонента необходимо перепроверить все ветки реестра CLSID — Убедится что каждой компоненте адрес библиотеки соответствует

Ссылка на публикацию

Специальные предложения

Electronic Software Distribution

Маркировка 488-ФЗ

Интеграция 1С с системой Меркурий

Готовые переносы данных

Алкогольная декларация

54-ФЗ

Инструментарий разработчика

Маркетплейсы и 1С

Траектория обучения 1С-разработчика

СБП. Оплата по QR-коду

Управление проектом на Инфостарте

ГОСОБОРОНЗАКАЗ

Комментарии

  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
1. kolya_tlt 77 13.10.17 17:49 Сейчас в теме
и где же ты был пару месяцев назад?
user1550762; Bukaska; DrAku1a; sisdrou; Светлый ум; TreeDogNight; + 6 – Ответить
2. swimdog 738 13.10.17 22:45 Сейчас в теме
Мы перешли на 8.3.10 и выкинули все старье
4. Team leader 11 14.10.17 20:31 Сейчас в теме
(2) И что это означает? там коннектор не используется?
5. swimdog 738 15.10.17 12:04 Сейчас в теме
(4) Нет, там используются коннекторы одного типа. Для одной версии не нужны такие заморочки.
12. Darklight 29 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 143 15.10.17 23:15 Сейчас в теме
(3) на сервере
7. sisdrou 23 16.10.17 09:01 Сейчас в теме
Спасибо. Жаль запоздалая статья. Уже проделан танец с бубном)

8. DrAku1a 1568 17.10.17 07:52 Сейчас в теме

Может, кто-то ещё всё это автоматизирует — сделает в виде обработки (которая будет автоматом регать платформу) или в виде программы-настройщика.

9. qvvert 143 17.10.17 17:57 Сейчас в теме
(8) Режим полного лентяя))) а что можно и сделать)))
10. Darklight 29 24.10.17 10:29 Сейчас в теме

Боян (хоть и с более подробными картинками). Вот тут уже подымалась данная тема
https://infostart.ru/public/610960/
Там же и программа настройщик.
Там же, в комментариях описаны возникающие, при этом, проблемы 🙁

11. qvvert 143 27.10.17 13:38 Сейчас в теме
(10)
Пардоньте, НЕ видел. Действительно те же яйца только в профиль, но добывались самостоятельно.
13. obsfromekb 28 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 29 18.12.17 13:20 Сейчас в теме

(14)Идея с пулами COM-соединений на сервере (например, в фоновых заданиях), конечно, интересная, но, покуда нет эффективного решения по обмену между сессиями — она будет интересна только для узкого круга задач, где нет необходимости в интенсивном выполнении команд. Зачастую, такие медленные задачи вполне справляются самостоятельно порождая com-соединения. А по лицензиям (что важно только для длительных задач) — тут уж сами выбирайте — либо длинная очередь медленных задач, либо ультрокороткая — но с большим расходом лицензий.

17. karimov_m 18.12.17 14:41 Сейчас в теме

(16)а в чем именно нужен обмен между сессиями? Синхронизацию или длительное хранение общей для всех сессий информации можно организовать в самом механизме пулов, если организовать его в виде вызовов «API пула соединений»

18. Darklight 29 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 29 18.12.17 18:24 Сейчас в теме
(19)Вот эта логика и детали организации тут и будет узким местом!
21. karimov_m 18.12.17 18:44 Сейчас в теме

(20)мм.. ну ок, пусть будет узким для вас)
Как говориться, смотря как приготовить;) Речь же не о гонке производительности а в целом об архитектуре. Так то если судить то вся 1С — одно большое «узкое место», быстрее как бы напрямую делать запросы к SQL серверу..

22. Darklight 29 19.12.17 09:29 Сейчас в теме

(21)Я свои доводы по поводу пулов COM-соединений привёл. Если считаете, что это годится в иных случаях — приведите свои.

23. karimov_m 19.12.17 11:46 Сейчас в теме

(22) какие доводы? Что они «узкое место» ? Так это зависит от задачи же. Поверьте, не все задачи являются оптимизационными.

24. e-9 56 22.12.17 16:25 Сейчас в теме

Добавил первый компонент (8.3.6.2390) успешно; ставлю второй (8.3.10.2561) — валится с ошибкой 80110802 (см. скрин), не добавляется.
Что может быть не так?

Прикрепленные файлы:
25. e-9 56 22.12.17 17:09 Сейчас в теме
(24) уточню: ОС Windows 7 64-bit
26. karimov_m 22.12.17 17:35 Сейчас в теме

(25) теневое копирование включено на системном диске?
После того как добавил второй компонент (и после изменений соотв.ветки реестра). перезагрузите систему. Ошибка может уйти..

31. KAPACEB.AA 448 17.10.19 13:10 Сейчас в теме

(25)
Мне удалось обойти эту ошибку используя библиотеки разной разрядности для компонент. Одну dll выбирал из каталога Program Files, а другую из Program Files x86, установив предварительно две версии клиента.

27. user982256 24.05.18 16:12 Сейчас в теме
(24) У меня такая же проблема, рсскажите удалось победить?
28. e-9 56 21.06.18 18:51 Сейчас в теме

(27) убедил заказчика синхронизировать версии платформ)
. моя трабла возникла на моем компе, где стоит голая семерка без обнов — мож, чего-то там просто не хватает.

29. user982256 21.06.18 19:10 Сейчас в теме

(28) А я решил проблему следующим образом — насоздавал кучу (сколько надо версий, в моем случае 4) псевдономов и в реестре для каждого псевдонима (искать по clsid) сменил физический путь к dll и все взлетело. Так же обращаю внимание на то что COM компоненты должны быть зарегистрированны как серверный компонент — а то проблемы с последовательным конекторов разной версии.

32. KAPACEB.AA 448 17.10.19 13:11 Сейчас в теме
(27)
См. комментарий (31)
30. kislitsin 31.08.19 18:13 Сейчас в теме

Воспользовался вашей статьей, столкнулся с проблемой
COMConnector = Новый COMObject(ИмяCOMСоединителя()); // «V83.COMConnector»
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура.

Не в курсе как это решить ?

33. M_Volkov 2 29.08.20 10:27 Сейчас в теме

Задаем ему имя «V8.3.9.2033.COMConnector» (при инициализации новых объектов будем создавать их по заданному имени) — можете придумать свое.

Наверное в именах необязательно указывать номер конкретной версии, достаточно их заменить на, например: ПрежняяВерсия или ВысокаяВерсия?

Теперь самое важное:
После регистрации мы увидим, что Windows К компоненте 8.3.9 привязал более позднюю зарегистрированную.
Идем в корень реестра и нажимаем CTRL+F — Ищем CLSID компоненты, которая не соответствует.

Далее на рисунке показана замена ее значения на правильную.
Это я к тому, что периодически приходится обновлять высокую версию платформы — требование обновляемой конфигурации. В связи с этим приходится создавать новый компонент Службы компонентов с новой версией comcntr.dll, а в прежнем компоненте возвращать прежнюю версию comcntr.dll.
Вопрос: если в именах компонент не указывать номер конкретной версии, то можно ли не создавать новый компонент, а заменить в прежнем компоненте высокой версии comcntr.dll новой версии, на которую обновили (заменили) платформу?

Источник: infostart.ru

Версия компоненты comcntr отличается от версии корневого модуля core83

Иногда, после обновления платформы, при синхронизации, может возникать ошибка, приблизительно такой текст:
Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector): Версия компоненты ‘comcntr’ (номер старой платформы) отличается от версии корневого модуля ‘core82′ (номер новой платформы).
В этом случае необходимо зарегистрировать компоненту comcntr.dll. В зависимости от операционной системы:
1) Убедитесь что есть файл «comcntr.dll» в каталоге куда установилась платформа C:Program Files1Cv8номер новой платформыbin (для x32 разрядной ОС) или C:Program Files (x86)1Cv8номер новой платформыbin
2) Например, мы установили платформу 8.3.6.2041. Нажать Пуск -> Выполнить и вбить текст для X32 разрядной ОС:

regsvr32 «C:Program Files1Cv88.3.6.2041bincomcntr.dll»

текст для X64 разрядной ОС:

regsvr32 «C:Program Files (x86)1Cv88.3.6.2041bincomcntr.dll»

У меня было 2 случая у клиента, когда после обновления платформы, при синхронизации данных между БУХ 3.0 и УТ10 выдавала такую ошибку.

Источник: profbuh8.ru

Не работает синхронизация БП 3.0 с ЗУП 3.1 (Не работает com-соединение)

Не работает com-соединение. Платформа 8.3.11.2924. Стоит 64-разрядный сервер 1С. И 32-разрядная клиентская 1С. Если создается Новый COMObject(«V83.COMConnector») в файловой базе то все работает. А если в клиент-серверной базе то выходит ошибка «Не удалось подключиться: <ВнешняяОбработка.Подключение.Форма.Форма.Форма(1

>: Ошибка при вызове конструктора (COMObject): -2147221164(0x80040154): Class not registered».

Компонента comcntr.dll зарегистрирована.

Что делать в этой ситуации?

читатель

Дата регистрации: 27.01.2009
Сообщений: 191

05.02.2018 21:55

SAURON , попробуйте
Исправляем 2147221164
На сервере 1С выполняем следующие действия.

:

  1. Для исправления 2147221164 открываем консоль «Службы компонентов» (Панель управления -> Администрирование -> Службы компонентов).
  2. В этой консоли открываем Службы компонентов -> Компьютеры -> Мой компьютер. Правый клик по пункту“Приложения COM+”, Создать -> Приложение.
  3. Далее. В окне «Установка или создание нового приложения» выбираем «Создать новое приложение».
  4. Вводим понятное имя для нового приложения, например, “V8_ComConnector”, способ активации — «Серверное приложение».
  5. В качестве учетной записи для запуска приложения выбираем “Указанный пользователь” и через кнопку “Обзор” находим учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”. Следующие 2 экрана можно пропустить (Далее, Далее, Готово) или сделать следующий пункт на втором из них. Мы пропускаем.
  6. В ветке только что созданного приложения открываем узел «Роли» и в нём роль «CreatorOwner». Правый клик по пункту «Пользователи», Создать -> Пользователь. Здесь выбираем учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”.
  7. В ветке созданного приложения (“V8_ComConnector”) переходим на узел «Компоненты». Правый клик, Создать -> Компонент. Далее.
  8. Выбираем «Установка новых компонентов», и в появившемся окне выбираем нужную DLL-ку (C Program Files (x86)1cv81bincomcntr.dll). Завершаем создание компонента.
  9. Открываем свойства только что созданного компонента (V81.COMConnector.1), переходим на вкладку «Безопасность», в списке «Явно установленные для выделенных объектов роли» устанавливаем флажок напротив роли “CreatorOwner”.

Источник: buh.ru

Hi I am trying to run a very simple Microsoft Excel Macro, the code shown below:

Set objExcel = CreateObject("Excel.Application")

objExcel.Application.Visible = True

objExcel.Workbooks.Add

objExcel.Cells(1, 1).Value = "Test value"

However I continue to receive the following error:

Run-time Error '-2147024769 (8007007f)':

Automation Error

The specified procedure could not be found

Does anybody know what could be causing this? After some digging, its something to do with the COM. Thank you very much in advance!

Community's user avatar

asked Jun 12, 2018 at 14:20

rmsrms1987's user avatar

9

You are already in Excel so all you need is

sub demo
Workbooks.Add()
Range("A1")="Test Value"
End Sub

Your code would work in Word however — where it would open Excel, then a workbook and then write to A1.

answered Jun 12, 2018 at 16:14

Harassed Dad's user avatar

Harassed DadHarassed Dad

4,6491 gold badge10 silver badges12 bronze badges

1

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more…

closed

Команда «Заполнить» в случае неправильной версии COM теперь выводит понятную ошибку и открывает «Управление COM классами 1С»

Category:

Подготовка к изменению структуры БД


Description

Было:
После длительного ожидания программа выводила непонятную ошибку

{ИнструментыРазработчикаTormozit Обработка.ирПодготовкаКИзменениюСтруктурыБД.МодульОбъекта(564)}: Ошибка при вызове конструктора (COMОбъект)
    КомСоединитель = Новый COMОбъект("v" + ирКэш.НомерИзданияПлатформыЛкс() + ".ComConnector");
по причине:
-2147024769(0x8007007F): Не найдена указанная процедура. 

Стало:
Сразу после нажатия кнопки выводится подсказка, открывается «Управление COM классами 1С» и отображется понятная ошибка.

Убедитесь что зарегистрирован COM класс COMConnector нужной разрядности и версии платформы
{ОбщийМодуль.ирОбщий.Модуль(17091)}: Ошибка создания COM объекта v83.ComConnector: {ОбщийМодуль.ирОбщий.Модуль(17085)}: Ошибка при вызове конструктора (COMОбъект): -2147024769(0x8007007F): Не найдена указанная процедура. 
        ВызватьИсключение "Ошибка создания COM объекта " + ИмяCOMКласса + ": " + ОписаниеОшибки();

  • Subject changed from Команда «Заполнить» может выдавать плохо понятную ошибку при неправильной версии COM to Команда «Заполнить» в случае неправильной версии COM теперь выводит понятную ошибку и открывает «Управление COM классами 1С»
  • Description updated (diff)
  • Status changed from New to Closed
  • Description updated (diff)
  • Description updated (diff)
  • Sprint/Milestone changed from Разработка to 6.03.1

Also available in: Atom
PDF

  • Ошибка при выгрузке данных для узла плана обмена кодсообщения 72
  • Ошибка при вызове диспетчера задач
  • Ошибка при выводе денег лига ставок
  • Ошибка при вызове внутренней функции outlook 2016
  • Ошибка при выборе фильтра fixed object will not move