Показать сообщение отдельно
Старый 05.11.2009, 14:58   #1  
/Antony/ is offline
/Antony/
Программист
 
14 / 12 (1) ++
Регистрация: 01.08.2007
FORUPDATE не может использоваться для представления - Предупреждение от АОСа
Опять же непонятки, происходящие из логов АОСа. В логах имеются записи наподобие:

Код:
Версия: Navision Axapta 3.0
База данных: Microsoft SQL Server
Предупреждение: FORUPDATE не может использоваться для представления 'LedgerBalancesDim', так как представления только для чтения. Указание отменено. [W-0121]
Стек вызовов:
(S) \Classes\QueryRun\next
(S) \Classes\LedgerBalanceSum_CurrentMST\sumTransact - line 26
...
По логике все правильно: незачем запись из вьюхи выбирать для обновления,.. но! Но ее специально никто и не выбирает для обновления! Такая же ситуация происходит, в частности, в следующем случае:

X++:
Query q = new Query();
QueryBuildDataSource qbds;
PLKView  t; // представление

qbds = q.addDataSource(tablenum(PLKView));
qr = new queryrun(q);
qr.next();
t = qr.get(tablenum(PLKView));
Как видно, никакого Forupdate тут нет. Однако, если мы сделаем следующим образом, то вышеописанной проблемы уже нет (никаких варнингов):
X++:
...
while(qr.next())
{
    t = qr.get(tablenum(PLKView));
}
Подскажит, пожалуйста, что это? очередная "фича" аксапты? или с этим как-то можно бороться?