вот что получилось для перепланирования. Может кому понадобится.
Критикуйте
X++:
static void ProdStatusSched(Args _args)
{
ProdParmScheduling prodParmScheduling;
ProdTable prodTable;
;
ttsbegin;
while select ProdTable
where ProdTable.ProdStatus != ProdStatus::Scheduled
{
prodParmScheduling.clear();
prodParmScheduling.ParmBuffer::initParmId();
prodParmScheduling.ProdId = ProdTable.ProdId;
// устанавливаем параметры перепланирования:
prodParmScheduling.SchedDirection = ProdSchedDirection::ForwardFromToday;
prodParmScheduling.SchedMethod = ProdSchedMethod::OperationScheduling;
prodParmScheduling.SchedDate = str2date('24/05/2012',123);
prodParmScheduling.SchedTime = str2time('15:55');
prodParmScheduling.CapLimited = NoYes::Yes;
prodParmScheduling.MatLimited = NoYes::Yes;
prodParmScheduling.SyncRef = NoYes::Yes;
prodParmScheduling.SchedRef = NoYes::Yes;
prodParmScheduling.CancelProcessTime = NoYes::No;
prodParmScheduling.CancelSetupTime = NoYes::No;
prodParmScheduling.CancelQueueTime = NoYes::No;
prodParmScheduling.CancelTransportTime = NoYes::No;
prodParmScheduling.CancelOverlap = NoYes::No;
prodParmScheduling.JobStatus = ParmJobStatus::Executed;
prodParmScheduling.AutoUpdate = NoYes::Yes;
prodParmScheduling.insert();
ProdTable::find(ProdTable.ProdId).status().runJobScheduling(prodParmScheduling);
}
ttscommit;
}