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

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

Нравится

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

Добрый день, Александр!
Необхрдимо привязать обработчик на событие 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();
Показать все комментарии