Задача:
При изменении статуса (с Open на Closed) если возможный Результат задачи только один, автоматически заполнять поле Результат задачи.
Как все работает без доработки:
Вносим изменения:
1.scr_TaskEdit:
function wnd_TaskEditOnPrepare(Window) {
Initialize(Window);
//24.10
var AllowedResultIDs = GetAttribute(Self, 'AllowedResultIDs');
dlData.Dataset.Attributes('AllowedResultIDs') = AllowedResultIDs;
//24.10
....
}
2.ds_TaskScript
function UpdateDataByStatusID(Dataset) {
....
//24.10
var StatusID = Dataset('StatusID');
var TaskTypeID = Dataset('TypeID');
var ResultDataset = Services.GetNewItemByUSI('ds_TaskResult');
ApplyDatasetFilter(ResultDataset, 'TaskTypeID', TaskTypeID, true);
ApplyDatasetFilter(ResultDataset, 'StatusID', StatusID, true);
var AllowedResultIDs = Dataset.Attributes('AllowedResultIDs');//GetAttribute(Self, 'AllowedResultIDs');
var IsResultIDsFilterEnabled = Assigned(AllowedResultIDs);
ApplyDatasetIncludeFilter(ResultDataset, 'IncludeID',
AllowedResultIDs, IsResultIDsFilterEnabled);
ResultDataset.Open();
if (ResultDataset.RecordsCount == 1)
Dataset('ResultID') = ResultDataset('ID');
//24.10
}