Публикация

В конфигурации отправка описана в скрипте scr_TaskUtils в функции function SendTaskEmailToContact(TaskDataset, AddressList)

Таким образом, Вам необходимо доработать функцию следующим образом:

function SendTaskEmailToContact(TaskDataset, AddressList) {
         if (GetDatasetFieldValue(TaskDataset, 'CycleTaskParamID')) {
                   var TemplateID = GetSystemParameterValueEx('CycleTaskEmailByContactTemplateID');
         } else {
                   var TemplateID = GetSystemParameterValueEx('TaskEmailByContactTemplateID');
         }
         if (IsEmptyGUID(TemplateID)) {
                   ShowErrorDialog(FormatStr(SystemParameterIsEmptyError,
                            'TaskEmailByContactTemplateID'));
                   return;
         }
         var ID = TaskDataset.Values('ID');
                   
         var FileName = System.CreateObject('TSObjectLibrary.Value'); //создаем объект файл
         FileName.Value = 'C:\\Test.rtf'                                             //определяем путь хранения временного файла
         TaskDataset.DataFields('Description').SaveToFile(FileName.Value);  //сохраняем описание в файл
         var Attachments = new Array(FileName.Value);                           //определяем, что данный файл будет аттачем
         
         var Service = Services.GetSingleItemByUSI('scr_MailUtils');
         Service.ScriptControl.CodeObject.SendEmailByTemplate(TemplateID,
                   {RecordID: ID, Address: AddressList, AutoSend: true,
                   SkipQueryAddresses: true, Attachments: Attachments}); //в этой строке добавлены аттачи
}

Обратите внимание, по умолчанию в датасете задачи нет поля Description, хотя описание хранится в таблице задач. Для корректной работы скрипта его необходимо добавить в запрос и датасет:

1. Откройте sq_Task и добавьте новую колонку Description:

img125
img126

Сохраните и закройте запрос.

2. Откройте датасет ds_Task и добавьте в него колонку типа большой бинарный объект:

img127
img128

Сохраните и закройте датасет.

3. Откройте scr_TaskUtils и внесите изменения в функцию отправки письма. Перезапустите клиент. Результат будет выглядеть следующим образом:

img129

Поделиться

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

о, спасибо :biggrin:

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

В том случае если Вы импортируете многострочные данные в поле MemoDataContorol ("Описание") и в результате импорта они отображаются одной строкой, то эта проблема связана с особенностями Excel.
А именно, для того, чтобы данные переносились на другую строку, необходимы два знака: знак переноса строки и переноса каретки. В свою очередь в MS Excel не предусмотрен знак переноса каретки, поэтому после импорта данных из этого файла, данные помещаются все в одну строку. Для того, чтобы переносить данные на другую строку, необходимо в конфигурации программным образом добавить этот знак переноса каретки.

Для этого Вам нужно открыть сервис scr_DataflowExcelUtils.
В методе GetMemoryDatasetByDataflowItemNodeFromExcel после строки Stop = false; необходимо прописать следующее:

if (DataField.FieldType == dftString) {
Value = Value.replace(/\n/gi, '\r\n');
}

Сохраните внесенные изменения, перезапустите рабочее приложение Terrasoft CRM и протестируйте работоспособность системы.

Желаю удачи!

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

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

если нужно експортировать поле описание в формате rtf нужно только
создать action в окне воркспейса из которого планируэться импорт
и вызвать фн

function amiMyActionOnExecute(Control) {
  ExportFromWnd(Self);
}

+ добавить в используэмые скрипти scr_ExportUtils из атача
все остальное зделает фн

+ простота в использовании
- если в описании есть перевод строки в Excele описание будет разбито на несколько ячеек поетому я задаю смещение на ячейку
но если Вы уверены что у вас нет ентера в описании можете закоментировать строчку 96 DescIndex++;
- нельзя выбрать куда сохранять временные файли
- не удаляються временные файлы

Но ето все временно если решение заинтересуэт продолжу разработку :)

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать