Пользовательский макрос в шаблоне Email

Добрый день.
Возникла необходимость добавления пользовательского макроса в шаблон email и заполнять его значением параметра БП.

Прошу подсказать кейс реализации подобной задачи.

Нравится

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

Игорь, добрый день!

Принцип реализации есть на SDK - https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-obra….

Спасибо! Второй день ищу информацию на академии.
А как быть с заполнением макросов из БП при использовании элемента "Отправить email"?

Коновалов Игорь, здравствуйте!

Не совсем понятен вопрос, Вы хотите вычитать значение параметра процесса в рамках исходного кода кастомного макроса?

Значительно проще не привязываться к созданию собственного макроса, а выполнять все необходимые действия в рамках процесса.

Возможные реализации: 

1. Формировать по ходу процесса тело письма, и вставлять с помощью формулы в это тело параметр, условно: 

 BodyText = String.Format("Parameter value {0} in my body",[#MyParameter#])
2. Либо же Вы можете с помощью элемента чтение данных получить тело шаблона (объект = Шаблон email сообщения), записать значение в параметр процесса и аналогично первому пункту записать необходимое значение в тело (например, с помощью Replace).

3. Если подстановка значений выполняется из одного объекта, можно просто создать в шаблонах собственный с указанием объекта источника данных, а в процессе просто указать в элементе Отправить email id нужной записи.

4. Самый простой способ - отправлять письмо в режиме произвольное письмо, и подставлять в тело нужный параметр - http://prntscr.com/ipagjy

Если же вопрос больше как реализовать сложную логику в кастомном макросе - можно ознакомиться с реализацией базового, например, SymptomsGenerator пакета CaseService.

Спасибо, за варианты.
Но передо мной стоит задача в шаблон письма вывести по условию 3 таблицы из деталей р.Продажи. Шаблон самого письма строго типизирован.

Игорь, здравствуйте!

Вы можете формировать тело письма, содержащее таблицы, в формате html  по процессу, подставляя необходимые параметры процесса. После чего сформированное тело передавать в параметр [Тело письма] элемента Отправить email (в расширенных свойствах элемента).

Логвин Андрей Витальевич,
Да, тоже думал об этом. Но шаблон письма строго типизирован, и должен храниться в справочнике "Шаблоны email"
Есть ли возможность работать с пользовательскими макросами шаблона email в БП?

 

Коновалов Игорь,

Есть возможность заполнять макрос с помощью элемента процесса "Обработать шаблон письма с макросами", указав запись, из которой брать значения, uid объекта записи и id шаблона. Подробнее по работе данного элемента можно посмотреть в самом действии в конфигурации. Других вариантов обрабатывать кастомный макрос в БП нет, необходимо реализовать обработку в рамках задания-сценария.

 

 

Логвин Андрей Витальевич пишет:
Есть возможность заполнять макрос с помощью элемента процесса "Обработать шаблон письма с макросами",

а где вы нашли такой User task? 

Владимир, а где Вы искали? Создаёте новое действие в БП и выбираете с этим названием.

Зверев Александр пишет:

Владимир, а где Вы искали? Создаёте новое действие в БП и выбираете с этим названием.

Уже нашёл. Он есть в Service, но его нет в остальных продуктах.
Придётся копи-пастить 

Вообще, не очень хорошо брать код из другого продукта за другую цену. Для объектов это даже проверяется автоматически механизмом лицензий, но для страниц, действий и прочих скриптов — чисто на честность.

Идея дать возможность использовать макросы в продуктах, отличных от service уже заведена.

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