Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: vbscript
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
Vofka
Привет!

Есть процедура:

Процедура ВБСкрипт() Экспорт
    Скрипт = Новый COMObject("MSScriptControl.ScriptControl");
    Скрипт.language = "vbscript";
    Скрипт.AddCode("
    |Function GetConnection()
    |    Set WshShell = WScript.CreateObject(""WScript.Shell"")
    |  ...
    |End function
    |");

    Скрипт.eval("GetConnection()");
КонецПроцедуры


Весь текст процедуры не приводил, т.к. на первой же строчке вылетает ошибка:
Цитата
{ВнешняяОбработка.Тест(20)}: Ошибка при вызове метода контекста (Eval): Произошла исключительная ситуация (Ошибка выполнения Microsoft VBScript): Требуется объект: 'WScript'
Скрипт.eval("GetConnection()");
по причине:
Произошла исключительная ситуация (Ошибка выполнения Microsoft VBScript): Требуется объект: 'WScript'


В чистом виде (файл vbs) процедура работает.

Как создать или зарегистрировать этот объект WScript?

Или может как-то можно в 1С использовать значения системных переменных Windows? Тогда потребность в ВБС проыедуре отпадет.

Цель: получить имя реального ПК, который работает в терминале. Т.е если имя физического компа ПК, а сервера терминалов ТЕРМ, то нужно получить "ПК".
Batchir
Я так делал
WSS = Новый COMОбъект("WScript.Shell");
WSSE = WSS.Environment("Process");
мИмяКомпьютера = ВРег(WSSE.Item("ClientName"));
Если ПустаяСтрока(мИмяКомпьютера) Тогда
    мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецЕсли;
Если мИмяКомпьютера = "CONSOLE" Тогда
    мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецЕсли;
Vofka
Вроде работает, спасибо!
Fynjy
Скрипт.Modules("Global").CodeObject.GetConnection(); - так к примеру попробуй ...
Fynjy
К тому же eval тут нельзя использовать только run
onickolay
Цитата(Batchir @ 29.11.10, 11:18) необходимо зарегистрироваться для просмотра ссылки
Я так делал
WSS = Новый COMОбъект("WScript.Shell");
WSSE = WSS.Environment("Process");
мИмяКомпьютера = ВРег(WSSE.Item("ClientName"));
Если ПустаяСтрока(мИмяКомпьютера) Тогда
    мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецЕсли;
Если мИмяКомпьютера = "CONSOLE" Тогда
    мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецЕсли;


Добрый вечер.

При применении скрипта через определенное время сканирования начинаются глюки...

Сканируем новый штрих код а машина выдает что это предыдущий штрихкод..

Кто-то сталкивался с подобным

2003 Сервер терминалов. Платформа 8.2.12.80. УТП
Anderson
Я пользуюсь WMICodeCreator1C для создания и теста скриптов. Довольно удобная штуковина.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.