Cтранно что этот код вообще работает.

Вы же НЕ блокируете курсор для обновления. Попробуйте перед изменением курсора перевыбрать его.
А ещё для того чтобы изменения отображались на форме нужно обновить(refresh) источник данных
X++:
for (purchReqTableLocal = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); purchReqTableLocal; purchReqTableLocal = fds.getNext())
{
ttsbegin;
purchReqTableLocal.selectForUpdate(true);
purchReqTableLocal.reread()
purchReqTableLocal.Archives = !purchReqTableLocal.Archives;
purchReqTableLocal.doUpdate();
ttscommit;
fds.reread();
fds.refresh();
}
Цитата:
Сообщение от
Geo
записи реально не изменяются (убедился через журнал базы данных)
А он (журнал баз данных) настроен на протоколирование изменений
Archives таблицы
PurchReqTable? Проверяйте лучше напрямую (обозревателем таблиц) в самой таблице
PurchReqTable.
P.S.: Если вы работает не просто с табличным курсором, а с источником данных, то у вас также есть возможность использовать метод fds.write(), который сам управляет транзакциями и отображением изменений.