![]() |
#4 |
Участник
|
Если стремно запускать пересчет остатков сразу для 50к номенклатур, то можно запускать поштучно, или фильтровать по каким-либо признакам, например, по номенклатурной группе.
Для этого можно использовать такой джоб. Здесь надо вместо константы "1762" указать код конкретной номенклатуры или указывать через запятую коды сразу нескольких номеклатур. Также можно добавлять фильтрацию по другим полям, если у вас есть программист, который может делать это. Запустив этот джоб, вы увидите стандартное окошко запроса, в котором можно настроить фильтры вручную. Или использовать фильтры, которые заданы в коде этого джоба, выбрав в поле "Выбрать запрос" значение "Используемый запрос" То есть можно изменять фильтры не обладая навыками программирования. X++: static void Job_ReCalcInventSum(Args _args) { InventSumReCalcItem reCalcItem; InventTable inventTable; Query q = new Query(); QueryRun qr; ; q.addDataSource(tableNum(InventTable)).addRange(fieldNum(InventTable, ItemId)).value("1762"); qr = new QueryRun(q); if(! qr.prompt()) return; SetPrefix("Проверка InventSum"); while(qr.next()) { inventTable = qr.getNo(1); SetPrefix(inventTable.ItemId); // Режим - исправление. Для проверки без исправлений сделать CheckFix::Check reCalcItem = new InventSumReCalcItem(inventTable.ItemId, true, CheckFix::Fix); reCalcItem.updateNow(); } } Последний раз редактировалось Ace of Database; 30.11.2012 в 13:16. |
|
|
За это сообщение автора поблагодарили: IvanS (1), BAx (1), Samuel (1). |