Здравствуйте!
Совсем недавно начал изучать Terrasoft XRM 3.3.2.127 MS SQL, поэтому извините заранее за возможно «ламерские» вопросы. Что изучено и прочитано: TS_AG_3.3.2, TSCRM_SDK_3.0, раздел Разработчику на Terrasoft Community, просмотрены примеры реализации модуля Account и Contacts. То ли что то пропустил, а теперь не понимаю, то ли не там смотрю, но в описаниях нигде свои ответы явно не нашел.
Интересуют следующие:
1. Как осуществить доступ к полям какой либо таблицы из другого скрипта.
var Dataset = dlData.Dataset; ?
2. Передача параметров между функциями и скриптами. Если я правильно понял это или через глобальные переменные или через объект Connector?
3. Программное заполнение значений полей другой таблицы, в частности , как например заполнить поле, являющейся ссылкой на перечисление или на другую таблицу?
3. Где можно найти описание Ваших функций из скриптов модуля Common/Library (назначение, параметры, формат, пример)
Так для примера. В Wizard создан новый раздел DocZakaz
Поля таблицы tbl_DocZakaz:
- Code (тип строка)
- ContactID (ссылка на справочник Contact)
- DateZakaz (тип Дата/Время)
Нужно чтобы после нажатия на кнопку OK в окне редактирования раздела wnd_ DocZakazEdit автоматически открывалось окно создания нового проекта и автоматом заполнялись следующие поля:
- Тип планирования(PlanningType ) сразу в 'Планировать в этом элементе'
- Календарь (CalendarID) сразу в 'Базовый календарь'
- Начало, план (EstimatedStartDate) = DateZakaz (из tbl_DocZakaz)
// wnd_ DocZakazEditScript
function btnOKOnClick(Control) {
var Dataset = dlData.Dataset;
var Value = Dataset.Values('Code');
var ClientID=Dataset.Values('ContactID');
var DateZakaz=Dataset.Values('DateZakaz');
Connector.Attributes('IfZakaz')='true';
Connector.Attributes('ZakazCode')=Value;
Connector.Attributes('ZakazClientID')=ClientID;
Connector.Attributes('ZakazDateZakaz')=DateZakaz;
scr_BaseDBEdit.btnOKOnClick(Control);
AddProjectRecord(Self, 'amiAddProject');
Connector.Attributes('IfZakaz')='false';
}
// ds_ProjectScript
function ds_ProjectOnDatasetAfterAppend(Dataset) {
var IsZakaz=Connector.Attributes('IfZakaz');
if (IsZakaz=='true') {
var Value=Connector.Attributes('ZakazCode');
var ClientID=Connector.Attributes('ZakazClientID');
var DateZakaz=Connector.Attributes('ZakazDateZakaz');
Dataset.Values('Name')=Value;
Dataset.Values('CalendarID')='Базовый календарь'; // вылетает ошибка OLE error 80020102
Dataset.Values('PlanningType')='Планировать в этом элементе' ; // вылетает ошибка OLE error 80020102
Dataset.Values('EstimatedStartDate')=DateZakaz;
Dataset.Values('ContactID')=ClientID // проходит
}
}
Что делаю не так?
Заранее спасибо!