Com sun star servicemanager ошибка при выполнении приложения сервера

Я
   DayDreamer

28.02.13 — 16:43

Попытка

       СервисМенеджер = Новый ComОбъект(«com.sun.star.ServiceManager»);

       РабочийСтол = СервисМенеджер.createInstance(«com.sun.star.frame.Desktop»);

   Исключение

       ЛогФайл.ДобавитьСтроку(Строка(ТекущаяДата()) + » Не удалось создать необходимый объект: «+ОписаниеОшибки());

       //Сообщить(«Не удалось создать необходимый объект: «+ОписаниеОшибки());

       Возврат;

   КонецПопытки;

при попытке выполнения этого кода получаем ошибку «ошибка при выполнении приложения-сервера»

Как правильно создать файл OpenOffice в регламентном задании?

   DayDreamer

2 — 28.02.13 — 16:48

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

   Gnomobob

3 — 28.02.13 — 17:09

М.б. дело в правах пользователя под которым у вас сервер работает (USR1CV82 ?)

   DayDreamer

4 — 01.03.13 — 08:07

(3) сервер работает с системной учетной записью

   DayDreamer

5 — 01.03.13 — 08:08

(3) + (4) регламентное задание запускается под пользователем с полными правами

   DayDreamer

6 — 01.03.13 — 08:16

флаг Разрешить взаимодействие с рабочим столом установлен

   DayDreamer

7 — 01.03.13 — 10:02

up

   DayDreamer

8 — 04.03.13 — 09:31

up

   MrStomak

9 — 04.03.13 — 09:33

А на сервере есть этот ком вообще?

   DayDreamer

10 — 04.03.13 — 11:45

(9) под конкретным юзером на сервере во внешней обработке отрабатывает без ошибок

  

Serginio1

11 — 04.03.13 — 12:17

v8: Ошибка получения объекта COM при переходе на клиент-серверный вариант работы

Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn

Приветствую !

Задача такая:
хочу на делфи написать программу, которая бы:
1. либо записывала данные в файл *.ods  не открывая его визуально
2. либо записывала данные в уже открытый ячейки файла ODS (не пытаясь открыть его заново).

вот черновик кода


OO := CreateOleObject('com.sun.star.ServiceManager');
  Desktop := OO.createInstance('com.sun.star.frame.Desktop');
  FileName := ExtractFilePath(Application.ExeName) + Edit4.Text;

// FileName := Edit4.Text;

  vArr := VarArrayCreate([0, 1], varVariant);

  //'Text - txt - csv (StarCalc)'    'MS Excel 97'     "writer_pdf_Export"
  vArr[0] := MakePropertyValue('FilterName', 'MS Excel 97');

  //сделать так, чтобы при записи не открывалось окно ЛИСТА
// vArr[1] := MakePropertyValue('Hidden', True);

// target =  '_blank' ,
//"_default" special UI functionality
//(e.g. detecting of already loaded documents, using of empty frames of creating of new top frames as fallback)
//"_self", ""(!) means frame himself
//"_parent" address direct parent of frame
//"_top" indicates top frame of current path in tree
//"_beamer" means special sub frame

   Document := Desktop.LoadComponentFromURL('file:///'+FileName, '_default', 0, vArr);

  Sheet := Document.getSheets.getByIndex(0);
  Cell := Sheet.getCellByPosition(1, 1); // 5 столбец 2 строка
  Cell.SetString(Edit1.Text);

  //сохранение
  Document.StoreToURL('file:///'+FileName, vArr);

1. Проблема №1 — файлы формата ODS программа не принимает, подавай ей XLS. (а я так не могу,  в XLS макросы не

сохраняются :-)  )
    Возможно нужно знать верный FilterName. а я его не знаю…гуглил…не нашёл

2. Если я использую опцию vArr[1] := MakePropertyValue(‘Hidden’, True); — книга не открывается, как и хотелось, но

ничего не пишется в файл.
и появляется такая ошибка:

Variant does not reference an automation object

Запуск от имени администратора даёт другую ошибку:

Ошибка при выполнении приложения-сервера ProgID
com.sun.star.ServiceManager

