На JavaScript в MS CRM программируют в клиентской части. Вы можете писать код только в трех событиях, два из который связаны с формой – это OnLoad() и OnSave(), и одно с полем – OnChange()

Здесь лишь небольшая подборка tips and tricks по работе с JavaScript, она будет расширяться. Не все сразу ;)

1.

//Задать фиксированные размеры открываемого окна (формы)
window.moveTo(0,0);
window.resizeTo(screen.availWidth, screen.availHeight);

2.
//Получить GUID формы
crmForm.ObjectId;

3.
//Работа с lookup на форме
//Инициализирую массив
var lookupItem = new Array;

// получаю lookup для атрибута primarycontactid на форме account
lookupItem = crmForm.all.primarycontactid.DataValue;
// Если выбрали значение для lookup
if (lookupItem[0] != null)
{
// вывод текстового значения лукапа
alert(lookupItem[0].name);

// вывод имени сущности лукапа
alert(lookupItem[0].typename);

// вывод GUID`a выбранной записи в лукапе
alert(lookupItem[0].id);

// вывод кода – тип сущности
alert(lookupItem[0].type);
}
Этот код необходимо повесить на событие OnChange(), выбранного лукапа

4.
//Принудительный вызов функции OnChange() для поля
crmForm.all.new_field.FireOnChange();
5.
// Вызов любой функции как OnChange() для поля
//описываем функцию
function onChangeAkValue()
{
alert( «Сработала моя функция!»);
}

oRec = crmForm.all.new_aktestvalue;
oRec.attachEvent(«onchange»,onChangeAkValue); //срабатывает функция

6.
//Определить тип формы: только что создана или открыта для редактирования
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;

switch (crmForm.FormType){
case CRM_FORM_TYPE_CREATE:
alert(«Форма создана»);
break;

case CRM_FORM_TYPE_UPDATE:
alert(«Форма открыта для редактирования»);
break;

7.
//убрать скобки { } для гуида. (remove braces)
crmForm.all.new_aktestguid.innerText =crmForm.all.new_aktest.DataValue[0].id.replace(/[{,}]/g,»");

8.
// Работа элементами формы
crmForm.all.shippingmethodcode_d.style.visibility = ‘hidden’; //скрываем текстовое описание поля
crmForm.all.ispricelocked_c.style.visibility = ‘hidden’; //скрываем само поле
9.

// Работа с датой
//Пример: можем сгенерировать номер документа

// Присваиваем переменной текущую дату
var now = new Date();
crmForm.all.new_orderdate.DataValue =now;
//Год
var year = now.getFullYear().toString();
//Месяц
var month = (now.getMonth() + 1).toString();
//День
var dayOfMonth = now.getDate().toString();

if (month.length == 1) { month = «0″ + month;}
if (dayOfMonth.length == 1) {dayOfMonth = «0″ + dayOfMonth;}

var yyyymmdd = year + month + dayOfMonth;
crmForm.all.new_date.DataValue =yyyymmdd