Выполнение кода и глобальные переменные.

Buenos Dias, Amigos!

Господа, я человек новый, и ранее опыта работы с системой Terrasoft не имел, поэтому вопрос может быть через чур тривиальный (не судите строго).

Дано:
Таблица + select query + dataset
Скрипт

Найти:
Из скрипта хочу получить доступ к dataset'у через метод глобального объекта Services.GetNewItemByUSI('')*, дабы в нём поковыряться и в конечном итоге запустить код прямо из Дизайнера скрипта.

Имеем: ошибку выполнения jscript 5009 Undefined identifier в строке с инструкцией * (переменная Services в которой априори является глобальной) при сохранении файла.

Прошу пролить луч света и поделиться опытом в данных вопросах.

С уважением
Ваш коллега.

Нравится

17 комментариев

"Litvyakov Yegor Vladimirovich" написал:пролить луч света

http://msdn.microsoft.com/en-us/library/vstudio/6a8k3cz9

"Litvyakov Yegor Vladimirovich" написал:поделиться опытом

проверьте код. если не сохраняет сервис - 99% ошибка в синтаксисе кода

Благодарю, но первая ссылка в никуда. О чём говорит ошибка я знаю - переменная не объявлена а точнее равна undefined. Services - является глобальной переменной, сравни window в DOM верно? Соответственно, по логике, объявляться не должна. Вопрос был в этом.

"Андросов Дмитрий" написал:проверьте код. если не сохраняет сервис - 99% ошибка в синтаксисе кода

Это тоже ясно, я же написал что за ошибка.

Вопрос в том, как получить доступ из скрипта к глобальной переменной. (Возможно необходимо подключать дополнительные модули, или какие либо иные манипуляции с настройками сервиса скрипта?)

"Litvyakov Yegor Vladimirovich" написал:первая ссылка в никуда

приведите проблемный код с контекстом

Покажите фрагмент кода, на который ругается.

В информативном плане, на вопрос ссылка не отвечает.

var Dataset = Services.GetNewItemByUSI('<Здесь код моего dataset>'); // как раз на этой строчке компилятор выдаёт ошибку 5009
...

А что вместо многоточия?

"Зверев Александр" написал:А что вместо многоточия?

Может быть ошибаюсь, интерпретатору JS должно быть всё равно.

    Dataset.Open(); 
    Dataset.Edit();
    var Name = 'Hello World';
    Dataset('String') = Name;
    Dataset.Close();

Возможно здесь собака не глубоко зарыта. В большей степени я взаимодействовал с клиентским JS (ECMAScript).
В terrasoft объектная модель, стандартные функции и переменные, плохо документированы, хорошее представление сложно получить.
Поэтому рассчитываю на Вашу квалифицированную помощь, господа.

вообще-то компилятор может и неправильно строчку указывать

ради интереса попробуйте подключить скрипт scr_Utils и попробуйте использовать

var Dataset = GetSingleItemByCode('Здесь код моего dataset', 'любая строка (в т.ч. пустая)');

а еще - укажите версию бинарников

"Litvyakov Yegor Vladimirovich" написал:В большей степени я взаимодействовал с клиентским JS

эта фраза наводит на мысль, что взаимодействовали вы не из приложения Terrasoft...
а вы где пишете код, если не секрет?

"Андросов Дмитрий" написал:вообще-то компилятор может и неправильно строчку указывать
тоже верно
"Андросов Дмитрий" написал:а вы где пишете код, если не секрет?

В приложении Terrasoft CRM Administrator.

"Андросов Дмитрий" написал:ради интереса попробуйте подключить скрипт scr_Utils и попробуйте использовать var Dataset = GetSingleItemByCode('Здесь код моего dataset', 'любая строка (в т.ч. пустая)');

Выдаёт другую ошибку 5007 Объект отсутствует.(

если вы это сделали

"Litvyakov Yegor Vladimirovich" написал:попробуйте подключить скрипт scr_Utils

тогда не знаю - видимо у вас какая-то проблема все-таки с Services.

Попробуйте перерегистрировать библиотеки
если не знаете как:
http://www.community.terrasoft.ru/forum/topic/8497#comment-35568
http://www.community.terrasoft.ru/forum/topic/6512
http://www.community.terrasoft.ru/forum/topic/10311

ДА И СКАЖИТЕ ВЕРСИЮ БИНАРНИКОВ - это может быть важно

Благодарю за внимание и помощь господа!
Луч света упал на глобальные переменные - обращение к ним должно идти из функции, не как у меня.

"Андросов Дмитрий" написал:ДА И СКАЖИТЕ ВЕРСИЮ БИНАРНИКОВ - это может быть важно

Был бы признателен за подсказку, где, что и для чего и как)
Из дизайнера скрипт не запустил пока( на другой камень наткнулся.
Очень благодарен за поддержку!

запустить скрипт прямо в TSAdmin (и в его контексте), причем можно и не сохранять сам сервис
добавить function Main() {} и нажать

да, вне функций глобальные переменные не работают (не знаю уж почему)

версии бинарников (но они все же тут ни при чем):

Понял, больше спасибо!

Кстати, чтобы данные сохранились в БД, надо перед

 Dataset.Close(); 

делать

Dataset.Post();

Да, спасибо. Это тоже проследил.

Показать все комментарии