Поясню - в примерах кода выше, я использовал имя
ScriptControl, просто как логичное имя переменной. В действительности, в моём коде он фигурирует как
objScriptControl . Экземпляр этого объекта я создаю сам в коде VBS файла, который выполняет БС :
- Код: Выделить всё
Dim objScriptControl: Set objScriptControl = CreateObject("ScriptControl")
objScriptControl.Language = "VBScript"
...
Т.е изначально его в среде интерпретатора нет.
P.S Наверное будет лучше, если заранее обрисую ситуацию, чтобы сократить количество встречных вопросов и сэкономить Ваше время. )
Среда БС представляет из себя
exe модуль, который запускается с сетевого ресурса на рабочих местах сотрудников (это клиентская часть комплекса). Этот модуль связывается c так называемым "сервером приложений". Проще говоря серверной частью комплекса. Серверная часть, в свою очередь, связывается с SQL сервером. Обмен между клиентской и серверной частью собран частично на чистом TCP обмене данными и частично на RPC. В клиентской части вставлен, как я понял, всё тот же ScriptControl, в который загружаются скрипты с сервера. И вся эта телега как-то работает.
Сейчас возникла задача дописать свой модуль. Внутри него должны выполняться проводки и расчёты. Т.е движение средств по счетам, рассчёт процентов и т.п. Формул рассчёта сумм, номеров счетов, разделов счетов и т.п тьма тьмущая. К тому же для каждой операции, свой набор действий. Закладывать их жёстко в код очень неудобно, так как модуль на стадии разработки, то корректировок в процессе довольно много и каждый раз лезть в код и искать, где что очень неудобно. В итоге было решено всё это вытащить в EXCEL таблицу. В ней сотрудники ковыряют формулы и настраивают номера счётов и меняют порядок действий. Потом я гружу данные из EXCEL таблицы в БД. В итоге получаю таблицы с нужными данными. Потом в VBS скрипте я выгружаю записи, создаю переменные в ScriptControl-е, выполняю выражения и делаю проводки.