выполнение Новый COMОбъект("MSScriptControl.ScriptControl") на сервере
Есть код
скрипт = Новый COMОбъект("MSScriptControl.ScriptControl")
Работает на клиенте. Необходимо заставить работать на сервере 1С. Сейчас не работает, ругается
Ошибка при вызове конструктора (COMОбъект)
Сервер x64. Служба запущена от администратора. Подскажите, пожалуйста, как можно победить проблему.
скрипт = Новый COMОбъект("MSScriptControl.ScriptControl")
Работает на клиенте. Необходимо заставить работать на сервере 1С. Сейчас не работает, ругается
Ошибка при вызове конструктора (COMОбъект)
Сервер x64. Служба запущена от администратора. Подскажите, пожалуйста, как можно победить проблему.
По теме из базы знаний
- 1С и Windows Script Host (WSH) и Windows Management Instrumentation (WMI). ОТ ТЕОРИИ К ПРАКТИКЕ. Часть I
- Подключение к REST API через OAuth протокол из 1С
- 10 способов получить модуль числа (а может, и больше)
- Автотесты алгоритмов по работе со сторонними http сервисами через юнит-тесты и мок сервер soapUI
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
MSScriptControl.ScriptControl насколько знаю не бывает 64 битного. ищите способ запустить его 32 битного под 64 битами. либо враппер какой пишите, хз. либо как-то так (насчет этого варианта не уверен, что прокатит)
(9) andrewks, обернул компоненту MSScriptControl.ScriptControl.1 в COM, всё равно не работает. делал через импорт ужемустановленных компонент. может как-то по другому делать надо? на данный момент выкрутился запуском внешних обработок с помощью виндового планировщика.
(10) vithak
1. Сделать импорт из уже установленных компонент (интерфейсы не появляются и не работает).
2. Добавить из C:\Windows\SysWOW64\msscript.ocx (типа создать новую) - это добавит интерфейсы.
Если сразу начать со второго пункта, то ничего не добавляется. Делал в 2008 R2, 2012.
1. Сделать импорт из уже установленных компонент (интерфейсы не появляются и не работает).
2. Добавить из C:\Windows\SysWOW64\msscript.ocx (типа создать новую) - это добавит интерфейсы.
Если сразу начать со второго пункта, то ничего не добавляется. Делал в 2008 R2, 2012.
На всякий случай продублирую здесь :
Статья с :
ОС: Windows Server 2012R2. Сервер 1С x64.Клиент 1С v8.3.5.1186
Проблема :
Модуль: ScrptCtrl = Новый COMОбъект(«MSScriptControl.ScriptControl»);
Выдает ошибку:
{ОбщийМодуль.Хттп.Модуль(55)}: Error calling constructor (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован.
Скачал
Зарегистрировал: regsvr32 <Путь к установленному Windows Script Control >
Не помогло.
Решение:
1. Запустил консоль «Службы компонентов» (%windir%\system32\comexp.msc)
2. В ветке Приложения COM+ добавл новое приложение: Создать -> Приложение
3. На вопрос «Установка или создание нового приложения» — выбрал «Создать новое приложение».
4. Имя нового приложения лучше написать чтобы было понятно о чем речь: «1С_ScriptControl», способ активации — «серверное приложение».
5. Учетная запись для запуска приложения: Локальная служба — встроенная учетная запись службы.
6.При запросе членов Роли CreatorOwner, помимо существующей учетной записи, добавил туда System и учетную запись под которой работает сервер 1С.
7. В ветке созданного приложения перешел на «Компоненты» и создал компонент: Создать -> Компонент
8. В мастере «Установка компонентов COM+», выбрал «Импорт уже зарегистрированных компонентов». На шаге «Выбор компонентов для импорта» поставил флаг 32 разряда, нашел «MSScriptControl»MSScriptControl
Статья с :
ОС: Windows Server 2012R2. Сервер 1С x64.Клиент 1С v8.3.5.1186
Проблема :
Модуль: ScrptCtrl = Новый COMОбъект(«MSScriptControl.ScriptControl»);
Выдает ошибку:
{ОбщийМодуль.Хттп.Модуль(55)}: Error calling constructor (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован.
Скачал
Зарегистрировал: regsvr32 <Путь к установленному Windows Script Control >
Не помогло.
Решение:
1. Запустил консоль «Службы компонентов» (%windir%\system32\comexp.msc)
2. В ветке Приложения COM+ добавл новое приложение: Создать -> Приложение
3. На вопрос «Установка или создание нового приложения» — выбрал «Создать новое приложение».
4. Имя нового приложения лучше написать чтобы было понятно о чем речь: «1С_ScriptControl», способ активации — «серверное приложение».
5. Учетная запись для запуска приложения: Локальная служба — встроенная учетная запись службы.
6.При запросе членов Роли CreatorOwner, помимо существующей учетной записи, добавил туда System и учетную запись под которой работает сервер 1С.
7. В ветке созданного приложения перешел на «Компоненты» и создал компонент: Создать -> Компонент
8. В мастере «Установка компонентов COM+», выбрал «Импорт уже зарегистрированных компонентов». На шаге «Выбор компонентов для импорта» поставил флаг 32 разряда, нашел «MSScriptControl»MSScriptControl
Прикрепленные файлы:
9maksim; simuljakr; NicolasCage; swimdog; cleaner_it; Date; DenisMedvedev; Anatolia; Chernik; maksa2005; a.bisekeev; user603532_fan_club_chelsea; God_loki; eddoptimist; inclodes; viktor_and_ko; XAKEP; rbsoft; Светлый ум; user1213957; GriAI; TreeDogNight; air_mike; gubanoff; uno-c; ra9000; landrev; frkbvfnjh; rar_xxx; BoryaMbi; Misanets; bintape; e-9; AsKorysti; Jungle Murzik; гвость; CnupT; schslava; ArtSog; vladoe; avaskvas; aupovy; 1Cynep4eJIoBek; bvs_dd; Redhatych; ZyZer; x_proof; izidakg; antonov_i; FilatovRA; ice-net; zaxarovsky; pbabincev; TorLink; Zircool; Famza; ndrv; solf; HIVvich; LostMicos; EvgeniusRusius; Navigator_KZ; support_bl;
+63
–
Ответить
(13) - ссылка ведет в никуда. И где это найти непонятно что найти?
(15) Спасибо пошло!. Но все же вопрос: tsc64.dll - как правильнее устанавливать? Скачал архив, распаковал, запустил setup.exe - тишина. команда "regsvr32 tsc64.dll" помогла - под моим пользователем пошло. Но пойдет ли под другими? Куда tsc64.dll положить? Зачем setup.exe?
Скачал Windows Script Control(15) Спасибо пошло!. Но все же вопрос: tsc64.dll - как правильнее устанавливать? Скачал архив, распаковал, запустил setup.exe - тишина. команда "regsvr32 tsc64.dll" помогла - под моим пользователем пошло. Но пойдет ли под другими? Куда tsc64.dll положить? Зачем setup.exe?
Сегодня в очередной раз настраивал на сервере эту компоненту. Столкнулся с ошибкой Отказано в доступе при создании COM-объекта, аналогичную тому, про которую писали . Разобравшись, решил написать здесь дополнение к инструкции (п.6):
При запросе членов Роли CreatorOwner...
необходимо добавить туда группу Пользователи, чтобы любой юзер мог обращаться к этой компоненте через COM. Или другую группу, куда будут входить только те пользователи, которым надо дать соответствующий доступ.
При запросе членов Роли CreatorOwner...
необходимо добавить туда группу Пользователи, чтобы любой юзер мог обращаться к этой компоненте через COM. Или другую группу, куда будут входить только те пользователи, которым надо дать соответствующий доступ.
Для решения проблемы можно просто установить tsc64.dll
Прикрепленные файлы:
tsc64_1090.cab
Snakegrey; skillful; ketr; AnddnA; user1313437; vladimir-89; dr2c; Sibiryak_67; DowJones; skyvixen; ishelper; tikhmyanov; kilo81; Drizer2000; u-u-julia; soci0pat; ra9000; zif74; mineralka; shumvlesu; maxim4566; mart-sha; DiegoLidabo; Virsy; Mastekor; akR00b; 62chma; anatoliy_gt; lexiff; peter14129; frkbvfnjh; nikitan; wowik; VitalySh; 127.0.0.0; Fux; pri_hod; CaSH_2004; Dimka74; imedeev; Dolour; subbotinpu; alur; agilov_a;
+44
–
Ответить
Когда же 1С забудет что такое com)))))))
Технология еще прошлого века, древняя, капризная и неудобная
Технология еще прошлого века, древняя, капризная и неудобная
Спасибо, БРО!
Твой тред сильно помог!!!
был установлен нулевой MS Server 2008 и 8.3.19.1770
после не заработала конструкция по получение принтера.
scrptCtrl=Новый COMОбъект("MSScriptControl.ScriptControl");
scrptCtrl.language="vbscript";
scrptCtrl.addcode("
|Function GetDefaultPrinter()
|GetDefaultPrinter=vbNullString
|Set objWMIService=GetObject(""winmgmts:"" _
|& ""{impersonationLevel=impersonate}!\\.\root\cimv2"")
|Set colInstalledPrinters=objWMIService.ExecQuery _
|(""Sel ect * fr om Win32_Printer"")
|For Each objPrinter in colInstalledPrinters
|If objPrinter.Attributes and 4 Then
|GetDefaultPrinter=objPrinter.Name
|Exit For
|End If
|Next
|End Function");
ПринтерПоУмолч=scrptCtrl.run("GetDefaultPrinter");
Возврат ПринтерПоУмолч;
Твой тред сильно помог!!!
был установлен нулевой MS Server 2008 и 8.3.19.1770
после не заработала конструкция по получение принтера.
scrptCtrl=Новый COMОбъект("MSScriptControl.ScriptControl");
scrptCtrl.language="vbscript";
scrptCtrl.addcode("
|Function GetDefaultPrinter()
|GetDefaultPrinter=vbNullString
|Set objWMIService=GetObject(""winmgmts:"" _
|& ""{impersonationLevel=impersonate}!\\.\root\cimv2"")
|Set colInstalledPrinters=objWMIService.ExecQuery _
|(""Sel ect * fr om Win32_Printer"")
|For Each objPrinter in colInstalledPrinters
|If objPrinter.Attributes and 4 Then
|GetDefaultPrinter=objPrinter.Name
|Exit For
|End If
|Next
|End Function");
ПринтерПоУмолч=scrptCtrl.run("GetDefaultPrinter");
Возврат ПринтерПоУмолч;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот