Возможность отправки E-mail контрагенту с помощью действия

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

 

Если Вам необходимо реализовать возможность отправки E-mail контрагенту через действие "Отправить E-mail", то Вы можете воспользоваться следующим алгоритмом (пример реализации для версии Terrasoft CRM 3.3):

 

1. В скрипте scr_MailUtils реализовать функцию получения e-mail адреса текущего контрагента:

 

 

function GetCurrentAccountEmailAddress(AccountDataset) {

 

         var AccountEMailAddress = '';

 

         var Email = GetEmailCommunicationTypeID();

 

         for (var i = 1; i = 4; i++) {

 

                   var CommunicationTypeName = FormatStr('Communication%1TypeID', i);

 

                   var CommunicationType = GetFieldValueFromDisabledField(AccountDataset,

 

                            CommunicationTypeName);

 

                   if (CommunicationType == Email) {

 

                            var CommunicationName = FormatStr('Communication%1', i)

 

                            AccountEMailAddress = GetFieldValueFromDisabledField(AccountDataset,

 

                                      CommunicationName);

 

                            continue;

 

                   }

 

         }

 

         var AccountName = GetFieldValueFromDisabledField(AccountDataset, 'Name');

 

         if (IsEmptyStr(AccountEMailAddress)) {

 

                   Dataset = GetAccountCommunicationDataset(Email);

 

                   ApplyDatasetFilter(Dataset, 'AccountID',

 

                            AccountDataset.Values('ID'), true);

 

                   Dataset.Open();

 

                   try {

 

                            AccountEMailAddress = Dataset.ValAsStr('Number');

 

                   } finally {

 

                            Dataset.Close();

 

                   }

 

         }

 

         if (!IsEmptyStr(AccountEMailAddress)) {

 

                   if (!IsEmptyStr(AccountName)) {

 

                            AccountEMailAddress = AccountName + '' + AccountEMailAddress + '>';

 

                   }

 

         } else {

 

                   AccountEMailAddress = '';

 

         }

 

         return AccountEMailAddress;

 

}

 

 

 

function GetAccountCommunicationDataset(EmailTypeID) {

 

         if (!Assigned(MailUtilsScript.AccountCommunicationDataset)) {

 

                   var Dataset = Services.GetNewItemByUSI('ds_AccountCommunication');

 

                   MailUtilsScript.AccountCommunicationDataset = Dataset;

 

                   ApplyDatasetFilter(Dataset, 'CommunicationTypeID', EmailTypeID, true);

 

         }

 

         return MailUtilsScript.AccountCommunicationDataset;

 

}

 

2. Далее в скрипте scr_AccountsWorkspace реализовать функцию отправки сообщения :

 

 

 

function SendMailWithoutTemplate() {

 

    var Dataset = Services.GetNewItemByUSI('ds_Account');

 

         EnableDatasetFilters(Dataset, false);

 

         Dataset.FetchRecordsCount = -1;

 

         var IDs = GetArrayByCollection(BaseWorkspace.Grid.SelectedIDs);

 

    var KeyDataFieldName = Dataset.KeyDataField.Name;

 

         var AccountEMailAddress = '';

 

         for (var i = 0; i IDs.length; i++){

 

                   Dataset.Close();

 

                   ApplyDatasetFilter(Dataset, 'ID', IDs[i], true);

 

                   Dataset.Open();

 

                   var SingleAccountEMailAddress = GetCurrentAccountEmailAddress(Dataset);

 

                   AccountEMailAddress += IsEmptyValue(SingleAccountEMailAddress) ? '' :

 

                       (IsEmptyValue(AccountEMailAddress) ? '' : ';') +

 

                            SingleAccountEMailAddress;

 

         }

 

         CreateEmptyMessage(AccountEMailAddress);

 

         Dataset.Close();

 

}

 

 

3. В окне wnd_AccountsWorkspace добавить на закладке невизуальных компонентов одно действие, например, amiSendEmail и на событие OnExecute прописать вызов функции:

 

SendMailWithoutTemplate();

 

 

В результате с помощью действия будет создано письмо с e-mail адресом контрагента, действие в гриде продублируется автоматически.

 

Полная инструкция со скриншотами прикреплена.

Приятной работы! 

Нравится

Поделиться

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

Значительно ли будет отличатся реализация данного функционала в Terrasoft CRM 3.2?

Олег, данные функции работают и в Terrasoft CRM 3.2, т.е. реализация отправки e-mail в данной версии аналогична.

P.S. Не забудьте присоединять скрипт scr_MailUtils в scr_AccountsWorkspace.

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