Хочу предостеречь тех, кто решит добавить поле InventLicationId в таблицу InventSum.
В ранней версии (3,0) делали такое. Это давало (наверное) какие то улучшения по производительности некоторых "самописных" отчетов, едва заметные.
Но с переходом на ax2009 всплыла такая особенность. Дело в том, что для определения (например) остатков номенклатуры внутри транзакции в новых версиях Ax используются данные из двух таблиц
- InventSum
- InventSumDelta
Поэтому делая запрос лишь к InventSum (из собственно написанного кода) внутри транзакции можно получить искаженные данные.
Это конечно, не относится к работе отчетов, которые будут работать нормально.
Но попытка получить остатки по номенклатуре (например при резервировании) делая прямой запрос к inventSum вернет ошибочный результат, если этот запрос делается в транзакции, в которой по данной номенклатуре были изменения в количестве...
Вывод:
Использовать стандартные классы inventOnHand, тогда проблем не будет.
В общем от поля InventLicationId пришлось отказаться.
При этом потери скорости работы старых отчетов не заметно...
|