При перетягивании задачи в расписании, например, с сегодняшнего для на завтрашний, возникает необходимость также "сдвинуть" напоминание по этой задаче на такой же промежуток времени.
Привожу ниже работающий и протестированный пример подобной реализации.
Необходимо в scr_SchedulerArea в функции UpdateDatasetRecordByEvent прописать следующий код (новый код выделен):
var DataFields = Dataset.DataFields;
var StartDateDataField = DataFields.ItemsByName('StartDate');
var DueDateDataField = DataFields.ItemsByName('DueDate');
var OwnerIDDataField = DataFields.ItemsByName('OwnerID');
Dataset.Locate('ID', Event.ID);
var PriorStartDate = StartDateDataField.ValAsDateTime;
var PriorDueDate = DueDateDataField.ValAsDateTime;
if (!CheckTaskCovering(Dataset, OwnerIDDataField, Event.Start,
Event.Finish)) {
CancelChangeEvent(Event, PriorStartDate, PriorDueDate);
return;
}
Dataset.Edit();
strong>var RemindingToOwnerID = Dataset.Values('RemindingToOwnerID');
if (!IsEmptyValue(RemindingToOwnerID)) {
var uq_Remindings = GetSingleItemByCode('uq_Remindings', 'uq_RemindSingle');
var Parameters = uq_Remindings.Parameters;
var ColumnsValues = uq_Remindings.ColumnsValues;
SetParameterValue(Parameters, 'ID', RemindingToOwnerID);
ColumnsValues.ItemsByName('RemindTime').Value = Event.Start;
uq_Remindings.Execute();
}strong>
//Dataset.ValAsStr('Title') = Event.Caption;
StartDateDataField.ValAsDateTime = Event.Start;
DueDateDataField.ValAsDateTime = Event.Finish;
UpdateDuration(Dataset);
Dataset.Post();
UpdateEventColorsByDatasetRecord(Event, Dataset);
Также необходимо подключить скрипт scr_Utils, если он не подключен.
Данный пример приведен для напоминаний ответственного, для автора реализовать нужно по аналогии.
Желаю удачи!
С уважением,
Мельникова Екатерина