Цитата:
Сообщение от
S.Kuskov
Скорее наоборот clear() оставляет в курсоре какой-то мусор, который мешает работе reread
Достаточно посмотреть в отладчик, чтобы понять, что clear() устанавливает все поля в их "нулевое" или "начальное" состояние. В частности, попутно устанавливаются и системные поля (например, код компании).
Попробуйте выполнить такой код. В нем reread честно отработает (вспоминаем, что в БД индекс состоит из двух полей - RecID и dataareaid, т.о. выбрать запись просто по RecId система не может - ей нужен еще dataareaid):
X++:
static void Job1(Args _args)
{
InventTable inventTable;
;
inventTable.clear();
breakpoint;
inventTable = null;
inventTable.(fieldnum(InventTable, dataAreaId)) = 'dat';
inventTable.RecId = 5637147343;
inventTable.reread();
breakpoint;
}