|
|
|
1C&VBS. Подскажите как в 1С выполнить код VBS Ø |
☑ | ||
|---|---|---|---|---|
|
0
Пим Сибирский
01.03.06
✎
14:23
|
Или кининте ссылкой, где это сожно посмотреть.
|
|||
|
1
Денис2
01.03.06
✎
14:25
|
КомандаСистемы()
|
|||
|
2
Нуралиев
01.03.06
✎
14:27
|
Образно: Создаешь файл вписываешь в него построчно код скрипта, сохраняешь с расширением .vbs и тут же запускаешь
|
|||
|
3
Young
01.03.06
✎
14:28
|
+(2)
http://www.script-coding.info/MSScriptControl.html |
|||
|
4
smaharbA
01.03.06
✎
14:31
|
СкриптЗапуск=СоздатьОбъект("MSScriptControl.ScriptControl");
СкриптЗапуск.Language="vbscript"; Стр=" |Function Msg(message) |msgbox(message) |End Function"; Скрипт.AddCode(Стр); СкриптЗапуск.eval("Msg(Привет)"); |
|||
|
5
smaharbA
01.03.06
✎
14:32
|
(2) Недо-Нуралиев...
|
|||
|
6
Young
01.03.06
✎
14:33
|
Дядько Абрахамс не дремлет :)
|
|||
|
7
Пим Сибирский
01.03.06
✎
14:39
|
Спасибо, други!
|
|||
|
8
smaharbA
01.03.06
✎
14:44
|
+(4) для (0) только я рекомендую приглядеться для работы с этим объектом к другому языку JavaScript(хотя для скриптов не в 1С сам предпочитаю VBS) с джскрипт можно получить объекты в 1с практически любого типа данных и использовать их с нормальным синтаксисом без конструкций типа
Стр=" |Function Msg(message) |msgbox(message) |End Function"; |
|||
|
9
Young
01.03.06
✎
14:49
|
(8) А можешь примерчик конкретный, где JScript+MSScriptControl будет удобнее, чем VBScript+MSScriptControl?
|
|||
|
10
smaharbA
01.03.06
✎
15:14
|
Даже два ;)
//******************************************* Процедура Сформировать() Scr = CreateObject("MSScriptControl.ScriptControl"); Scr.Language = "javascript"; Scr.Timeout=-1; locator=createobject("wbemscripting.swbemlocator"); service=locator.connectserver(); oP=service.ехесquery("select * from Win32_Printer"); Scr.AddObject("o",oP); e=Scr.eval("new Enumerator(o);"); Пока e.atEnd(0)=0 Цикл Сообщить(e.item(0).Name); e.moveNext(0); КонецЦикла; КонецПроцедуры Процедура ВремяСервера() Scr = CreateObject("MSScriptControl.ScriptControl"); Scr.Language = "javascript"; Scr.Timeout=-1; locator=createobject("wbemscripting.swbemlocator"); service=locator.connectserver("1CSERVER"); oP=service.ехесquery("select * from Win32_LocalTime"); Scr.AddObject("o",oP); e=Scr.eval("new Enumerator(o);"); Пока e.atEnd(0)=0 Цикл Сообщить("Год: " + e.item(0).Year); Сообщить("Месяц: " + e.item(0).Month); Сообщить("День: " + e.item(0).Day); Сообщить("Квартал: " + e.item(0).Quarter); Сообщить("Неделя: " + e.item(0).WeekInMonth); Сообщить("ДеньНедели: " + e.item(0).DayOfWeek); Сообщить("Час: " + e.item(0).Hour); Сообщить("Минут: " + e.item(0).Minute); Сообщить("Секунд: " + e.item(0).Second); Сообщить("Миллисекунды: " + e.item(0).Milliseconds); e.moveNext(0); КонецЦикла; КонецПроцедуры // ВремяСервера |
|||
|
11
Young
01.03.06
✎
15:30
|
(10) Да, пожалуй Enumerator иногда удобнее, чем "for each", уговорил :)
|
|||
|
12
smaharbA
01.03.06
✎
15:37
|
(11) И не только энумератор, можно и джскриптовский объект в переменную 1С загнать и применять к нему методы джскрипт, к примеру
Scr = CreateObject("MSScriptControl.ScriptControl"); Scr.Language = "javascript"; Scr.Timeout=-1; Д=Scr.Eval("new Data"); Сообщить(Д.getUTCMilliseconds(0)); ... Только обати внимание в метод/функцию javascript обязательно надо передать чтонибудь, даже если у нее нет входных параметров иначе ошибка... |
|||
|
13
trdm
02.03.06
✎
13:16
|
А вот интересно можно в таком скрипте подписываться на события и переправлять их в 1С? Да еще вопрос есть такая-же обертка как Enumerator в vbs?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |