Показать сообщение отдельно
Старый 01.04.2014, 22:14   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Чудеса salesTable.validateWrite()
Такая вот интересная вещь:
Есть код создающий в цикле шапку закупки и строки, потом снова на след итерации шапку и строки
X++:
while - 
{
     if()
     {
          //salesTable = null; только это спасает
          salesTable.clear();
     .....
          if (salesTable.validateWrite())
               salesTable.insert();
  }
....  
}
на втором прохождении цикла заказ не создается, тк выдается ошибка Заказ не может быть изменен. ( @sys2650 )
Происходит из-за того, что несмотря на salesTabel.clear(), кот очищает поля и Recid(я это вижу в дебаггере) , потом в salesTableType->validateWrite вызов salesTable.orig() возвращает буфер, созданный на предыдущей итерации , т.е clear() не очищает orig()
reread перед clear не помогает, initValue после него - тоже
Ест-но, помогает только salesTable = null перед salesTable.clear(); но обычно же так не пишем

Тут как-то спрашиали зачем табличным буферам null присваивают. Может, чтоб вот таких сюрпризов избегать?

AX2012 R2

Последний раз редактировалось IKA; 01.04.2014 в 23:34.