![]() |
#7 |
Участник
|
Нашел я, то место в коде, которое приводит к возникновению ошибки.
Для начала, привожу более короткую цепоку действий, приводящую к ошибке: 1. Создаем новую номенклатуру, заполняем все обязательные поля 2. Сохраняем запись (это обязательно) 3. Меняем какие либо поля, относящиеся к таблице InventTable 4. Переходим на закладку Цена/Скидка и меняем цену в группе полей «Заказ на продажу» 5. Сохраняем запись – все изменения, сделанные на шаге 3, будут потеряны Ошибка кроется в методе update таблицы InventTableModule. X++: void update(boolean _updatePriceDate = true) { boolean updPrice; FormRun formRun; FormObjectSet formObjSet; int i; if (this.orig().Price != this.Price || this.orig().Markup != this.Markup || this.orig().PriceUnit != this.PriceUnit) { updPrice = true; if (_updatePriceDate) this.PriceDate = systemdateget(); } ttsbegin; super(); if (updPrice) { if (this.ModuleType != ModuleInventPurchSales::Sales) InventTable::updateAutoSalesPrice(this.ItemId, this.PriceDate); else { if (this.isFormDataSource()) { InventTable::updateAutoSalesPercent(this.ItemId); // refresh and reread inventTable datasource if exists in form formRun = this.dataSource().formRun(); for (i=1; i<= formRun.dataSourceCount(); i++) { if (formRun.dataSource(i).cursor().TableId == tablenum(InventTable)) { formObjSet = formRun.dataSource(i); break; } } //вот это приводит к ошибке --> if (formObjSet) { formObjSet.refresh(); formObjSet.reread(); } //вот это приводит к ошибке <-- } } } ttscommit; } X++: //вот это приводит к ошибке --> if (formObjSet) { formObjSet.refresh(); formObjSet.reread(); } //вот это приводит к ошибке <-- Если просто закомментировать код, то ошибка исчезнет, но он там для чего-то был написан. Кто, что может посоветовать? |
|