Задача:
Есть датает который возращает 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.
Просьба помочь решить задачу.
Нравится
Из Администратора по F9 лучше не вызывать скрипты, обновляющие данные.
Посмотрите тут (обсуждалось подобное)
http://www.community.terrasoft.ua/forum/topic/2893