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

 

Если Вам необходимо реализовать возможность отправки 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.

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

"Программа пытается получить доступ к адресам электронной почты, хранящимся в Outlook"
Нередко пользователи системы могут получать вот такое сообщение при попытке отправления e-mail из MS Outlook при включенном соединении с Terrasoft.
Если Вы обратитесь за информацией об этом сообщении на сайт Microsoft, то получите массу умной информации о том, почему это сообщение появляется, а в заключении примерно следующее:"...в общем случае запретить выдачу этого предупреждения невозможно".
Но службе технической поддержки все-таки удалось найти решение этой проблемы.
Для MS Outllok 2007:
- Открываем меню Сервис -> Центр управления безопасностью.
- В появившемся окне переходим на вкладку "Настройки" (слева).
- Проверьте наличие надстройки «Terrasoft CRM Add-In» и «Outlook advanced security».
- Для управления надстройками нажмите на кнопку «Перейти…».
- Убедитесь, что компоненты «Outlook advanced security» и «Terrasoft CRM Add-In» включены и путь к библиотеке актуален.
В противном случае удалите данные компоненты и создайте их заново
- Далее перейдите в меню «Сервис» -> «Advanced Security» -> «Action List…».
- Убедитесь, что данные действия постоянно разрешены (Allow Access). Если же это не так нажмите правой кнопкой мышки на модуле и предоставьте разрешение на выполнение (Actions -> Allow Access).
- Перезапустите MS Outlook.
Для MS Outlook 2003:
- Открываем меню Сервис -> Advanced Security -> Action List.Убедитесь, что данные действия постоянно разрешены (Allow Access). Если же это не так нажмите правой кнопкой мышки на модуле и предоставьте разрешение на выполнение (Actions -> Allow Access).
- Перезапустите MS Outlook.

Желаю удачи!

С уважением,
Мельникова Екатерина

Нравится

Поделиться

1 комментарий

а если после установки Advanced Security в меню Сервис Outlook не появилась эта закладка? в чём может быть проблема?

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