Com sun star servicemanager 1с ошибка

   repin_mike

29.01.21 — 09:52

Перезагрузка машины не помогла.

По аналогии с СОМ объектом 1С видимо нужно зарегистрировать какую-то библиотеку через regsvr32

Никто не знает какую?

   Aleksey

1 — 29.01.21 — 10:02

А что говорит яндекс?

   Voronve

2 — 29.01.21 — 10:04

(0) Скрин ошибки в студию.

(1) Щас выясниться что отсутствует LO или подвисло ядро и объект не создается

   repin_mike

3 — 29.01.21 — 10:13

(2) https://i.paste.pics/a92c6f4b9bb0eb81baf3b592b9c66597.png

(1) Если бы нашёл в интернете, то на форуме спрашивать бы точно не стал

   Aleksey

4 — 29.01.21 — 10:13

(3) 7 бед один ресет. Машину перегружал? Пыль с монитора вытирал? По системнику ботинком стучал?

   Aleksey

5 — 29.01.21 — 10:14

И что с ошибкой, почему описание ошибки заремлено?

   repin_mike

6 — 29.01.21 — 10:26

(4) Перезагружал, пыль с монитора не стирал потому что монитора нет, это же сервер; по системнику тоже не стучал потому что он в 140 км от меня.

   Voronve

7 — 29.01.21 — 10:41

(3) Мдээ … ну удачи чо

   Йохохо

8 — 29.01.21 — 11:05

баш подавился от зависти

   repin_mike

9 — 29.01.21 — 11:14

(8) Ну дык да. А по теме никто ничего, эх..

   Aleksey

10 — 29.01.21 — 12:47

(9) ты форумом ошибся, тебе на forum.telepatof.net

   hhhh

11 — 29.01.21 — 12:57

(9) на сервере точно этот либре офис установлен?

   arsik

12 — 29.01.21 — 13:01

(3) Может жаву нужно установить?

   rphosts

13 — 29.01.21 — 13:19

(0) трынделей тому кто админит сервер

   acht

14 — 29.01.21 — 13:30

(9) А зачем ты перевел сервер на линукс?

   polosov

15 — 29.01.21 — 13:43

(0) Имя COM-сервера для com.sun.star.ServiceManager.1 —  «LibreOffice C:Program FilesLibreOfficeprogramsoffice.exe —nodefault —nologo»

Это по умолчанию

Проверь что у тебя по этому пути. Проверь в реестре поиском по «com.sun.star.ServiceManager» на что оно ссылается

   repin_mike

16 — 29.01.21 — 15:53

(11) Да, 100% на этом сервере.

(14) На винде. Excel нежелательно ставить из-за лицензионных ограничений

(15) Всё проверил, все ветки в реестре на месте.

Подняли виртуальный сервер с такой же конфигурацией, накатили туда тот же дистрибутив либре офиса — всё работает («com.sun.star.ServiceManager», без точка один). На нужном сервере либре офис убивали — ставили — перезагружали.Что-то тупик пятничный.

   repin_mike

17 — 29.01.21 — 16:01

Антивируса на машине нет, вообще не знаю на кого грешить.

   polosov

18 — 29.01.21 — 16:35

(16) А либра 64бита стоит? Ну в качестве предположения?

Попробуй посмотреть ошибки в журнале винды.

   Deal with it

19 — 29.01.21 — 16:58

(0) Саму компоненту уже смотрели? Под каким пользователем запускается? Желательно чтобы пользователь был указан отдельный с админскими правами

   repin_mike

20 — 01.02.21 — 11:37

(18) За подсказку посмотреть в ЖР спасибо. Посмотрел и увидел там ошибку «Регистрация сервера {82154420-0FBF-11D4-8313-005004526AB4} DCOM не выполнена за отведенное время ожидания.»

Сразу же нагуглилась тема 1C (клиент-сервер) и Libre Office

Показал админам и они всё за 10 минут поправили.

  

repin_mike

21 — 01.02.21 — 11:42

(19) Вы угадали на 100%. Спасибо.

Я
   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. 

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

LarisaT
23.03.2010 16:10 Прочитано: 8980

Пыталась написать код из 1С77 для открытия документа Open Office Writer. Использовала предлагаемые коды для работы с Open Office Calc, приведенные в инете. Там есть строка

