Buenos Dias, Amigos!
Господа, я человек новый, и ранее опыта работы с системой Terrasoft не имел, поэтому вопрос может быть через чур тривиальный (не судите строго).
Дано:
Таблица + select query + dataset
Скрипт
Найти:
Из скрипта хочу получить доступ к dataset'у через метод глобального объекта Services.GetNewItemByUSI('
*, дабы в нём поковыряться и в конечном итоге запустить код прямо из Дизайнера скрипта.
Имеем: ошибку выполнения jscript 5009 Undefined identifier
в строке с инструкцией * (переменная Services в которой априори является глобальной) при сохранении файла.
Прошу пролить луч света и поделиться опытом в данных вопросах.
С уважением
Ваш коллега.
Нравится
"Litvyakov Yegor Vladimirovich" написал:пролить луч света
http://msdn.microsoft.com/en-us/library/vstudio/6a8k3cz9
"Litvyakov Yegor Vladimirovich" написал:поделиться опытом
проверьте код. если не сохраняет сервис - 99% ошибка в синтаксисе кода
Благодарю, но первая ссылка в никуда. О чём говорит ошибка я знаю - переменная не объявлена а точнее равна undefined. Services - является глобальной переменной, сравни window в DOM верно? Соответственно, по логике, объявляться не должна. Вопрос был в этом.
"Андросов Дмитрий" написал:проверьте код. если не сохраняет сервис - 99% ошибка в синтаксисе кода
Это тоже ясно, я же написал что за ошибка.
Вопрос в том, как получить доступ из скрипта к глобальной переменной. (Возможно необходимо подключать дополнительные модули, или какие либо иные манипуляции с настройками сервиса скрипта?)
В информативном плане, на вопрос ссылка не отвечает.
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();