Показать сообщение отдельно
Старый 19.04.2007, 09:01   #11  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от mazzy Посмотреть сообщение
Более правильный код:

X++:
SysProgressOperation progress;
;
      select count(recid) from custCollectionLetterTrans 
              where custCollectionLetterTrans.CollectionLetterNum == this.CollectionLetterNum 
                 && custCollectionLetterTrans.AccountNum          == this.AccountNum 
                 && custCollectionLetterTrans.CollectionLetterIssued;
      progress = SysProgressOperation::newGeneral('','',custCollectionLetterTrans.recid);


      while select * from custCollectionLetterTrans 
              where custCollectionLetterTrans.CollectionLetterNum == this.CollectionLetterNum 
                 && custCollectionLetterTrans.AccountNum          == this.AccountNum 
                 && custCollectionLetterTrans.CollectionLetterIssued 
        { 
              ttsbegin;
             custTrans = CustTrans::find(custCollectionLetterTrans.CustTransId, true); 
              custTrans.CollectionLetterCode = custCollectionLetterTrans.CollectionLetterCode; 
              custTrans.update(); 
              ttscommit;

              progress.inccount();
         }
Еще более правильным было бы создание запроса для таблицы и код:
...
Это НЕ правильный код.

Представьте простую ситуацию, Вы разносите накладную из 100 строк. каждая строка обрабатывается в отдельной транзакции. На строке 87 возникает исключительная ситуация , товара недостаточно на складе, а предыдущие 86 строк уже списали товар....

Помедитируйте на тему зачем вообще нужны транзакции, как они работают и что такое целостность данных

Буквально пару дней назад думал убью долго и подробно объяснял 3 одинэсникам почему, например, импорт документа из аксапты надо облачать в транзакзию, а не обрабатывать построчно как они привыкли.

То ли это 1с разрушает моск, то ли просто так совпало
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/