|
![]() |
#1 |
Moderator
|
Цитата:
Сообщение от Zabr
![]() Возможно, мой вопрос неправильный, но спрошу всё же.Закрытие склада, класс InventCostClosing, метод createInventCostList() (версия Ax4.0), там 4 похожих куска кода:
X++: while select forceplaceholders ItemId from inventTable index hint TypeIdx where inventTable.ItemType == ItemType::Item exists join inventTrans index hint OpenItemIdx where inventTrans.ValueOpen == InventTransOpen::Yes && inventTrans.ItemId == inventTable.ItemId { this.createInventCostListItem(inventTable.ItemId,recordInsertList); } Во вторых - я не думаю что вы что-то сильно ускорите. В текущей реализации вы просто создаете запись в inventCostList, потом система загружает только приходные проводки (поскольку если расходные проводки в открытом периоде есть, то ваше предложение точно не сработало бы и мы можем этот вариант в рассмотрение не брать), а потом не найдя расходных проводок просто тихо забывает про данную номенклатуру. То есть - сэконоите вы от силы процентов 10-15 времени и только на НУЛЕВОЙ итерации закрытия. Которая сама по себе обычно занимает процентов 15 времени закрытия. Соответственно, сэкономите вы 2-3 процента общего времени закрытия, а всяких рисков дополнительных получите по полной программе. Вообще мне кажется что проблемы производительности правильнее решать просто увеличивая число хелперов. Задача неплохо масштабируется в ширь и решать ее нужно именно таким образом. Последний раз редактировалось fed; 03.03.2011 в 17:31. |
|