Вот эта фигня обращается к службе MS CRM через fetchXml (наиболее удобный метод при работе со службой из скриптов) при смене идентификатора продукта, чтобы подгрузить некоторые дополнительные данные. Она немного громоздкая, но это только потому, что данных много, сам запрос формируется в первых 80 строках дальше идет обезьянкин код. Для твоей задачи нужно:
1. перенести этот код в OnSave (ну это и так понятно),
2. переписать
XmlTemplate, чтобы запрашивалась сущность contact или account, возвращался только contact(account)id, а фильтр был по полю name. link-entity стереть.
3. добавить имя и пароль в xmlhttp.open (вот тут самый спорный момент. во-первых я не знаю, будет ли это работать, во-вторых этот пароль сможет украсть любой cool-hacker
4. после выполнения запроса нужно просто проверить наличие узла 'result', если он есть, значит есть записи, удовлетворяющие критерию фильтра, значит говорим пользователю alert('Организация с таким именем уже есть в базе. Как же быть? Наверно, просто приписать к имени "1" и сохранить, как обычно делают в таких ситуациях...') и ставим event.returnValue = false;