Ниже мы рассмотрим пример настройки процесса автоматической отправки письма с вложением с помощью бизнес-процесса. 
Для этого нам понадобятся два элемента процесса: “Обработать файл” и “Отправить Email”. 

С помощью элемента процесса «Обработать файл» мы можем вычитать из детали «Файлы и ссылки» раздела необходимые файлы. Либо же получить этот файл из параметра процесса или сгенерировать отчет. 
В рамках этого элемента мы можем вычитанный файл использовать далее в процессе либо сохранить на деталь «Файлы и ссылки» другого раздела. 
В элементе процесса «Отправить Email», помимо стандартных настроек (От кого – Кому, и т.д.), нас интересует поле «Добавить вложение». 

В данное поле мы и будем передавать полученный в элементе процесса «Обработать файл» файл в письмо. 
Перейдем к самому процессу. Например, нам необходимо отправить email с файлом, который находится в детали «Файлы и ссылки» из записи конкретного контакта.  
(о том как запустить процесс из раздела подробно тут
В элементе процесса «Обработать файл» мы указываем источник, откуда мы получаем файл. В нашем примере это деталь «Файлы и ссылки» объекта. 
После указываем этот самый объект: Файл и ссылка контакта, в нашем случае. 
Далее настраиваем фильтр для файла и указываем, как и по какой колонке сортировать записи. 
После выбираем какие действия мы будем выполнять далее с  отфильтрованным файлом: используем далее в процессе (наш вариант) или сохраняем на деталь «Файлы и ссылки» другого раздела. 

Далее, в элементе «Отправить email» мы настраиваем все необходимые параметры (от кого, кому, письмо по шаблону или произвольное и т.д.). После чего в поле «Добавить вложение» мы можем указать файл вычитанный в элементе «Обработать файл». 


Во вложении архив с описанным процессом.

Прикрепленные файлы

Нравится

Поделиться

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

Добрый день, коллеги.

Была простая задача - отправить автоматическое сообщение с шаблоном письма в  зависимости от стадии. Для стадии 1 свой шаблон, для стадии 2 свой шаблон.

Задача простая , решил ее созданием двух   простых БП где стартовый сигнал изменение записи на определенную стадию. БП работает быстро и четко.

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

Как  я вижу альтернативное  решение.

Создается БП ,  в нем два стартовых сигнала на изменение записи (стадия 1, стадия 2) От них идет поток в исключающий шлюз ИЛИ. Далее процесс ветвится на два потока ,  условия перехода по потоку что идентификатор записи равен занчению из справочника (стадия 1, стадия 2) . И на каждом потоке выполняется задача по отправке БП. 

Возможно , что я ошибаюсь с  альтернативным решением, по этому написал в сообщество , может у кого была подобная задача. Буду признателен за помощь

Нравится

4 комментария
Лучший ответ

Марк нестеров,

Нет, для этого можно дополнить существующий справочник стадий обращения. (Или создать новый, если вдруг надо отправлять не только исполнителю, но и кому-то ещё). И в нём добавить поле "Шаблон". И дальше уже в БП определять, по какому шаблону на данной стадии отправлять сообщение.

Но это просто другой подход, чтобы при изменении условий не менять БП, а просто поменять значения в справочнике. Я предпочитаю такой подход, когда надо разделить роли разработчиков и администраторов системы - получается немного сложнее, зато намного гибче

Можно в справочнике стадий добавить поле - ссылку на шаблон
И в БП вычитывать шаблон из этого справочника для текущей стадии, чтобы по нему отправить сообщение.

Добрый день.

Спаси за совет.

Но я не совсем понял . Вы имеет ввиду справочник  правила уведомления контакта ? 

Где задаются правила какой шаблон в зависимости от стадии обращения отправлять ?

 

Если вы это имелии виду , то мне не совсем подходит . 

Так как уведомления я должен отправить исполнителю. 

 

Марк нестеров,

Нет, для этого можно дополнить существующий справочник стадий обращения. (Или создать новый, если вдруг надо отправлять не только исполнителю, но и кому-то ещё). И в нём добавить поле "Шаблон". И дальше уже в БП определять, по какому шаблону на данной стадии отправлять сообщение.

Но это просто другой подход, чтобы при изменении условий не менять БП, а просто поменять значения в справочнике. Я предпочитаю такой подход, когда надо разделить роли разработчиков и администраторов системы - получается немного сложнее, зато намного гибче

А можно просто в кейсе добавить шаг "отправить Email". и для каждой стадии прописать свой шаблон. Отправку сделать автоматически и сразу же при переходе на стадию.

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

Доброго времени суток, коллеги!

 

Возникла необходимость собирать несколько записей из справочников и затем все эти данные отправлять одним письмом в виде таблицы.

Какие есть варианты решения данного вопроса и можно ли это сделать стандартными средствами предоставляемые Studio?

 

Заранее спасибо!

Нравится

4 комментария
Лучший ответ

Mykhailo Kozlenko,

Добрый день.

Можно в элементе 'Задание-сценарий' сформировать таблицу, которую нужно отправлять, и записать её в параметр бизнес-процесса. Например, я делала вот таким образом:

const string quote = "\"";
const string siteRef = "http://site_name";
 
var userConnection = Get<UserConnection>("UserConnection");
var softwareInventoryTableHTML = String.Empty;
 
var esqSoftwareInventory = new EntitySchemaQuery(userConnection.EntitySchemaManager, "SoftwareInventory");
esqSoftwareInventory.AddColumn("Id");
esqSoftwareInventory.AddColumn("Number");
esqSoftwareInventory.AddColumn("Software.Name");
esqSoftwareInventory.AddColumn("LicenseKey.Name");
var expirationDateColumn = esqSoftwareInventory.AddColumn("LicenseExpirationDate");
expirationDateColumn.OrderDirection = OrderDirection.Ascending;
expirationDateColumn.OrderPosition = 1;
esqSoftwareInventory.AddColumn("Equipment.Name");
esqSoftwareInventory.AddColumn("Equipment.Id");
esqSoftwareInventory.Filters.Add(esqSoftwareInventory.CreateFilterWithParameters(FilterComparisonType.Equal,
	"LicenseStatus", new Guid("CDD71003-D5BB-43E7-8E06-280FE40BEBF8")));
DateTime dueDate = DateTime.Today.AddMonths(2);
esqSoftwareInventory.Filters.Add(esqSoftwareInventory.CreateFilterWithParameters(FilterComparisonType.Less,
	"LicenseExpirationDate", dueDate));
var softwareInventories = esqSoftwareInventory.GetEntityCollection(userConnection);
if (softwareInventories.Count > 0)
{
	var htmlTableBuilder = new StringBuilder();
	htmlTableBuilder.AppendLine("<table border='1' width='100%' cellpadding='5'>");
	var headerSB = new StringBuilder();
	headerSB.Append("<tr>");
	string[] columnNames = { "Номер", "Программное обеспечение", "Лицензионный ключ", "Дата окончания лицензии",
		"Оборудование" };
	foreach (string columnName in columnNames)
	{
		headerSB.Append("<td>" + columnName + "</td>");
	}
    headerSB.Append("</tr>");
    htmlTableBuilder.AppendLine(headerSB.ToString());
	foreach (var softwareInventory in softwareInventories)
	{
		var rowSB = new StringBuilder();
		rowSB.Append("<tr>");
		string Number = softwareInventory.GetTypedColumnValue<string>("Number");
		Guid recordId = softwareInventory.GetTypedColumnValue<Guid>("Id1");
		string softwareInventoryRef = siteRef + "/0/Nui/ViewModule.aspx#CardModuleV2/SoftwareInventory1Page/edit/" +
			recordId.ToString();
		string inventoryNumberRef = "<a href=" + quote + softwareInventoryRef + quote +">" + Number + "</a>";
		rowSB.Append("<td width=\"44\">" + inventoryNumberRef + "</td>");
		rowSB.Append("<td width=\"120\">" + softwareInventory.GetTypedColumnValue<string>("Software_Name") + "</td>");
		string licenseKey = softwareInventory.GetTypedColumnValue<string>("LicenseKey_Name");
		int licenseKeyLength = licenseKey.Length;
		int indexStr = 8;
		if (licenseKeyLength <= 8)
		{
			indexStr = licenseKeyLength;
		}
		rowSB.Append("<td width=\"110\">" + licenseKey.Substring(0, indexStr) + "</td>");
		DateTime licenseExpirationDate = softwareInventory.GetTypedColumnValue<DateTime>(expirationDateColumn.Name);
		string licenseExpirationDateStr = "";
		if (licenseExpirationDate != DateTime.MinValue) {
			licenseExpirationDateStr = licenseExpirationDate.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture);
		}
		rowSB.Append("<td width=\"83\">" + licenseExpirationDateStr + "</td>");
		rowSB.Append("<td width=\"106\">" +	softwareInventory.GetTypedColumnValue<string>("Equipment_Name") + "</td>");
		rowSB.Append("</tr>");
 
        htmlTableBuilder.AppendLine(rowSB.ToString());
	}
	htmlTableBuilder.AppendLine("</table>");	
	softwareInventoryTableHTML = htmlTableBuilder.ToString();
}
Set<string>("SoftwareInventoryTableHTML", softwareInventoryTableHTML);
return true;

