Новый comобъект excel application ошибка

После обновления платформы 1С на последнюю текущую версию столкнулся с ошибкой в обработке, которая работала еще до сегодняшнего дня.

Сохраненное изображение 2016-3-3_21-37-21.603

Вызов осуществляется на сервере 1С:Предприятия, в управляемом приложении.

Эксель = Новый COMОбъект(«Excel.Application»);

При этом сервер приложения 1С 32х разрядный, хотя и стоит на Windows 64 битной версии.

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

Regsvr32 «C:\Program Files (x86)\1cv8\(версия платформы)bin\comcntr.dll»

Однако не в этом случае…

Поиск по интернету и «гугление» конечно помогает в большинстве случаев 🙂 однако вариантов было перепробовано несколько и ничего не помогло кроме следующего:

  1. Заходим на сервер приложений 1С под локальным админом
  2. Запускаем DCOMCNFG  (Консоль настроек «Component  Services»)
    1. Открываем ветку Console Root -> Component Services ->  Computers ->  My computer ->  DCOM Config
    2. Ищем «Microsoft Excel Application»
    3. Если нашли, то переходим к пункту 4 (Настраиваем свойства DCOM компонента «Microsoft Excel Application»)
    4. Закрываем «Component  Services»
  3. Настройка реестра
    1. Запускаем REGEDIT
    2. Открываем ветку Computer\HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем
    3. Создаем в ней строковый параметр AppID  = {00020812-0000-0000-C000-000000000046}
    4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть  32 битные компоненты.
    5. После этого в Component Services должен появиться «Microsoft Excel Application»
  4. Настраиваем свойства DCOM компонента «Microsoft Excel Application»
    1. Закладка «Security»
      1. «Launch and Activation Permissions» — Customize — Edit
        1. Добавляем пользователя, под которым запускается  агент сервера 1С
        2. Назначем ему только следующие права  (allow):
          1. Local Launch
          2. Local Activation
      2. «Access  Permissions» — Customize — Edit
        1. Добавляем пользователя, под которым запускается  агент сервера 1С
        2. Назначаем ему только следующие права  (allow):
          1. Local Access
    2. Закладка «Identity»
      1. Должно быть выбрано «The launching user»
  5. Системные папки
    1. Папка «C:\Windows\SysWOW64\config\systemprofile\Desktop\»
      1. Проверяем наличие папки , если нет -то создаем.
      2. Заходим в свойства этой папки.
      3. Закладка Security
      4. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
      5. Добавляем право «Read» и «Write»
    2. Папка «C:\Windows\System32\config\systemprofile\Desktop\»
      1. Проверяем наличие папки , если нет -то создаем.
      2. Заходим в свойства этой папки.
      3. Закладка Security
      4. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
      5. Добавляем право «Read» и «Write»

Источник информации © Инфостарт.

БП 8.3.5.1383 Ошибка COMОбъект(«Excel.Application») ☑ 0

Sh_Vlad

13.01.15

12:18

Здравстуйте.

Перестало работать:

Ексель = Новый COMОбъект(«Excel.Application»);

по причине:

-2147221005(0x800401F3): Недопустимая строка с указанием класса

Куда смотреть?

Спасибо.

1

mikecool

13.01.15

12:20

не установлен эксель, смотреть в программы и компоненты

2

Sh_Vlad

13.01.15

12:20

(1) Установлен. 2003

3

Feunoir

13.01.15

12:25

Проверить наличие HKEY_CLASSES_ROOT\Excel.Application в реестре.

4

Sh_Vlad

13.01.15

12:33

(3) Наличиствует. + HKEY_CLASSES_ROOT\Excel.Application.11

5

Sh_Vlad

13.01.15

12:34

Работало до недавнего времени. Года три обработке

6

Leksus

13.01.15

12:35

В релизе 8.3.5.1400 кажется что-то исправляли с подключением ком

7

senior

13.01.15

12:38

создай этот же COM объект в блокноте на VB, думаю проблема не в 1С

8

Sh_Vlad

13.01.15

13:05

(7) Если можно — поподробнее…

9

DrZombi

13.01.15

13:13

(8) А точно 2003? Бывает, что обновляются до 2007 и усе :)

10

Rie

13.01.15

13:15

(4) Ну так попробуй указать явно «Excel.Application.11»

11

Rie

13.01.15

13:18

+(10) И посмотри, на всякий случай, в реестре в CLSID — путь правильный?

12

Sh_Vlad

13.01.15

13:23

(11) Там вообще не путь. А {00024500-0000-0000-C000-000000000046}

13

Rie

13.01.15

13:28

(12) В  разделе CLSID этот ключ найди и посмотри куда LocalServer (LocalServer32) смотрит.

14

Sh_Vlad

13.01.15

13:48

(13) Путь правильный

15

Rie

13.01.15

13:49

Пробовал (10)?

16

Sh_Vlad

13.01.15

13:49

Да

17

Rie

13.01.15

14:15

(8) Создай (в блокноте) файл с расширением .vbs

Вставь туда

set xl = CreateObject(«Excel.Application»)

xl.Workbooks.Add

xl.Visible = 1

Сохрани и запусти.

Что получилось?

18

Sh_Vlad

13.01.15

14:59

(17) Получилось — открылась новая книга Ексель

19

Sh_Vlad

13.01.15

15:03

Причем оба варианта — Excel.Application и Excel.Application.11

20

Sh_Vlad

13.01.15

15:54

Люди добрые, есть еще варианты причин ошибки?

21

Zamestas

13.01.15

15:57

(20) Запустить от администратора пробовал?

22

Sh_Vlad

13.01.15

16:01

(21) Что запустить — Предприятие? Вообще-то учетка админская…

23

DrZombi

13.01.15

16:10

(22) Обновись на старый релиз :)

24

Zamestas

13.01.15

16:11

(22) Да предприятие, в win7/2008 и старше админские права не означают полные права.

25

Sh_Vlad

13.01.15

16:19

Не помогло…

26

ZUM

13.01.15

16:31

Здравствуйте!

1) Попробуйте это

При подключении к базе com-объектом вылетает ошибка (файл с ошибкой во вложении, вылетает на строчке кода при создании ком-объекта: Коннектор = Новый COMОбъект(«V8.COMConnector»);)

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

1. Администрирование — Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ — Создать приложение – Создать новое приложение – вводим имя «V82.COMConnector»(переключатель «Серверное приложение») – Указанный пользователь (Администратор)

2. В появившейся ветке V82COMConnector – подветка Компоненты – создание нового компонента – Установка новых компонентов — <каталог 1С>\bin\comcntr.dll

3. Правой кнопкой по ветке V82COMConnector – Свойства – Безопасность – Снял галку «Принудительная проверка доступа для приложений» — Поставил галку «Применить политику программных ограничений» — Уровень ограничений «Неограниченный»

2) Если не помогло

Проблема :

1. Не установлен Microsoft Excel

2. Для работы ком-объекта необходимо наличие папки

For Windows 2008 Server x64

  C:\Windows\SysWOW64\config\systemprofile\Desktop

For Windows 2008 Server x86

  C:\Windows\System32\config\systemprofile\Desktop

Источник (https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice)

27

Sh_Vlad

13.01.15

16:48

1) Проделал.

2) Папка есть, только вместо Desktop — по русски Рабочий стол

Не помогло…

28

igork1966

13.01.15

16:51

(27) а если указать имя сервера в конструкторе?

localhost

29

Rie

13.01.15

16:51

(18) То есть, Excel спокойно коннектится.

Наивный вопрос: а откуда коннектится? С клиента или с сервера?

30

Rie

13.01.15

16:52

(28) То это будет уже совсем другая история…

31

