Настройка уведомления при изменении детали "Описание"
Здравствуйте! При внесении каких-либо изменений в контрагенте или контакте, в частности, при добавлении(изменении) комментария на детали «Описание» хотелось бы настроить автоматическое отправление ответственному за этого контрагента или контакта уведомления об этом. Уведомление желательно как внутреннее, так и внешнее - на почту. Можно ли это сделать? И какой порядок действий, если можно?
Нравится
Добрый день, Александр!
Необхрдимо привязать обработчик на событие OnDatasetAfterPost невизуального элемента dlData d сервисе Common\Details\Description\wnd_Description
Для этого откройте указанный сервис, перейдите к его невизуальным элементам, сфокусируйтесь на dlData. Ниже выберите закладку "События", найдите и встаньте на OnDatasetAfterPost. Оно по умолчанию не задано. Встаньте в поле Значение события (Value) и сделайте двойной клик. В результате этого действия Вы перейдете в сервису Common\Details\Description\wnd_DescriptionScript в котором каретка курсора уже будет стоять в новом обработчикие события:
function dlDataOnDatasetAfterPost(Dataset) { //TODO }
Здесь реализуйте логику отправки уведомления сообщения.
Например: если нужно отправлять оповещения только в случае изменения описания добавьте условие:
var ParentWindow = Self.ParentContainer.ParentWindow; if (ExtractUSICodeEx(ParentWindow.USI) == "wnd_AccountsWorkspace") { //TODO }
Получить ID Контрагента и Ответственного можно из датасета
var AccountDataset = ParentWindow.ComponentsByName('dlAccounts').Dataset;
Отправить сообщение ответсвенному можно воспользовавшись базовой функцией SendEmail(Params) из сервиса Common\Library\scr_MailUtils (не забудьте его подключить к wnd_DescriptionScript).
Пример использования SendEmail:
SendEmail({Address: 'support@tscrm.com', Subject: "Запрос в службу поддержки Terrasoft", BodyFormat: 1, Body: "Hello!"});
Создать напоминание можно следующим образом:
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();