Создание из другого раздела

Здравствуйте!

Вопрос такой: а можно как-нибудь определить откуда создается контакт? Например, если контакт создается из продажи, заполнять у него определенные поля по умолчанию, а если из основного раздела, то ничего не заполнять. Можно ли в скрипте это определять?

Нравится

3 комментария

При создании окна можно передавать нужные атрибуты, а потом на них ориентироваться.
Например, из базового. Когда создается Счет на основе Продажи, то на Афтерпосте идет проверка, из какого раздела он был создан (на основании определенных атрибутов, для Продажи -- IsCreatedByOpportunityID, кажется, подробнее -- посмотрите в функции на афтерпосте, вроде ProcessCopyOfferrings она называется) и предлагается скопировать Продукты из одной детали (в Продаже) в другую (в созданном Счете).

Если Вам нужно определять значения полей по умолчанию то смотрите в функцию, вызывающую открытие окна. Например, для того, чтобы создать продажу из раздела контрагентов: Дествия - Создать продажу. Это сервис wnd_AccountsWorkspace - Невизуальные - amiCreateOpportunity - События - amiCreateOpportunityOnExecute:

function CreateOpportunity() {
	var EditWindowUSI = 'wnd_OpportunityEdit';
	var Attributes = GetNewDictionary();
	Attributes.Add('NotifyObject', Self);//AccountsWorkspace.OpportunityWindow);         
	var AccountID = BaseWorkspace.GridDataset.ValAsGUID('ID');
	var PrimaryContactID = GetPrimaryContactID(AccountID);
	var CurrentDate = new Date(System.Now());
	Attributes.Add('RecordID', GUID_NULL);		
	var DefaultValues = GetNewDictionary();	
	DefaultValues.Add('CustomerID', AccountID);	
	DefaultValues.Add('ContactID', PrimaryContactID);
	DefaultValues.Add('OwnerID', Connector.CurrentUser.ContactID);	
	DefaultValues.Add('StartDate', CurrentDate.getVarDate());	
	DefaultValues.Add('ActualCloseDate', CurrentDate.getVarDate());	
	DefaultValues.Add('EstimatedStartDate', CurrentDate.getVarDate());	
	DefaultValues.Add('EstimatedCloseDate', CurrentDate.getVarDate());	
	ShowEditWindowEx(EditWindowUSI, Attributes, DefaultValues);	
}

Соответственно добавить\удалить DefaultValues.Add('...', Value) на те поля, которые Вас интересуют

Посмотрите вложенный документ, если я правильно поняла ваш вопрос, в нем описывается реализация подобной задачи.

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