Sh_Vlad

13.01.15

16:59

(29) Клиент предприятия на терминальном сервере. Там же запускал скрипт.

32

Sh_Vlad

13.01.15

17:00

Или вопрос не про то?

33

Rie

13.01.15

17:03

(32) Про то. Тогда — странно очень.

Может, обработку правили — и буковку не из того алфавита поставили? Или (6)…

34

Sh_Vlad

13.01.15

17:05

Работало везде «еще вчера»

Обработку не правили уже полгода (тем более в этой строке). Ексель не переустанавливали, т.к. см. выше

35

yukon

13.01.15

17:05

(33)(32) Не про то.

Создание СOM-объекта происходит &НаКлиенте или &НаСервере?

36

Sh_Vlad

13.01.15

17:06

&НаСервере

37

Sh_Vlad

13.01.15

17:08

Сейчас надо &НаКлиенте?

38

igork1966

13.01.15

17:09

(37) дык у тебя на сервере и пытается создать объект

39

Rie

13.01.15

17:10

Так он и vbs запускал на сервере-то… И обработка раньше у него работала…

40

yukon

13.01.15

17:11

Значит только костылями. Заказчику покажи это:

Вопросы серверной автоматизации Office

https://support.microsoft.com/kb/257757

Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.

41

yukon

13.01.15

17:12

(39) На каком сервере — на терминальном или 1С-ном?

42

Rie

13.01.15

17:13

(41) Предполагаешь, что они сервер переставляли? Говорит ведь, что раньше — работало.

43

yukon

13.01.15

17:16

(42) 1С-ный по любому переставляли.

Для 8.3 есть еще вариант, что включили в профилях безопасности ограничение на COM-объекты.

44

Sh_Vlad

13.01.15

17:28

Так что с 1С-ным сервером не так?

45

yukon

13.01.15

17:49

(44) Пока все нормально (глянь на всякий случай профили безопасности).

Терминальный сервер и сервер 1С на одной машине работают?

46

Sh_Vlad

14.01.15

08:56

Проблема остается.

(45) На разных.

47

ProxyInspector

14.01.15

09:15

Явно автор не раскрыл когда у него перестало работать. Я боюсь, что после пытания паяльником выяснится, что был установлен Windows 2008 x 64 сервер. Установлен сервер 1с предприятия х 64. Обновлена версия 1с предприятия с 8.2 на 8.3. Запуск сервера 1с предприятия раньше запускался от имени System, а сейчас запускается от имени Usr1c8. Раньше 1с работала в режиме толстого клиента, а сейчас на управляемых формах.

И вот после этого НЕОЖИДАННО перестал работать Exell в режиме ОЛЕ.

Я почему-то не очень сильно удивляюсь :)

48

Sh_Vlad

14.01.15

09:45

(47) Что нужно изменить в коде чтобы работала конструкция Новый COMОбъект(«Excel.Application»);

Все указанные изменения имеют место быть. Обработка сделана под управляемые формы

49

Dolphinbet

14.01.15

09:51

To resolve this issue follow these steps

1. Login to the server as a administrator.

2. Go to «Start» -> «Run» and enter «taskmgr»

3. Go to the process tab in task manager and check «Show Processes from all users»

4. If there are any «Excel.exe» entries on the list, right click on the entry and select «End Process»

5. Close task manager.

6. Go to «Start» -> «Run» and enter «services.msc»

7. Stop the service automating Excel if it is running.

8. Go to «Start» -> «Run» and enter «dcomcnfg»

9. This will bring up the component services window, expand out «Console Root» -> «Computers» -> «DCOM Config»

10. Find «Microsoft Excel Application» in the list of components.

11. Right click on the entry and select «Properties»

12. Go to the «Identity» tab on the properties dialog.

13. Select «The interactive user.»

14. Click the «OK» button.

15. Switch to the services console

16. Start the service automating Excel

17. Test you application again.

50

yukon

14.01.15

10:07

(46) Вот это «Получилось — открылась новая книга Ексель» делалось на сервере 1С?

51

Sh_Vlad

14.01.15

12:04

Помогла переустановка офиса на сервере.

Теперь не хочет открывать шаблон:

Ошибка при вызове метода контекста (Add)

        Ексель.WorkBooks.Add(«\\……..\Template\Zayvka.xlt»);

Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «\………..\Template\Zayvka.xlt». Это может быть вызвано одной из следующих причин.

• Указан несуществующий файл или путь.

• Файл используется другой программой.

• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.

Файл существует. Никем не открыт. Имя не с чем не совпадает

52

Sh_Vlad

14.01.15

12:04

Доступ полный для всех

53

Sh_Vlad

14.01.15

12:22

Скрипт открывает этот файл

54

Dolphinbet

14.01.15

12:59

(51) см. 49 :)

55

Dolphinbet

14.01.15

13:04

Только в пункте 13. Select «The interactive user.» вместо interactive user надо указать конкретного пользователя под котороым запускается сервер 1С-Предприятие.

56

DrZombi

14.01.15

13:07

(47) Обычно такое перестает работать после обновления Форточек.

У нас как то было, при обновлении рабочей станции, т.е. обычного ПК. Но офис там был 2007-ой, обновление на него так подействовало :)

57

Sh_Vlad

14.01.15

13:08

По (49) все проделано. «Microsoft Excel Application» такой ветки в настройках нет. В тех что есть стоит «Запускающий пользователь» («The interactive user»? ).

58

Dolphinbet

14.01.15

13:10

(57) так вот надо не «Запускающий пользователь» а тот под которым запускается сервер 1С

59

Sh_Vlad

14.01.15

13:27

Сервер запускается системной учетной записью. И куда пихать этого пользователя — нужной ветки нет

60

Dolphinbet

14.01.15

13:27

а почему нет «Microsoft Excel Application»??

61

Sh_Vlad

14.01.15

13:31

(60) У нас разделение труда. Офис устанавливает другая служба. Не могу сказать. Есть «Office Licensing COM Server 14»

62

hhhh

14.01.15

13:34

(59) ну, поменяйте в строке запуска сервера 1с системную запись на другого пользователя. Зачем вы системную туда вбухали? Можно было оставить пользователя, который там по умолчанию был: Usr1cv8

63

Sh_Vlad

14.01.15

13:38

(62) Смысл менять в сервере 1с, если его надо прописать в настройках DCOM Екселя — некуда писать…

64

Dolphinbet

14.01.15

13:56

(61) похоже из-за этого и не работает, «Microsoft Excel Application» должен быть в ветке «Настройка DCOM»

65

Sh_Vlad

14.01.15

14:09

Как его туда запихнуть? Не вручную же…

На других серверах тоже нет. Есть например «Книга Microsoft Office Excel 2007»

66

Dolphinbet

14.01.15

14:15

(65) Да, действительно, почему-то в серверных ОС этой ветки нет…

67

Dolphinbet

14.01.15

15:01

может по коду приложения поискать {00024500-0000-0000-C000-000000000046} ?

68

Dolphinbet

28.01.15

09:31

