Собственно джоб:
X++:
static void Correct_SQL_Dictionary(Args _args)
{
SQLDictionary d;
SQLDictionary tmp;
str tableName;
;
tmp.setTmp();
ttsBegin;
while select d
where
(
d.tabId>=30001
&&
d.tabId<=60000
)
||
(
d.fieldId>=30001
&&
d.fieldId<=60000
)
{
tmp.data(d);
tmp.insert();
}
DELETE_FROM d
where
(
d.tabId>=30001
&&
d.tabId<=60000
)
||
(
d.fieldId>=30001
&&
d.fieldId<=60000
)
;
while select tmp order by tabid, fieldID
{
d.data(tmp);
if (!(
tmp.tabId>=30001
&&
tmp.tabId<=60000
))
tableName = '';
if (!tmp.fieldId)
tableName = tmp.name;
if (tableName)
d.TabId = tableName2ID(tableName);
if (tmp.fieldId)
d.fieldId = fieldName2ID(d.TabId, tmp.name);
if (d.tabId && (!tmp.fieldId || d.fieldId))
d.insert();
}
ttsCommit;
info('ok');
}