А потом этот параметр бизнес-процесса использовать в элементе 'Отправить email' в качестве макроса:

Обратите внимание, по данному программному обеспечению истек срок действия лицензии либо истечет в ближайшее время.
Пожалуйста, актуализируйте в срм информацию по этому ПО:
[#Software inventory table#]
 
С уважением,
Системный администратор crm

 

P.S. В скрипте, приведенном выше, ещё и гиперссылки на карточки сущностей в срм формируются.

 

 

 

 

Добрый день.

 

Вы можете использовать бесплатное дополнение, которое позволяет встраивать таблицу с данными в e-mail сообщение, отправляемое из бизнес-процесса.

Добрый! Кроме данного дополнения больше никаких вариантов нет? Ибо при попытке работать с данным расширением оказалось, что оно не совсем рабочее. 

Mykhailo Kozlenko,

Добрый день.

Можно в элементе 'Задание-сценарий' сформировать таблицу, которую нужно отправлять, и записать её в параметр бизнес-процесса. Например, я делала вот таким образом:

const string quote = "\"";
const string siteRef = "http://site_name";
 
var userConnection = Get<UserConnection>("UserConnection");
var softwareInventoryTableHTML = String.Empty;
 
var esqSoftwareInventory = new EntitySchemaQuery(userConnection.EntitySchemaManager, "SoftwareInventory");
esqSoftwareInventory.AddColumn("Id");
esqSoftwareInventory.AddColumn("Number");
esqSoftwareInventory.AddColumn("Software.Name");
esqSoftwareInventory.AddColumn("LicenseKey.Name");
var expirationDateColumn = esqSoftwareInventory.AddColumn("LicenseExpirationDate");
expirationDateColumn.OrderDirection = OrderDirection.Ascending;
expirationDateColumn.OrderPosition = 1;
esqSoftwareInventory.AddColumn("Equipment.Name");
esqSoftwareInventory.AddColumn("Equipment.Id");
esqSoftwareInventory.Filters.Add(esqSoftwareInventory.CreateFilterWithParameters(FilterComparisonType.Equal,
	"LicenseStatus", new Guid("CDD71003-D5BB-43E7-8E06-280FE40BEBF8")));
DateTime dueDate = DateTime.Today.AddMonths(2);
esqSoftwareInventory.Filters.Add(esqSoftwareInventory.CreateFilterWithParameters(FilterComparisonType.Less,
	"LicenseExpirationDate", dueDate));
var softwareInventories = esqSoftwareInventory.GetEntityCollection(userConnection);
if (softwareInventories.Count > 0)
{
	var htmlTableBuilder = new StringBuilder();
	htmlTableBuilder.AppendLine("<table border='1' width='100%' cellpadding='5'>");
	var headerSB = new StringBuilder();
	headerSB.Append("<tr>");
	string[] columnNames = { "Номер", "Программное обеспечение", "Лицензионный ключ", "Дата окончания лицензии",
		"Оборудование" };
	foreach (string columnName in columnNames)
	{
		headerSB.Append("<td>" + columnName + "</td>");
	}
    headerSB.Append("</tr>");
    htmlTableBuilder.AppendLine(headerSB.ToString());
	foreach (var softwareInventory in softwareInventories)
	{
		var rowSB = new StringBuilder();
		rowSB.Append("<tr>");
		string Number = softwareInventory.GetTypedColumnValue<string>("Number");
		Guid recordId = softwareInventory.GetTypedColumnValue<Guid>("Id1");
		string softwareInventoryRef = siteRef + "/0/Nui/ViewModule.aspx#CardModuleV2/SoftwareInventory1Page/edit/" +
			recordId.ToString();
		string inventoryNumberRef = "<a href=" + quote + softwareInventoryRef + quote +">" + Number + "</a>";
		rowSB.Append("<td width=\"44\">" + inventoryNumberRef + "</td>");
		rowSB.Append("<td width=\"120\">" + softwareInventory.GetTypedColumnValue<string>("Software_Name") + "</td>");
		string licenseKey = softwareInventory.GetTypedColumnValue<string>("LicenseKey_Name");
		int licenseKeyLength = licenseKey.Length;
		int indexStr = 8;
		if (licenseKeyLength <= 8)
		{
			indexStr = licenseKeyLength;
		}
		rowSB.Append("<td width=\"110\">" + licenseKey.Substring(0, indexStr) + "</td>");
		DateTime licenseExpirationDate = softwareInventory.GetTypedColumnValue<DateTime>(expirationDateColumn.Name);
		string licenseExpirationDateStr = "";
		if (licenseExpirationDate != DateTime.MinValue) {
			licenseExpirationDateStr = licenseExpirationDate.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture);
		}
		rowSB.Append("<td width=\"83\">" + licenseExpirationDateStr + "</td>");
		rowSB.Append("<td width=\"106\">" +	softwareInventory.GetTypedColumnValue<string>("Equipment_Name") + "</td>");
		rowSB.Append("</tr>");
 
        htmlTableBuilder.AppendLine(rowSB.ToString());
	}
	htmlTableBuilder.AppendLine("</table>");	
	softwareInventoryTableHTML = htmlTableBuilder.ToString();
}
Set<string>("SoftwareInventoryTableHTML", softwareInventoryTableHTML);
return true;

