| Summary: | Поддержка MSScriptControl | ||
|---|---|---|---|
| Product: | WINE@Etersoft | Reporter: | Vitaly Lipatov <lav> |
| Component: | Печать ; Диалог печати | Assignee: | Александр Морозов <amorozov> |
| Status: | CLOSED FIXED | QA Contact: | Andrey Vusik <night> |
| Severity: | normal | ||
| Priority: | P3 | CC: | a.zheltikov, amorozov, goga, mackuzzz |
| Version: | 1.0.12 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | All | ||
| URL: | http://www.microsoft.com/downloads/details.aspx?familyid=D7E31492-2595-49E6-8C02-1426FEC693AC&displaylang=en&Hash=YqXsPRjK7kQlRZ0yV3YeoepEfQ4wzOefjw4qT716kMlUB5ZLzvjOdUUlkMh1Sr8psbX5HFzPaL2zcrRXZAbzQQ%3d%3d | ||
| Whiteboard: | |||
| Заявки RT: | 13419, 14357 | Связано с: | |
| Дата напоминания: | |||
| Bug Depends on: | 1877 | ||
| Bug Blocks: | 8900 | ||
Изменил ссылку. Проверил с установленным Scripting Control 1С взаимодействует.. Рекомендуется добавить в релиз 1.0.10, лицензия позволяет. Я просил указать путь к компоненте у нас в pvt. Компонента: ftp/pvt/Windows/MS/Components/MS Script Control/sct10en.exe Уже давно поставляется в закрытой части, но не регистрируется.
Временное решение:
$ regsvr32 msscript.ctx
в каталоге windows/system32
Регистрация будет начиная с 1.0.9-alt17
Программа 1.vbs для проверки:
Dim a
Dim ScriptControl
Set ScriptControl = Wscript.CreateObject("MSScriptControl.ScriptControl")
ScriptControl.Language = "vbscript"
a = "(2 * 5) + 3"
Result = ScriptControl.Eval(a)
Wscript.StdOut.WriteLine( Result)
Запускать так:
wine cscript.exe /E:vbscript 1.vbs 2>&1 | iconv -f cp866
Принято eter42\eter18 скрипт генерации случайных чисел в 1С:
Функция СлучайноеЧисло(Знач Предел=1)
ScrCtrl=CreateObject("MSScriptControl.ScriptControl");
* ScrCtrl.Language="VBscript";
ScrCtrl.ExecuteStatement("randomize");
СлучайноеЧисло=ScrCtrl.Eval("rnd");
Если Предел>1 Тогда
СлучайноеЧисло=1+Цел(СлучайноеЧисло*Цел(Предел));
КонецЕсли;
Возврат СлучайноеЧисло;
КонецФункции // СлучайноеЧисло()
На строке помеченной * --- 1С выдает ошибку:
ScrCtrl.Language="VBscript";
{Документ.Счет.Форма.Модуль(670)}: ScriptControl: A
script engine for
the specified language can not be created.
подтвердилась у нас, $ winetricks wsh56vb - не решает
проблему. не помогла загрузка и других
пакетов
нужно еще раз перепроверить
> Запускать так:
> wine cscript.exe /E:vbscript 1.vbs 2>&1 | iconv -f cp866
>
этот пример работает.
бутылка bugs/3163
в 1С-ке в демоконфигурации Бух написал тестовую обработку ExtForms/test.ert, через winetricks ничего дополнительно не ставил, тестовая обработка ошибку воспроизводит:
ScrCtrl.Language="VBScript";
{C:\PROGRAM FILES\1CV77\1SBDB\EXTFORMS\TEST.ERT(5)}: ScriptControl: A script engine for the specified language can not be created.
Видимо опять что то случилось с установкой Компонента: ftp/pvt/Windows/MS/Components/MS Script Control/sct10en.exe Т.к. помогает только установка (регистрация не помогает) > ScrCtrl.Language="VBScript";
> {C:\PROGRAM FILES\1CV77\1SBDB\EXTFORMS\TEST.ERT(5)}: ScriptControl: A script
> engine for the specified language can not be created.
На 1.0.12-eter6/8 данная ошибка не воспроизвелась.
Еще ошибка относящаяся к задаче 3163 "Поддержка MSScriptControl"
{Обработка.ПереносДанныхИзИнформационныхБаз1СПредприятия77.Форма.Форма.Форма(660)}: Ошибка при вызове метода контекста (Run): Неверное число параметров
1С:Предприятие 8.2 (8.2.12.96)
Конфигурация Бухгалтерия предприятия, редакция 2.0 (2.0.15.10)
WINE@Etersoft 1.0 Network 1.0.12-eter7/12
кусок кода из 1С
ScrptCtrl=Новый COMObject("MSScriptControl.ScriptControl");
ScrptCtrl.Language="vbscript";
ScrptCtrl.AddCode("
|Function Get1CV77Titles()
| const HKEY_CURRENT_USER = &H80000001
| Set oReg=GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv"")
| strKeyPath = ""Software\1C\1Cv7\7.7\Titles""
| oReg.EnumValues HKEY_CURRENT_USER, strKeyPath, arrValues
| strInfo=vbNullString
| Get1CV77Titles = strInfo
| On Error Resume Next
| For i = LBound(arrValues) To UBound(arrValues)
| call oReg.GetStringValue(HKEY_CURRENT_USER,strKeyPath,arrValues(i),Value)
| strInfo=strInfo & arrValues(i) & vbTab & Value & vbCrLf
| Next
| Get1CV77Titles = strInfo
|End Function
|");
Текст=СокрЛП(ScrptCtrl.Run("Get1CV77Titles"));
Проверить на eterhack. WINE@Etersoft 1.0 SQL 1.3.27/1.0.12-eter1.15/26
бутылка bugs/3163
Ставил MSScriptControl из ftp/pvt/Windows/MS/Components/MS Script Control/
а так же через winetricks
при установке в консоли
err:setupapi:SetupDefaultQueueCallbackW copy error 5 L"C:\\windows\\temp\\IXP001.TMP\\msscript.cnt" -> L"C:\\Program Files\\Microsoft Windows Script\\Windows Script Control\\msscript.cnt"
err:setupapi:SetupDefaultQueueCallbackW copy error 5 L"C:\\windows\\temp\\IXP001.TMP\\msscript.hlp" -> L"C:\\Program Files\\Microsoft Windows Script\\Windows Script Control\\msscript.hlp"
во время запуска скрипта
err:ole:CoGetClassObject class {6c736db1-bd94-11d0-8a23-00aa00b58e10} not registered
err:ole:CoGetClassObject no class object {6c736db1-bd94-11d0-8a23-00aa00b58e10} could be created for context 0x1
err:ole:CoGetClassObject class {6c736db1-bd94-11d0-8a23-00aa00b58e10} not registered
err:ole:CoGetClassObject no class object {6c736db1-bd94-11d0-8a23-00aa00b58e10} could be created for context 0x1
13
регистрация скрипта проходит успешно но проблему не решает
Откладываем задачи, к которым не обращались более 100 дней. Закрываю как неактуальные. Закрываю. |
Объект Microsoft Script Control в среде 1С:Предприятие v7.7 может быть создан следующим образом: ScrCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); http://www.script-coding.info/MSScriptControl.html http://www.kuban.ru/forum_new/forum9/arhiv/8517.html Насколько я понимаю, компонент ScriptControl ставится отдельно из http://www.microsoft.com/scripting/downloads/v55/other/scr55ru.exe Надо разобраться, что нам нужно, чтобы это работало.