Деталь
контакт
уведомление
Установка и Администрирование
Разработка

Настройка уведомления при изменении детали "Описание"

Здравствуйте! При внесении каких-либо изменений в контрагенте или контакте, в частности, при добавлении(изменении) комментария на детали «Описание» хотелось бы настроить автоматическое отправление ответственному за этого контрагента или контакта уведомления об этом. Уведомление желательно как внутреннее, так и внешнее - на почту. Можно ли это сделать? И какой порядок действий, если можно?

Нравится

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

Добрый день, Александр!
Необхрдимо привязать обработчик на событие OnDatasetAfterPost невизуального элемента dlData d сервисе Common\Details\Description\wnd_Description

Для этого откройте указанный сервис, перейдите к его невизуальным элементам, сфокусируйтесь на dlData. Ниже выберите закладку "События", найдите и встаньте на OnDatasetAfterPost. Оно по умолчанию не задано. Встаньте в поле Значение события (Value) и сделайте двойной клик. В результате этого действия Вы перейдете в сервису Common\Details\Description\wnd_DescriptionScript в котором каретка курсора уже будет стоять в новом обработчикие события:

[javascript]
function dlDataOnDatasetAfterPost(Dataset) {
//TODO
}
[/javascript]
Здесь реализуйте логику отправки уведомления сообщения.
Например: если нужно отправлять оповещения только в случае изменения описания добавьте условие:
[javascript]
var ParentWindow = Self.ParentContainer.ParentWindow;
if (ExtractUSICodeEx(ParentWindow.USI) == "wnd_AccountsWorkspace") {
//TODO
}
[/javascript]

Получить ID Контрагента и Ответственного можно из датасета
[javascript]
var AccountDataset = ParentWindow.ComponentsByName('dlAccounts').Dataset;
[/javascript]
Отправить сообщение ответсвенному можно воспользовавшись базовой функцией SendEmail(Params) из сервиса Common\Library\scr_MailUtils (не забудьте его подключить к wnd_DescriptionScript).

Пример использования SendEmail:

[javascript]
SendEmail({Address: 'support@tscrm.com',
Subject: "Запрос в службу поддержки Terrasoft",
BodyFormat: 1, Body: "Hello!"});
[/javascript]

Создать напоминание можно следующим образом:
[javascript]
var RemindingDataset = GetSingleItemByCode('ds_Reminding');
RemindingDataset.Append();
RemindingDataset.ValAsGUID('ID') = Connector.GenGUID();
RemindingDataset.Values('SubjectID') = AccountDataset.ValAsGUID('ID');
RemindingDataset.Values('SubjectTypeID') = rst_Account; // берется из Common\Dictionaries\Reminding\enm_RemindingSubjectType
RemindingDataset.Values('Description') = 'Напоминание по Контрагенту.'
RemindingDataset.Values('RemindTime') = new Date().getVarDate();
RemindingDataset.Values('ContactID') = Connector.CurrentUser.ContactID;
RemindingDataset.Post();
RemindingDataset.Close();
[/javascript]

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