|
19.02.2008, 11:58 | #1 |
Участник
|
Цитата:
А MODIFY сообщениями обвесь до и после - самый простой сопоб определить оно или нет? P.S. И кстати, табличка эта не блокорована?? Какая версия NAV? |
|
19.02.2008, 14:20 | #2 |
Участник
|
Цитата:
Смоделировал не на тригерах отчета...: LedgerEntryDimension.SETRANGE("Table ID",271); LedgerEntryDimension.SETRANGE("Entry No.",9578993); IF LedgerEntryDimension.FIND('-') THEN BEGIN IF LedgerEntryDimension."Dimension Code" = 'СТАТЬИ ДДС' THEN BEGIN LedgerEntryDimension."Dimension Value Code" := 'Р3110'; LedgerEntryDimension.MODIFY; все ОК!! END; Но если (по аналогии с тригерром OnAfterGetRecord()) LedgerEntryDimension.SETRANGE("Table ID",271); LedgerEntryDimension.SETRANGE("Entry No.",9578993); IF LedgerEntryDimension.FIND('-') THEN REPEAT IF LedgerEntryDimension."Dimension Code" = 'СТАТЬИ ДДС' THEN BEGIN LedgerEntryDimension."Dimension Value Code" := 'Р3110'; LedgerEntryDimension.MODIFY; ЗАВИСАНИЕ!!!! ЗАЦИКЛИВАНИЕ!!!! UNTIL LedgerEntryDimension.NEXT=0; |
|
19.02.2008, 16:18 | #3 |
Участник
|
Цитата:
Сообщение от unalexia
Немоного продвинулся дальше.... Вроде как проблема в том, что указанный код на происваивание нового значения и Modify находится в триггере такой же таблицы... Как бы в этом случае и происходит зацикливание....
LedgerEntryDimension.SETRANGE("Table ID",271); LedgerEntryDimension.SETRANGE("Entry No.",9578993); IF LedgerEntryDimension.FIND('-') THEN REPEAT IF LedgerEntryDimension."Dimension Code" = 'СТАТЬИ ДДС' THEN BEGIN LedgerEntryDimension."Dimension Value Code" := 'Р3110'; LedgerEntryDimension.MODIFY; ЗАВИСАНИЕ!!!! ЗАЦИКЛИВАНИЕ!!!! UNTIL LedgerEntryDimension.NEXT=0; Если да, то переназовите переменную и добавте LedgerEntryDimension.RESET в начале |
|