Скрипты
Разработка

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

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

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

Нравится

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

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

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

[javascript]
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);
}
[/javascript]

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

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

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