А потом этот параметр бизнес-процесса использовать в элементе 'Отправить email' в качестве макроса:

Обратите внимание, по данному программному обеспечению истек срок действия лицензии либо истечет в ближайшее время.
Пожалуйста, актуализируйте в срм информацию по этому ПО:
[#Software inventory table#]
 
С уважением,
Системный администратор crm

 

P.S. В скрипте, приведенном выше, ещё и гиперссылки на карточки сущностей в срм формируются.

 

 

 

 

Я однажды делал подобное следующим образом:
в БП в элементе "Задание-сценарий" вычитывал в коллекцию какие-то значения.
После кодом формировал html-код в виде:
<table>
<tbody>
  <tr>
    <td >Номер</td>
    <td >Колонка 1</td>
    <td >Колонка 2</td>
  </tr>
  <tr>
    <td >1</td>
    <td >Значение 1</td>
    <td >Значение 2</td>
  </tr>
</tbody>
</table>

где Значение 1 и Значение 2 значения из коллекции.
После использовал элемент БП "Отправка письма", где в тело подсовывал html-код в виде строки.
После отправки получатель увидит заполненную html-таблицу

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

Добрый день!

Помогите пожалуйста разобраться - как правильно составить БП - чтобы автоматически отправлялись письма при поступлении денег с истекающим сроком действия банковской карты?

Пытаюсь создать условный поток с вычиткой данных о сроке действия банк.карты Контакта (Год) и (Месяц):

 

[#Читать Банк.карты.Первый элемент результирующей коллекции.Срок окончания(год)#]<="20"&&[#Читать Банк.карты.Первый элемент результирующей коллекции.Срок окончания(месяц)#]<=Месяц([#Читать Банк.карты.Первый элемент результирующей коллекции.Срок окончания(месяц)#])

 

*Желательно указать в условном потоке:

- что срок окончания(год)=Текущий год,

- что срок окончания(месяц)=Текущий месяц

Нравится

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

Екатерина, у Вас два числовых поля с номером месяца и года? Или они текстовые? В каком виде хранятся?

 

В дизайнере формул на вкладке «Системные переменные» есть «Текущее значение даты», а на вкладке «Функции» — «Месяц()». То есть можете написать «Месяц([#Системная переменная.Текущее значение даты#])». Для года функции не нашёл, можно написать числом в системную настройку, считывать оттуда и раз в год менять.

 

Или же сделать блок-скрипт, где проверять C#-кодом и результат писать в параметр логического типа. Код не привожу, он зависит от формата входных данных.

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

Был создан БП с блоком отправки почты. В тело письма передается HTML-текст через параметр процесса. Всё работает корректно.

Но при повторном открытии и сохранении БП, параметр в графе "Тело Письма" сбрасывается, даже если не щелкать на блок отправки почты. Приходится при каждом изменении БП заново указывать параметр в тело письма. Иначе в письме содержится именно текст [#IsOwner....

Подскажите, можно ли как-то избежать повторения этих действий?

 

 

Нравится

1 комментарий
Лучший ответ

Обратитесь в тех поддрежку Terrasoft (Creatio) не забыв указать номер версии используемой  у вас BpmOnline.

Обратитесь в тех поддрежку Terrasoft (Creatio) не забыв указать номер версии используемой  у вас BpmOnline.

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

Добрый день.
Подскажите, пожалуйста, как реализуется прикрепление файлов активности в элемент 'Отправка e-mail' в БП? 
Желательно поэтапно.
Версия 7.7.

Имеется такой БП, который отправляет письма со страницы активности, при нажатии на соответствующую кнопку.

Что нужно сделать, чтобы прикрепить файлы активности в отправляемые письма?

Нравится

5 комментариев
Лучший ответ

Добрый день.

На коммьюнити данная задача уже неоднократно обсуждалась, например, посмотрите этот пост.

Единственное, версия у Вас уж очень древняя. Возможно, что в ней могут быть нюансы, но принцип, думаю, тот же.

Рекомендую задуматься над обновлением laugh

Добрый день.

На коммьюнити данная задача уже неоднократно обсуждалась, например, посмотрите этот пост.

Единственное, версия у Вас уж очень древняя. Возможно, что в ней могут быть нюансы, но принцип, думаю, тот же.

Рекомендую задуматься над обновлением laugh

Алла Савельева,

Спасибо за ответ.
А без создания активности есть другие варианты?

stique,

Можно и без создания активности, но тогда история отправки e-mail храниться не будет.

Посмотрите, например, следующий пост.

Алла Савельева,

Я правильно понимаю, в БП нужно добавить элемент "Задание-сценарий" и прописать соответствующую реализацию из поста, который Вы приложили?)

stique,

Почти. В посте приведен пример метода отправки, Вам его нужно будет добавить в методы процесса, а вызывать с нужными параметрами из элемента 'Задание-сценарий'.

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

Добрый день! 
Может кто-нибудь поэтапно объяснить логику работы с шаблонами E-mail в БП?
Или ткните носом, где это подробно описано для версии 7.7?
Создаю тестовый БП

Завел параметр EmailTemplateId, в который прописал GuID нужного мне шаблона из таблицы "EmailTemplate".
 

Читаю данные из БД по нужному GuID 

Также добавил параметр EmailBodyTemplate, который устанавливает свойство Body элемента "Отправить e-mail 3".

Что нужно прописать в элементе "Установить тело письма", для того чтобы связать GuID шаблона с параметром EmailBodyTemplate?

Гугл выдает много похожих запросов с форума, но практически все решения, которые там приводятся ссылаются на удаленные страницы.

Заранее благодарен.

Нравится

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

Нигрескул Алексей,

Для 7.7 данные инструкции не совсем подходят.

Чтобы найти гарантированно рабочий пример, проще всего будет найти в Вашей системе другое использование этого действия в БП.

Например, в 7.15 элемент SendEmailUserTask имеет Id «b749e6e7-cde4-4a2e-ade0-0b8cf36b0926» (смотреть в URL дизайнера).

Если запустить поиск по метаданным, можно будет найти прроцессы, где он использован:

SELECT *
  FROM [SysSchema]
  WHERE [MetaData] LIKE '%b749e6e7-cde4-4a2e-ade0-0b8cf36b0926%'

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

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

Добрый день.
Пытаюсь из БП автоматически отправить письмо на электронную почту.
1. Создал системную настройку, в которой прописал e-mail получателя.
2. Синхронизировал учетную запись почты (тестовое письмо пришло).
3. Создал БП  с действиями "Начало" - "Отправка E-mail" - "Конец".

4. В действии "Отправка E-mail" заполнил поля: 
  - От кого: [#Справочник.Настройки синхронизации с почтовым ящиком.ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ#].

  - Кому: [#Системная настройка.Email ИЗ НАСТРОЙКИ#]
  - Ну и собственно тело письма.
После сохранения запускаю БП, появляется иконка загрузки, пропадает, и ничего не происходит.
В чем может быть причина или что я делаю не так?

Нравится

6 комментариев

Добрый день, посмотрите в журнале процессов выполнение вашего процесса

Nastol Eugene,

Обнаружил ошибку:

Terrasoft.Mail.Sender.EmailException: Не разрешена отправка с почтового ящика ---> Terrasoft.Mail.Sender.EmailException: Не разрешена отправка с почтового ящика
   at Terrasoft.Mail.SmtpClient.CreateMailCredentialByAddress(String address)
   at Terrasoft.Mail.SmtpClient.CreateSmtp(String address)
   at Terrasoft.Mail.SmtpClient.Send(EmailMessage emailMessage)
   --- End of inner exception stack trace ---
   at Terrasoft.Mail.SmtpClient.Send(EmailMessage emailMessage)
   at Terrasoft.Core.Process.Configuration.SendEmailUserTask.InternalExecute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessActivity.Execute(ProcessExecutingContext context)

Что это может значить? Пользователь имеет роль "Системный администратор", доступ к операциям имеет, при синхронизации почтового ящика - тестовое письмо пришло.
Из-под супервизора синхронизировал почту пользователя, выполнил БП - письмо отправилось и пришло.  

stique пишет:
Что это может значить?

В коде схемы SmtpClient  же видно, где выводит это сообщение:

private MailCredentials CreateMailCredentialByAddress(string address, bool ignoreRights = false) {
	var mailboxESQ = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "MailboxSyncSettings");
...
	EntitySchemaQueryColumn sendEmailsViaThisAccountColumn = mailboxESQ.AddColumn("SendEmailsViaThisAccount");
...
	IEntitySchemaQueryFilterItem senderEmailAddressFilter = mailboxESQ
		.CreateFilterWithParameters(FilterComparisonType.Equal, "SenderEmailAddress", address);
	mailboxESQ.Filters.Add(senderEmailAddressFilter);
...
	EntityCollection mailboxEntities = mailboxESQ.GetEntityCollection(_userConnection);
...
	Entity mailbox = mailboxEntities[0];
	if (!mailbox.GetTypedColumnValue<bool>(sendEmailsViaThisAccountColumn.Name)) {
		throw new Sender.EmailException("ErrorOnSend", NotAllowedSendingFromThisMailbox);
	}
...

Значит, у используемого ящика в свойствах не поставлена галочка разрешения отправки с него, в базе это поле SendEmailsViaThisAccount таблицы MailboxSyncSettings, в интерфейсе должно меняться тут:

 

scr_chapter_imap_synchronisation_edit_settings_page.png

Зверев Александр,

Большое спасибо за ответ.  
Проблема в том, что интерфейс настройки выглядит и под пользователем и под Супервизором следующим образом:

Посмотрел в базе, стоит 1

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

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

По поводу поля в базе, нужно смотреть, как выполняется функция. Возможно, в выборке пусто после наложения фильтра по адресу, если он написан по-разному. А когда ввели заново, написали одинаково.

Зверев Александр,

Да, Вы правы. При попытке настроить добавленный почтовый ящик, в консоли спамит ошибка:

Вы можете подсказать, в БД можно как-нибудь настроить почтовый ящик как общий?

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

Здравствуй, уважаемое сообщество!

Долгое время назад был написан бизнес-процесс, который до некоторого времени стабильно выполнял свои функции, и в конце отправлял email пользователю... но последние несколько дней перестал это делать.

Решил проверить БП и при нажатии на элемент "Отправить email" появляются ошибки в консоли "Cannot read property 'setValue' of undefined", и параметры элемента не отображаются - вечная "Загрузка".

 

Подскажите, пожалуйста, куда копать и что можно глянуть?

Нравится

1 комментарий
Лучший ответ

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

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

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

Добрый день!

Воспользовались дополнением из MP - Формирование печатной формы счета и отправка клиенту (https://marketplace.terrasoft.ru/template/formirovanie-pechatnoy-formy-…), данный процесс открывает страницу редактирования email, на которой мы и отправляем письмо (через нажатие кнопки Отправить).

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

Нравится

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

Ещё есть дополнение «Отправка письма по шаблону с вложением». Там должно отправлять фоном. Можно поставить оба и сравнить, как там реализован именно блок отправки, доработать первый подобно второму.

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