Ошибка при вызове конструктора (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 код Выкл.

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

После обновления платформы 1С на последнюю текущую версию столкнулся с ошибкой в обработке, которая работала еще до сегодняшнего дня.

Сохраненное изображение 2016-3-3_21-37-21.603

Вызов осуществляется на сервере 1С:Предприятия, в управляемом приложении.

Эксель = Новый COMОбъект(«Excel.Application»);

При этом сервер приложения 1С 32х разрядный, хотя и стоит на Windows 64 битной версии.

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

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

Однако не в этом случае…

Поиск по интернету и «гугление» конечно помогает в большинстве случаев 🙂 однако вариантов было перепробовано несколько и ничего не помогло кроме следующего:

  1. Заходим на сервер приложений 1С под локальным админом
  2. Запускаем DCOMCNFG  (Консоль настроек «Component  Services»)
    1. Открываем ветку Console Root -> Component Services ->  Computers ->  My computer ->  DCOM Config
    2. Ищем «Microsoft Excel Application»
    3. Если нашли, то переходим к пункту 4 (Настраиваем свойства DCOM компонента «Microsoft Excel Application»)
    4. Закрываем «Component  Services»
  3. Настройка реестра
    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»
  4. Настраиваем свойства DCOM компонента «Microsoft Excel Application»
    1. Закладка «Security»
      1. «Launch and Activation Permissions» — Customize — Edit
        1. Добавляем пользователя, под которым запускается  агент сервера 1С
        2. Назначем ему только следующие права  (allow):
          1. Local Launch
          2. Local Activation
      2. «Access  Permissions» — Customize — Edit
        1. Добавляем пользователя, под которым запускается  агент сервера 1С
        2. Назначаем ему только следующие права  (allow):
          1. Local Access
    2. Закладка «Identity»
      1. Должно быть выбрано «The launching user»
  5. Системные папки
    1. Папка «C:WindowsSysWOW64configsystemprofileDesktop»
      1. Проверяем наличие папки , если нет -то создаем.
      2. Заходим в свойства этой папки.
      3. Закладка Security
      4. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
      5. Добавляем право «Read» и «Write»
    2. Папка «C:WindowsSystem32configsystemprofileDesktop»
      1. Проверяем наличие папки , если нет -то создаем.
      2. Заходим в свойства этой папки.
      3. Закладка Security
      4. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
      5. Добавляем право «Read» и «Write»

Источник информации © Инфостарт.

Содержание:

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

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

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

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

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

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

Олег Мороз

  

val245

03.04.18 — 20:24

Здравствуйте

Стоит УТ 11. Клиент-серверный вариант. Загружаю данные из Excel. При попытке открыть файл конструктором

Ex=Новый ComОбъект(«Excel.Application»);

Work = Ex.workbooks.Open(СокрЛП(ПутьКФайлу));

Входит ошибка

{Обработка.ЗагрузкаНоменклатурыИзЭкзель.Форма.Форма.Форма(25)}: Ошибка при вызове конструктора (ComОбъект): -2147467262(0x80004002): No such interface supported

Обработку разрабатывал в фаловом варианте. В файловом варианте обработка проходит нормально. Excel на сервере установлен.

Кто знает, почему файл не хочет читаться в клиент-серверном варианте?

  

shuhard

1 — 03.04.18 — 20:27

(0)[Кто знает, почему] Все знают
100500 раз писалось про пути и учетные записи

  

Darych

2 — 03.04.18 — 20:28

права

  

val245

3 — 03.04.18 — 20:32

права в 1с или права учетных записей Windows?

  

Darych

4 — 03.04.18 — 20:32

вин

  

MaxS

5 — 03.04.18 — 20:33

Открывайте 1С-ом через Файл-Открыть

  

val245

6 — 03.04.18 — 20:34

(1) Ну я пока с такой проблемой не сталкивался

  

shuhard

7 — 03.04.18 — 20:34

(3) права учетной записи, от которой крутиться rphost

+ ну и конечно для загрузки из xls ставить на сервер эксель плохое решение, пару раз зависнет и сожрёт всю память

  

Cool_Profi

8 — 03.04.18 — 20:35

(7) Твой вариант решения?

  

tesseract

9 — 03.04.18 — 20:35

Почему просто в ТД не читать? Зачем Excel дергать?

  

val245

10 — 03.04.18 — 20:37

(5) Открывать 1С-ом что? обработку или Excel? Экзель открывается, правда, конечно, не читабельно..

  

Darych

11 — 03.04.18 — 20:37

(9) не всегда в ТД получается

  

val245

12 — 03.04.18 — 20:38

(9) ТД — это что?

  

piter3

13 — 03.04.18 — 20:38

Взять типовую загрузку из йокселя,загрузить,закрыть,забыть.

  

val245

14 — 03.04.18 — 20:38

табличный документ?

  

val245

15 — 03.04.18 — 20:39

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

  

tesseract

16 — 03.04.18 — 20:39

(14) Да он давно и Excel и ods нормально грузит.

  

piter3

17 — 03.04.18 — 20:39

  

shuhard

18 — 03.04.18 — 20:39

(8) adodb однозначно

  

shuhard

19 — 03.04.18 — 20:40

(16) многостраничные стал грузить совсем не давно

  

Darych

20 — 03.04.18 — 20:41

(18) а у него думаешь не адо?

  

Cool_Profi

21 — 03.04.18 — 20:41

(18) И тут мы вам покажем, как вы думаете, что?

Правильно… Вот эту ссылку

https://www.forum.mista.ru/topic.php?id=815766

  

shuhard

22 — 03.04.18 — 20:42

(20) ты это о  чем ?

ComОбъект(«Excel.Application»);

  

shuhard

23 — 03.04.18 — 20:43

(21) ты неудачник и что ?

  

Cool_Profi

24 — 03.04.18 — 20:44

(23) А с какого перепою я неудачник? Можешь обосновать внятно?

Или у тебя перепой?

  

shuhard

25 — 03.04.18 — 20:47

(24) хвостик отрасти для объяснений

  

val245

26 — 03.04.18 — 20:48

а с чем эта ошибка связана? почему в файловом варианте читает, а в клиент-серверном читать не хочет?

  

shuhard

27 — 03.04.18 — 20:49

(26) пипец

ты чё, ответы не читаешь ?

  

ДенисЧ

28 — 03.04.18 — 20:49

(25) Так лучше видно?

  

tesseract

29 — 03.04.18 — 20:52

(26) Сервер и клиент находятся в разных местах. Если на одном — у них разные пользователи. См НачатьПомещениеФайла для начала.

  

shuhard

30 — 03.04.18 — 20:53

(28) =)

  

