Задача:
Есть датает который возращает ID задач (ds_TaskToClose), в которых необходимо поменять Статус = Закрыто, Результат задачи = Выполнено. При этом есть механизмы, которые должны сработать после записи в Dataset Задач. Еще одна мотивация менять поля через Датасет - то что задачи созданы по БП.

//-----------------------------------------------------------------------------
// scr_CloseTask
//-----------------------------------------------------------------------------
function Main()
{

var TaskToClose = Services.GetNewItemByUSI('ds_TaskToClose');
var TaskDataset = Services.GetNewItemByUSI('ds_Task')

TaskToClose.Open();
        while (!TaskToClose.IsEOF) {
                ApplyDatasetFilter(TaskDataset,'ID',TaskToClose('ID'),true);
                TaskDataset.Open();
                TaskDataset.Edit();
                TaskDataset('StatusID') = '{F598ECDB-4EEF-4FA8-9E69-A36B053501E5}' // Closed
                TaskDataset('ResultID') = '{FC3E0665-C980-4E6E-8941-FAF4294C653F}' // Perfomed
                TaskDataset.Post();
                TaskDataset.Close();
                TaskToClose.GotoNext();
        }
TaskToClose.Close();   
}

Мой код привел к следующему
Если Заглавие задачи (Tilte) обязательное поле для заполнения в сервисе таблицы получаем ошибку, того что пишем Null в поле Tilte на строке TaskDataset.Post();, если сделать поле Title не обязательным для заполнения в сервисе таблицы, и запустить скрипт получим пустые задачи, так как во все поля кроме StatusID,ResultID, и ID, запишется NULL.

Просьба помочь решить задачу.

Нравится

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

Из Администратора по F9 лучше не вызывать скрипты, обновляющие данные.
Посмотрите тут (обсуждалось подобное)
http://www.community.terrasoft.ua/forum/topic/2893

Валерий, спасибо огромное, это оно!

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