ServiceManager=СоздатьОбъект(«com.sun.star.Service Manager»);

У меня на нее выдает сообщение «Неудачная попытка создания объекта (com.sun.star.Service Manager)»

Не подскажете, почему? Что нужно доустановить в систему? Может кто выложит полный код описанной задачи.
Где можно почитать об этом вопросе подробно?

С документами из MS Word MS Excel у меня проблем не было. Там все понятно.

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
23.03.2010 17:34 Ответ № 1

Нужно писать:
Код 1C v 7.x

 ServiceManager=СоздатьОбъект("com.sun.star.ServiceManager");

вот рабочие примеры: где заполняется фразой новый документ, а потом эта фраза меняется на другую:

Код 1C v 7.x

 
Перем Док; //smaharbA

Процедура Заполним()
Перем Имя,Путь;
Поиск="Съешь ещё этих мягких французских булок, да выпей чаю";
Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
Математика=Скрипт.eval("Math");
Массив=Скрипт.eval("Массив=new Array()");
СервисМанагер=Скрипт.eval("СервисМанагер=new ActiveXObject('com.sun.star.ServiceManager')");
Парам=Скрипт.eval("Парам=СервисМанагер.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
Парам.Name="Hidden";
Скрипт.eval("Парам.Value=false;");
Массив.push(Парам);
Десктоп = СервисМанагер.createInstance("com.sun.star.frame.Desktop");
//Док = Десктоп.LoadComponentFromURL("file:///"+СтрЗаменить(Путь+Имя,"","/"), "_blank", 0, Массив );

Док = Десктоп.LoadComponentFromURL("private:factory/swriter", "_blank", 0, Массив );
Стр="";
Для к=1 По 100 Цикл
Стр=Стр+Поиск+РазделительСтрок;
КонецЦикла;
Док.getText().setString(Стр);
КонецПроцедуры

Процедура Заменим()
Поиск="Съешь ещё этих мягких французских булок, да выпей чаю";
Замена="Выпей вотки и закуси селеткой )";
Дескриптор=Док.createSearchDescriptor();
Дескриптор.SearchString = Поиск;
//Док.SearchWords = -1;

Дескриптор.SearchCaseSensitive = -1;
Дескриптор.SearchBackwards = -1;
Дескриптор.ReplaceString = Замена;
Док.ReplaceAll(Дескриптор);
КонецПроцедуры

Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!


Description


Vitaly Lipatov



2009-07-31 17:49:09 MSD

При попытке открыть в 1с шаблона Word в OpenOffice, в момент выполнения
кода:

ServiceManager = СоздатьОбъект("com.sun.star.ServiceManager");
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");

На сервере запускается процесс:
Command C:Program FilesOpenOffice.org 2.4programsoffice.exe -nodefault -nologo -Embedding,

но в 1с вылетает ошибка:
Неудачная попытка создания объекта (com.sun.star.ServiceManager)

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


Comment 1


Денис Баранов



2009-07-31 18:40:22 MSD

Если запускать 1С через wine, то выдается ошибка.
Для работоспособности данной обработки нужно запускать 1С через wine98.

Добрый день! Заранее прошу прощения за возможно детские вопросы. У меня стоит задача заполнения документа в open office из формы документа 1с. Я создала кнопку «Печать», после чего начала описывать процедуру. ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);     Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);     Док = Desktop.OleFunction(«LoadComponentFromURL», «C:…», 0 ); На этом участке кода у меня система выдает ошибку: «Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);» В режиме отладки проверяла ServiceManager заполняется, а вот Desktop остается неопределенным. Пыталась исправить ошибку, но безуспешно. Надеюсь на Вашу помощь.Заранее спасибо!

Без фотки топлесс такие вопросы не решить.

Ой ошибку не дописала, вот она:»Метод объекта не обнаружен (OleFunction)    Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);»

ничего не выйдет, 1с такое не умеет,

А откуда известно,что у ServiceManager есть именно такой метод как OleFunction?

Щас, автор выдаст — «Сама я не по 1С, да и не программист вообще, даже не программистка. А всего лишь системный администратор» :) …Без фото, солнечный офис не будет работать…

EasyRider вот здесь вроде вычитала. А сама я начинающий программист, поэтому не пугайте пожалуйста)

Никто не пугает, но без фото не взлетит)

