Цитата:
Сообщение от
AngelDominantes
X++:
void run()
{
MyTable myTableUpdate;
;
ttsbegin;
select forupdate myTableUpdate
where myTableUpdate.Code == myTable.Code;
myTableUpdate.Description = 'la la la';
if (myTableUpdate.validateWrite())
myTableUpdate.Update();
ttscommit;
}
Не совсем понял смысл, то есть мы создаем 2 переменные: myTableUpdate, myTable одной и той же таблицы и приравниваем поля "Code"?
нет, первая переменная (myTable) для того что бы зафиксировать курсор, который пришел с формы. вторая переменная для апдейта. в методе run() мы выполняем ещё раз поиск нужной нам записи из БД (считаю это просто необходимым, потому как эту запись банально могли удалить. + таблица заблокируется непосредственно перед самим адейтом, не на долго

)
да, нужно ещё там проверку добавить на то что запись найдена. Т.е. в итоге метод run() должен выглядеть так:
X++:
void run()
{
MyTable myTableUpdate;
;
ttsbegin;
select forupdate myTableUpdate
where myTableUpdate.Code == myTable.Code;
if (myTableUpdate.RecId != 0)
{
myTableUpdate.Description = 'la la la';
if (myTableUpdate.validateWrite())
myTableUpdate.Update();
}
ttscommit;
}