3. Если я НЕ использую опцию vArr[1] := MakePropertyValue(‘Hidden’, True); — книга  Открывается,
но во первых не работает ключ ‘_default’ метода Desktop.LoadComponentFromURL,
который должен подцепляться к уже открытой книге и вписывать мне нужные данные,
а во вторых, если даже файл закрыт — Программа открывает его с ошибкой — невозможно создать файл блокировки ,
книга открыта только для чтения.
В итоге открывается копия книги, данные конечно пишутся, но предлагается сохранить документ в другое место.

Запуск от имени администратора — не решает эту проблему.

Что хочется получить: написал в начале своего поста.

Вот такой код подвешивает выполнение программы (минуты на 2, потом возвращается 0х80080005 Ошибка при выполнении приложения сервера), если перед ее запуском открыть LibreOffice Calc 5.0 32bit. Этот код является началом выгрузки данных в ods файл.

#include "stdafx.h"
#include "comdef.h"

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    HRESULT hr = ::CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );    
    IDispatchPtr dispServiceManager;
    if ( FAILED( dispServiceManager.CreateInstance( L"com.sun.star.ServiceManager" ) ) )
    {
        return 1;
    }

    return 0;
}

Если при этом в процессе выполнения строки «dispServiceManager.CreateInstance( L»com.sun.star.ServiceManager» )» его закрыть, то
программа тут же успешно завершит создание объекта.
Если же запустить этот код без предварительного открытия LibreOffice Calc 5.0 32bit, проблем не возникает.
Быстрый запуск оо выключен. Стабильно воспроизводится на рабочей машине win7x64, на домашней win7x64 — нет.
Что интересно проблема только с scalc, скажет swriter можно запустить без последствий.
Также в диспетчере задач видно, что процесс soffice.bin загружает процессор на 50% (процессор 2х ядерный)

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

G>Вот такой код подвешивает выполнение программы (минуты на 2, потом возвращается 0х80080005 Ошибка при выполнении приложения сервера), если перед ее запуском открыть LibreOffice Calc 5.0 32bit.

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

http://forum.foxclub.ru/read.php?29,547384

Гуглил, гуглил и нагуглил вариант, который помог. Чувствую себя немного странно. Удалось исправить с помощью
Службы компонентов->LibreOffice Service Manager(Ver1.0)->Удостоверение->Изменить с запускающий пользователь на текущий пользователь.

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

G>Гуглил, гуглил и нагуглил вариант, который помог. Чувствую себя немного странно. Удалось исправить с помощью

G>Службы компонентов->LibreOffice Service Manager(Ver1.0)->Удостоверение->Изменить с запускающий пользователь на текущий пользователь.

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

Я
   Vstur

05.02.14 — 11:04

Существуют обработки, организующие выводж в XLS-файлы.

На компьютерах OpenOffice 3.3

Беру новый OpenOffice 4.0.1.

Удаляю OO 3.3, ставлю ОО 4.0.1.

Запускаю в 1с обработку

Падается в строке:

    Попытка

        ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);

    Исключение

        Предупреждение(ОписаниеОшибки() + Символы.ПС + «программа OpenOffice не установлена на данном компьютере!»);

        Возврат;

    КонецПопытки;

с ошибкой:

«Ошибка при вызове конструктора COM-объекта. Не удается найти указанный файл.»

Удаляю ОО 4.0.1, возвращаю ОО 3.3, все опять работает.

Кто-нибудь сталкивался ? Укрощали ОО 4.xx ?

   Dmitry1c

1 — 05.02.14 — 11:09

>Не удается найти указанный файл

в реестре к COM-объекту указан путь, по которому нужной dll-ки нету

   Dmitry1c

2 — 05.02.14 — 11:11

> C:Program Files (x86)LibreOffice 4programsoffice.exe —nodefault —nologo

у меня по такому вот адресу

   Vstur

3 — 05.02.14 — 12:07

Странно, что при установке ОО 4.xx не прописывается, получается, что при установке 3.3 прописывалось, а сейчас нет…

   Vstur

4 — 05.02.14 — 12:39

Переустановил 4.x, поправил реестр в

-HKEY_LOCAL_MACHINE

-HKEY_CLASSES_ROOT