Darych

31 — 03.04.18 — 20:54

все ж написано: «No such interface supported

«

  

val245

32 — 03.04.18 — 20:55

сейчас пользователи подключаются через rdp. Все действия происходят на сервере..

  

shuhard

33 — 03.04.18 — 20:57

  

val245

34 — 03.04.18 — 21:01

ок. спасибо. Будем разбираться…

Вопрос При работе с Excel из 1С возникает сообщение: «Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается». Что делать?
Ответ
Подробнее:

При использовании:

Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(ИмяФайла);

Выдает ошибку – Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается.

Или другой метод:

Объект = ПолучитьCOMОбъект(ИмяФайла);

— сообщение: «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Класс не зарегистрирован»
или

Объект = ПолучитьCOMОбъект(ИмяФайла, "Excel.Application");

— сообщение: «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Сервер RPC недоступен»

Причин всех этих ошибок может быть несколько. 

У службы «Запуск серверных процессов DCOM» тип запуска должен быть «Авто».

Кроме того, если  служба «Агент сервера 1С:Предприятия 8.2» запускается от имени специального пользователя, то у него должны быть права на запуск компоненты «Приложение Microsoft Excel»

Служба «Агент сервера 1С:Предприятия 8.2» не должна запускаться от имени пользователя с ограниченными правами, у него должны быть права на запуск компоненты «Приложение Microsoft Excel».

Другая возможная причина: 1С предприятие установлено в 64-битном варианте, а Excel — в 32-битном. Может помочь установка 1С в 32-битном варианте (это может быть проще, чем найти 64-битный Excel)

У службы «Запуск серверных процессов DCOM» тип запуска необходимо установить в «Авто». После чего желательно перезагрузить компьютер.

