Задача:
При изменении статуса (с Open на Closed) если возможный Результат задачи только один, автоматически заполнять поле Результат задачи.
Как все работает без доработки:
scr1

Вносим изменения:
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
}

Нравится

Поделиться

3 комментария

Не нашел у себя функции UpdateDataByStatusID(Dataset)

Скрипт ds_TaskScript версии 3.3.2.197 XRM, а у вас какая версия?
UpdateDataByStatusID(Dataset) происходит по событию DataChage датасета ds_Task. Найдите аналог в Вашей версии.

В новой версии ф-ия наз. UpdateControlsAndDataByStatusID

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