Ниччего не получается
Хочу сделать так, чтобы у отмеченных записей инвертировалось логическое поле Archives. Сделал метод вот такой:
X++:
public static void main(Args _args)
{
FormRun fr;
FormDatasource fds;
PurchReqTable purchReqTableLocal;
;
if(!_args)
throw error("Класс должен быть вызван с параметрами!");
else
{
fr = _args.caller();
//info(fr.name());
if (fr)
{
fds = fr.dataSource();
ttsbegin;
for (purchReqTableLocal = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); purchReqTableLocal; purchReqTableLocal = fds.getNext())
{
purchReqTableLocal.Archives = !purchReqTableLocal.Archives;
purchReqTableLocal.doUpdate();
}
ttscommit;
// делаем проверку, изменилось ли содержимое:
for (purchReqTableLocal = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); purchReqTableLocal; purchReqTableLocal = fds.getNext())
{
info(strfmt("%1, %2", purchReqTableLocal.PurchReqId, purchReqTableLocal.Archives));
}
}
}
}
Не работает!
"Проверка" проходит нормально, отображаются правильные ключи отмеченных записей с правильным (как бы новым) значением изменяемого поля. Но записи реально не изменяются (убедился через журнал базы данных). При этом, если не отмечать несколько записей, а запускать для просто текущей - оно работает.
Пробовал ttsbegin и ttscommit помещать внутрь цикла - не помогло.
Помогите, пожалуйста.