Ну и как вариант, быть может поврежден установленный пакет MS Office. Необходимо попробовать переустановить его.

Next Post

  • v8

  • Программисту 1C

Пт Май 14 , 2010

Вопрос Как в запросе использовать «СокрЛП», «Лев», «Прав», т.е. как отсечь нужное количество символов? Ответ Использовать конструкцию «ВЫРАЗИТЬ»: … ГДЕ (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) «Груз» |ГДЕ | (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) &Груз … Запрос.УстановитьПараметр(«Груз»,»Груз»);

Breaking News

В этой статье речь пойдет об ошибках в 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. 

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

Здравствуйте. Подскажите, никто не сталкивался с такой проблемой?
Если запускать этот код из внешней обработки , то всё нормально, но как только я разместил код в общий модуль (сервер, привилегированный, вызов сервера) и подцепил рег. задание, то вылетает ошибка:

{ОбщийМодуль.DC_СлужебныйПривелегированный.Модуль(9873)}: Ошибка при вызове конструктора (COMОбъект)
        ExcelApp = Новый COMОбъект("Excel.Application");
по причине:
-2147024891(0x80070005): Отказано в доступе. 

Решение:
1. Администрирование - Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ - Создать приложение – Создать новое приложение – вводим имя «V82.COMConnector»(переключатель «Серверное приложение») – Указанный пользователь (Администратор)
2. В появившейся ветке V82COMConnector – подветка Компоненты – создание нового компонента – Установка новых компонентов - <каталог 1С>bincomcntr.dll
3. Правой кнопкой по ветке V82COMConnector – Свойства – Безопасность – Снял галку «Принудительная проверка доступа для приложений» - Поставил галку «Применить политику программных ограничений» - Уровень ограничений «Неограниченный»

Проблема была именно с разрядностью.

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

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

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

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

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

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

Олег Мороз

val245

03.04.18 — 20:24

Здравствуйте

Стоит УТ 11. Клиент-серверный вариант. Загружаю данные из Excel. При попытке открыть файл конструктором

Ex=Новый ComОбъект(«Excel.Application»);

Work = Ex.workbooks.Open(СокрЛП(ПутьКФайлу));

Входит ошибка

{Обработка.ЗагрузкаНоменклатурыИзЭкзель.Форма.Форма.Форма(25)}: Ошибка при вызове конструктора (ComОбъект): -2147467262(0x80004002): No such interface supported

Обработку разрабатывал в фаловом варианте. В файловом варианте обработка проходит нормально. Excel на сервере установлен.

Кто знает, почему файл не хочет читаться в клиент-серверном варианте?

shuhard

1 — 03.04.18 — 20:27

(0)[Кто знает, почему] Все знают
100500 раз писалось про пути и учетные записи

Darych

2 — 03.04.18 — 20:28

права

val245

3 — 03.04.18 — 20:32

права в 1с или права учетных записей Windows?

Darych

4 — 03.04.18 — 20:32

вин

MaxS

5 — 03.04.18 — 20:33

Открывайте 1С-ом через Файл-Открыть

val245

6 — 03.04.18 — 20:34

(1) Ну я пока с такой проблемой не сталкивался

shuhard

7 — 03.04.18 — 20:34

(3) права учетной записи, от которой крутиться rphost

+ ну и конечно для загрузки из xls ставить на сервер эксель плохое решение, пару раз зависнет и сожрёт всю память

Cool_Profi

8 — 03.04.18 — 20:35

(7) Твой вариант решения?

tesseract

9 — 03.04.18 — 20:35

Почему просто в ТД не читать? Зачем Excel дергать?

val245

10 — 03.04.18 — 20:37

(5) Открывать 1С-ом что? обработку или Excel? Экзель открывается, правда, конечно, не читабельно..

Darych

11 — 03.04.18 — 20:37

(9) не всегда в ТД получается

val245

12 — 03.04.18 — 20:38