-HKEY_CURRENT_USER

процесс пошел…

   Torquader

5 — 05.02.14 — 14:01

Не знаю, 4.0.0 ставил после 3.Х (правда на Windows XP) всё работало из коробки (только нужно ответить «Да» на удаление третьей версии — иначе он на неё ссылки оставит).

   Vstur

6 — 05.02.14 — 16:49

Хоть и выводит в файлы, нормально так и не работает…

В статичных данных случайным образом выдает ошибки при выводе в xls в абс. примитивных конструкциях вида:

Sheet.getCellByPosition(2,НомерСтроки).setString(…чего-то там…);

ругаясь на setString.

То же самое на ОО 3.3 работает без всяких проблем.

Пришлось на 3.3 откатиться…

   Vstur

7 — 05.02.14 — 16:54

В общем, после ОО 3.3, похоже, мигрировать дальше некуда…

   EvgeniuXP

8 — 05.02.14 — 20:06

(7) как говорится, работает — не трожь!

   Torquader

9 — 05.02.14 — 21:20

(7) В четвёрке какие-то режимы поменяли, причём, если ячейки объединены, то попытка получить пропущенную ячейку честно возвращает Null.

  

Vstur

10 — 06.02.14 — 11:38

Не, у меня там примитив, никаких объединений и т.п.

Просто заметил, в свое время пытался с ОО 3.3 на 3.4 перейти, получил такие же ошибки на рабочих обработках.

Думал, может с 4.хх проблем не будет.

Видимо знак, не слезать с 3.3

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Содержание:

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 – возможность отключить все сообщения при регистрации;

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

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

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

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

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

Олег Мороз

Ошибка при вызове конструктора (COMObject) по причине: Интерфейс не поддерживается

Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.

Быстрый переход

  • Особенности
  • Устранение:
    • Может оказаться, что  «Microsoft Excel Application» отсутствует в списке, в данном случае
  • Заключение

Особенности

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

Убедиться в причине ошибки возможно, если посмотреть логи системы.

Устранение:

  • на сервере убиваем excel (taskkill /im excel.exe /f)
  • открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
  • в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
  • справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.

Может оказаться, что  «Microsoft Excel Application» отсутствует в списке, в данном случае

  1. Запускаем REGEDIT
  2. Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
  3. Создаем в ней строковый параметр AppID  = {00020812-0000-0000-C000-000000000046}
  4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть  32 битные компоненты.
  5. После этого в Component Services должен появиться «Microsoft Excel Application»

Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.

Для правки использовалась оснастка Локальные пользователи и группы (lusrmgr.msc) — это инструмент, предназначенный для управления локальными пользователями и группами.

Локальный пользователь или группа — это учетная запись, которой могут быть предоставлены разрешения и права на вашем компьютере.

Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.

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

Заключение

В большинстве случаев уйти от дополнительной настройки операционной системы возможно,  если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.

В моем же случае клиентские компьютеры работали на Ubuntu, поэтому вся обработка перенесена на сервер.

Бывает такое: вы прописываете для компонента пользователя и пароль.

Затем через некоторое время меняете пароль и компонент перестает работать: выходит такая же ошибка «Интерфейс не поддерживается». Следует просто вбить новый пароль.

