шаблон письма
Интеграция и импорт данных
Разработка

Письмо по шаблону

Добрый день! Необходимо реализовать след. задачу: при сохранении карточки документа формировать письмо в Outlook'е со след. параметрами:
1
Вероятно нужно создать шаблон письма? Как это делается, хотелось бы знать в общих чертах.

Нравится

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

Да, Антон Владимирович, это делается с использованием раздела "Шаблоны сообщений". О нём можно почитать в инструкции, стр. 462-487. В двух словах, сначала создаётся пользовательский запрос, вытягивающий нужные поля из таблиц, потом на его основе - шаблон письма.

Разделы "Шаблоны сообщений" и "Запросы" находятся в верхнем меню "Интструменты".
раздел шаблонов
Запрос конструируется в таком вот построителе запросов:
построитель запросов
А шаблон - в окне нового письма Аутлука с подключеным плагином Terrasoft:
Аутлук

Понятно, спасибо. Когда я указываю раздел "Документы" и запрос для шаблона сообщения, на вкладке макросы доступны лишь поля запроса. А мне необходимо еще #Контакты.Обращение#, то есть Обращение контакта, которому посылается письмо. Его динамически можно в шаблон потом подставить или сразу можно как то в шаблон вставить?

А этот контакт имеет отношение к документу? Если да, можно вытянуть это поле в запрос, выбрав в построителе в дереве слева.

имеет) спасибо, что то не подумал сразу.

Предложенный вариант Александра хочется немного дополнить автоматизацией:

  • Дабавив шаблон получите его ID в Terrasoft Administrator: сервис Mail\Dictionaries\Templates\Main Grid\sq_MailTemplate, к примеру в моем случае - это [code] '{F8D4D576-DA9C-43BA-815D-14DC4ED92A21}'[/code]
  • В сервис Documents\General\Main Grid\scr_DocumentEdit перед блоком [code]// Event handlers[/code] добавьте две вспомогательные функции:

    [javascript]
    function ProcessSendEmail(Dataset) {
    if (Self.Attributes('SkipSendEmail')) {
    return;
    }
    if (ShowConfirmationDialog(
    "Отправить E-mail клиенту?") != wmrYes) {
    return;
    }
    var AddressList = [];
    var ContactID = Dataset.Values('ContactID');
    GetMailAddressesByContactID(ContactID, AddressList);

    SendIncidentEmailToContact(Dataset, AddressList);
    }

    function SendIncidentEmailToContact(DocumentDataset, AddressList) {
    var EmailSubject = "Коммерческое предложение №" +
    DocumentDataset.ValAsStr('DocumentNumber');
    var TemplateID = '{F8D4D576-DA9C-43BA-815D-14DC4ED92A21}';
    var ID = DocumentDataset.Values('ID');
    SendEmailByTemplate(TemplateID, {RecordID: ID, Address: AddressList, Subject: EmailSubject});
    }
    [/javascript]

  • В обработчик события dlDataOnDatasetAfterPost(Dataset) добвьте вызов ранее вставленной функции:
    [javascript]
    function dlDataOnDatasetAfterPost(Dataset) {
    ProcessCopyOfferingDetail(Dataset);
    ProcessSendEmail(Dataset)
    }
    [/javascript]

Спасибо за дополнение, Павел!

Нужно реализовать условный макрос. Читал в руководстве следующее:

3

Что такое Пол в этом выражении? Вероятно это название макроса Пол, из запроса для этого шаблона?

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