(9) ТД — это что?

piter3

13 — 03.04.18 — 20:38

Взять типовую загрузку из йокселя,загрузить,закрыть,забыть.

val245

14 — 03.04.18 — 20:38

табличный документ?

val245

15 — 03.04.18 — 20:39

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

tesseract

16 — 03.04.18 — 20:39

(14) Да он давно и Excel и ods нормально грузит.

piter3

17 — 03.04.18 — 20:39

shuhard

18 — 03.04.18 — 20:39

(8) adodb однозначно

shuhard

19 — 03.04.18 — 20:40

(16) многостраничные стал грузить совсем не давно

Darych

20 — 03.04.18 — 20:41

(18) а у него думаешь не адо?

Cool_Profi

21 — 03.04.18 — 20:41

(18) И тут мы вам покажем, как вы думаете, что?

Правильно… Вот эту ссылку

https://www.forum.mista.ru/topic.php?id=815766

shuhard

22 — 03.04.18 — 20:42

(20) ты это о  чем ?

ComОбъект(«Excel.Application»);

shuhard

23 — 03.04.18 — 20:43

(21) ты неудачник и что ?

Cool_Profi

24 — 03.04.18 — 20:44

(23) А с какого перепою я неудачник? Можешь обосновать внятно?

Или у тебя перепой?

shuhard

25 — 03.04.18 — 20:47

(24) хвостик отрасти для объяснений

val245

26 — 03.04.18 — 20:48

а с чем эта ошибка связана? почему в файловом варианте читает, а в клиент-серверном читать не хочет?

shuhard

27 — 03.04.18 — 20:49

(26) пипец

ты чё, ответы не читаешь ?

ДенисЧ

28 — 03.04.18 — 20:49

(25) Так лучше видно?

tesseract

29 — 03.04.18 — 20:52

(26) Сервер и клиент находятся в разных местах. Если на одном — у них разные пользователи. См НачатьПомещениеФайла для начала.

shuhard

30 — 03.04.18 — 20:53

(28) =)

Darych

31 — 03.04.18 — 20:54

все ж написано: «No such interface supported

«

val245

32 — 03.04.18 — 20:55

сейчас пользователи подключаются через rdp. Все действия происходят на сервере..

shuhard

33 — 03.04.18 — 20:57

  

val245

34 — 03.04.18 — 21:01

ок. спасибо. Будем разбираться…

Здравствуйте. Подскажите, никто не сталкивался с такой проблемой?
Если запускать этот код из внешней обработки , то всё нормально, но как только я разместил код в общий модуль (сервер, привилегированный, вызов сервера) и подцепил рег. задание, то вылетает ошибка:

{ОбщийМодуль.DC_СлужебныйПривелегированный.Модуль(9873)}: Ошибка при вызове конструктора (COMОбъект)
        ExcelApp = Новый COMОбъект("Excel.Application");
по причине:
-2147024891(0x80070005): Отказано в доступе. 

Решение:
1. Администрирование - Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ - Создать приложение – Создать новое приложение – вводим имя «V82.COMConnector»(переключатель «Серверное приложение») – Указанный пользователь (Администратор)
2. В появившейся ветке V82COMConnector – подветка Компоненты – создание нового компонента – Установка новых компонентов - <каталог 1С>\bin\comcntr.dll
3. Правой кнопкой по ветке V82COMConnector – Свойства – Безопасность – Снял галку «Принудительная проверка доступа для приложений» - Поставил галку «Применить политику программных ограничений» - Уровень ограничений «Неограниченный»

Проблема была именно с разрядностью.

Понравилась статья? Поделить с друзьями:
  • Новые начинания лексическая ошибка
  • Но во всем этом существует грандиозная опасность ошибка
  • Новые люди старые ошибки скачать бесплатно
  • Новые люди старые ошибки бузова слушать
  • Нмо профилактика ошибок идентификации пациента итоговое тестирование