Добрый день.
Возникла необходимость добавления пользовательского макроса в шаблон email и заполнять его значением параметра БП.
Прошу подсказать кейс реализации подобной задачи.
Нравится
Игорь, добрый день!
Принцип реализации есть на 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 уже заведена.