Впервые в истории планеты Земля все люди во всех странах задались единой целью: заработать столько денег, чтобы уподобиться героям рекламы.

  1. 13.11.2018, 09:23

    #31

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    А сколько есть попыток угадать какую именно библиотеку ставил «2 раза»? Где ставил (на клиенте или на сервере)? под какими правами (пользователя или админа)?

    Да и по синтаксису… У тебя в диагностике:

    Что явно указывает на ошибку — «лишняя запятая». Параметр «Excel.Application» должен быть

    первым :mad:
    правильно:
    ExcelApplication = Новый COMObject(«Excel.Application»);

    Теперь ошибка немного другая

    {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
    ExcelApplication = Новый COMObject(«Excel.Application»);
    по причине:
    -2147024891(0x80070005): Отказано в доступе.


  2. 13.11.2018, 12:13

    #32

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    Регистрировал библиотеку на клиенте, под администратором. Той платформы которую запускаю

    Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
    Опишите поподробнее — как именно регистрируете «под администратором».


  3. 14.11.2018, 06:04

    #33

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
    Опишите поподробнее — как именно регистрируете «под администратором».

    Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
    Клиент — сервер
    Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку


  4. 14.11.2018, 07:05

    #34

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
    Клиент — сервер
    Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку

    Мдя-я-я… все как в анекдоте…
    «Пьяный ходит вокруг фонаря ночью и о чем-то материться. Прохожий хочет помочь и участливо спрашивает в чем дело.
    Да я ключи потерял и уже полчаса не могу найти — следует ответ.
    прохожий оглядывает место под фонарем и удивляется. Да тут же ровный асфальт, сухо и отлично видно что ключей тут нет. Ты уверен что именно тут потерял?
    Да нет.. потерял я в грязной луже, вон там в подворотне. Но там же очень темно искать и очень грязно и очень мокро — поэтому я ищу именно тут».

    Уважаемый… У Вас диагностика «не зарегистрирован класс Excel.Application». Ну и что же вы хотите добиться «упорством достойного лучшего применения» регистрируя библиотеку 1с предприятия???? :mad:


  5. Пользователь сказал cпасибо:


  6. 14.11.2018, 07:10

    #35

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    Теперь ошибка немного другая
    {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
    ExcelApplication = Новый COMObject(«Excel.Application»);
    по причине:
    -2147024891(0x80070005): Отказано в доступе.

    А эта ошибка показывает, что пользователю под которым выполняется строка
    ExcelApplication = Новый COMObject(«Excel.Application»);
    нет прав на создание ком-объекта.

    У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.


  7. 14.11.2018, 08:14

    #36

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    А эта ошибка показывает, что пользователю под которым выполняется строка
    ExcelApplication = Новый COMObject(«Excel.Application»);
    нет прав на создание ком-объекта.

    У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.

    В файловой все работает, даже не под админимон


  8. 14.11.2018, 13:33

    #37

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    В файловой все работает, даже не под админимон

    Поднимите файловую на сервере и там попробуйте.

    Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.

    Пришлите вначале результаты этого тестирования


  9. 27.11.2018, 03:06

    #38

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    Поднимите файловую на сервере и там попробуйте.

    Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.

    Пришлите вначале результаты этого тестирования

    Здравствуйте. В файловой на сервере все работает

    Последний раз редактировалось Akbar11; 27.11.2018 в 03:23.


  10. 27.11.2018, 03:26

    #39

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    На сервере ошибка

    {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
    ExcelApplication = Новый COMObject(«Excel.Application»);
    по причине:
    -2147467262(0x80004002): Интерфейс не поддерживается


  11. 27.11.2018, 07:59

    #40

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    В файловой на сервере все работает
    На сервере ошибка

    ну е-е-е-е… еще раз.. выше уже писал… Если на одном и том же компе одна и та же база поднята в файловом режиме, а затем в клиент-серверном (когда и сервер и клиент это один и тот же ком). И при этом на файловом «все работает», а на клиент-сервере подобная ошибка — следовательно проблема в правах под которым работает база.

    При файл серверном — это права пользователя под которым идет запуск базы, а на клиент сервере это права пользователя под которым крутиться сервер 1С предприятия.

    Решение — смотреть и фиксить эти права. Например как описано тут: — http://buh.ruboard.ru/public/196323/


Похожие темы

  1. Ответов: 1

    Последнее сообщение: 08.06.2017, 00:12

  2. Ответов: 9

    Последнее сообщение: 16.04.2014, 12:50

  3. Ответов: 0

    Последнее сообщение: 27.02.2014, 22:04

  4. Ответов: 2

    Последнее сообщение: 12.08.2013, 13:34

  5. Ответов: 1

    Последнее сообщение: 27.06.2013, 19:33

Социальные закладки

Социальные закладки


Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
  • BB коды Вкл.
  • Смайлы Вкл.
  • [IMG] код Вкл.
  • [VIDEO] код Вкл.
  • HTML код Выкл.

Правила форума

В этой статье речь пойдет об ошибках в COM-соединениях. Один из вариантов ошибки –
это «Ошибка при вызове конструктора (COMObject):
-2147221164(0x80040154): Класс не зарегистрирован…»
. Бывают и другие варианты
сообщений, все я перечислять не буду, в большинстве случаев — это означает, что
при установке платформы компонента comcntr.dll не смогла зарегистрироваться
автоматически.
COM — соединения используются в обменах между конфигурациями.

У меня в готовых решениях есть обработка
загрузки сотрудников из ЗУП, в которой тоже используется
COM — соединение и у
пользователей тоже может появиться ошибка. В случае с моей обработкой, при
проверке соединения, может появиться сообщение, что невозможно установить
соединение с конфигурацией ЗУП.  Это
может произойти, если Вы неправильно указали настройки подключения, неправильно
настроены права пользователя, через которого Вы подключаетесь или чаще всего – проблема
в компоненте comcntr.dll, которая при смене платформы автоматически не
зарегистрировалась. Вот и рассмотрим, как ее зарегистрировать вручную.

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

В командной строке Windows набираете cmd, в
писке выбора появится программа с таким названием, устанавливаете курсор на эту
программу и выбираете из контекстного меню «Запуск под администратором» (см.
картинку ниже).

Запуск командной строки от имени администратора

Затем ввести команду (можно двумя способами):

1.     
regsvr32
«C:Program Files (x86)1cv8[
версия платформы]bincomcntr.dll»

2.     
C:Program
Files (x86)1cv8[
версия платформы]bin>regsvr32 comcntr.dll

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

командная строка

Для смены каталога нужно написать cd, после которого установить пробел, а
затем указать тот путь, который нам нужен, например
C:Program Files (x86)1cv8[версия платформы]bin, затем после указания пути к каталогу нажимаете Enter. Смотрите пример смены каталога на
картинке ниже.

смена каталога в cmd

Вот теперь
рядом с каталогом можно ввести
regsvr32 comcntr.dll, нажать Enter и
зарегистрировать компоненту (смотрите пример на картинке ниже).

запуск regsvr3

Если все
сделали правильно, то получите сообщение (см. картинку ниже).

успешное выполнение регистрации компоненты comcntr.dll

Если компоненту не удалось
зарегистрировать, проверьте как вы запустили командную строку, возможно, что
забыли запустить от имени администратора. Если все в порядке, то нужно отключить
службу агента сервера 1С:Предприятия и все программы, использующие эту DLL. 

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

Рекомендовать в новости

Гость

0

10.09.2014 — 23:01


Через кнопку печати в заказе хочу заполнить шаблон опен офис. Выдает ошибку
Ошибка при вызове конструктора (COMОбъект)
ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);
по причине:
-2147024891(0x80070005): Отказано в доступе.
Эта же конструкция отрабатывается если использовать в этой же базе как дополнительную обработку.

Гость

1

11.09.2014 — 07:47

Компилиться этот код где?

Гость

2

11.09.2014 — 14:16

права пользователя винды?

Гость

3

11.09.2014 — 17:00

это правда не ОПЕНофис, но может и в тему
http://prntscr.com/4lsi7n

Гость

4

11.09.2014 — 17:01

хотя навряд ли

Гость

5

19.09.2014 — 12:24

Код вероятно на сервере, допетрил, просто тут нубов щимят, можно раз в 24 часа постить. Не понимаю как из модуля внешней обработки перейти на выполнение на клиенте. Открытием формочки? Подскажите если сталкивались. Винда не имеет значения, т.к. из БП2 все работает, да и из 11 через форму с разделом Клиент тоже

Гость

6

20.09.2014 — 00:05

а зачем ком объект на сервере создавать, кстати? работай с ним на клиенте

Гость

7

22.09.2014 — 21:15

Основная идея что на кнопке «Печать» должна висеть функция вывода бланка. Как передать управление с этой кнопки на клиент я не знаю. Пока не знаю.

Гость

8

22.09.2014 — 21:47

так кнопка на клиенте же

  • Com google process gapps произошла ошибка asus
  • Com google process gapps ошибка 4pda
  • Com google android inputmethod latin ошибка
  • Com facebook sdk login ошибка 304
  • Com apple mobilephone ошибка 1035