Фото пока сделать не могу, не в офисе пока)

в ссылке написано «OpenOffice.org базируется на компонентной модели UNO»,а не на сом!Поэтому подозреваю,что после строк  ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»); вы получаете в переменной ServiceManager не совсем то,что хотите.

То есть ошибка получается в ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»); Неправильно определила ServiceManager?

а теперь фото в студию!!!

Глупый вопрос, знаю, фото на каком моменте программы нужно(еще раз повторюсь, я еще маленький программист))

Desktop = ServiceManager.createInstance(«com.sun.star.frame.Desktop»); а если так?

Оооо, ура теперь надо следующую строчку исправлять, там та же ошибка, но попробую пока сама))

не верю, что вконтакте нету фото или где-то еще. так не честно.

фото нужно на моменте себя перед фотоаппаратом

Да будет  фото,я сейчас не за своим компьютером,вечером выложу)

Конфигурация Библиотека стандартных подсистем ОбщийМодуль.УправлениеПечатьюOOWriterКлиент — там найдешь многие ответы на свои вопросы.

Как для программиста очень даже ничего

Проверила, действительно неправильно определила переменную док,переписала. Док=Desktop.LoadComponentFromURL(«C:dvstmpqqqq.odt», «_blank», 0,Параметры); Но теперь он пишет: «{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма}: Ошибка при вызове метода контекста (LoadComponentFromURL)      Док=Desktop.LoadComponentFromURL(«C:advastmpqqqq.odt», «_blank», 0,Параметры); по причине: Произошла исключительная ситуация ([automation bridge] ): [automation bridge] UnoConversionUtilities<T>::dispatchExObject2Sequence Conversion of dispatch object to Sequence failed! Произошла исключительная ситуация ([automation bridge] ): [automation bridge] UnoConversionUtilities<T>::dispatchExObject2Sequence Conversion of dispatch object to Sequence failed!» и вот это я уже, честно говоря в ступоре, сначала я не указывала параметры, и он жаловался на не совпадение типов, пока пытаюсь в режиме отладки, но безуспешно…

Посидела еще немного, посмотрела, в моем случае я в переменную FilePath передаю ссылку на уже существующий файл,то есть мне надо будет обрабатывать ее с помощью функции ConvertToUrl, но что-то мне подсказывает что я ушла далеко в сторону, плюс еще я не стала передавать вид массива, опять же не уверена, что это правильно.

Спасибо большое, буду пробовать)

Фотографию, как обещала, загрузила)

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

Я попыталась сделать кусок кода как в этой ссылке, но у меня пока не работает ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);     Desktop = ServiceManager.createInstance(«com.sun.star.frame.Desktop»);     НастройкиОткрытия = Новый COMSafeArray(«VT_VARIANT», 1); PropertyValue = ServiceManager.Bridge_GetStruct(«com.sun.star.beans.PropertyValue»);    PropertyValue.Name = «Hidden»;    PropertyValue.Value = Истина;    НастройкиОткрытия.SetValue(0, PropertyValue);    ВременныйФайлXLS_какУРЛ = // «file:///» +  СтрЗаменить(«C:dvstmpqqqq.odt», «», «/»); // приводим путь к файлу из виндового формата в опен офисный Document=Desktop.LoadComponentFromURL( ВременныйФайлXLS_какУРЛ, «_blank», 0,НастройкиОткрытия); На месте определения Document он выдает ошибку: «{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма}: Ошибка при вызове метода контекста (LoadComponentFromURL)      Document=Desktop.LoadComponentFromURL( ВременныйФайлXLS_какУРЛ, «_blank», 0,НастройкиОткрытия); по причине: Произошла исключительная ситуация ([automation bridge] ): com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one.» Возможно я неправильно указала URL-адрес

Прошла еще немного, без функции ConvertToURL работать не будет, то есть надо путь к файлу обрабатывать там, как это сделать пока не поняла, нашла, что надо использовать Стр.Заменить, опять же еще не совсем понимаю, как в данном случае ей воспользоваться, если не сложно, помогите пожалуйста.

Тэги: Админ

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Com apple diskmanagement disenter ошибка 119930868
  • Com android vending произошла ошибка что делать
  • Com android vending произошла ошибка как исправить
  • Com android systemui ошибка на планшете
  • Com android settings произошла ошибка что делать