|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Gmc
![]() Была похожая проблема, обрати внимание на CU 14800 функцию MoveLines.
Я переделал так: WITH PayrollJnlLine DO BEGIN RESET; SETRANGE(Template,Template); SETRANGE("Batch Name","Batch Name"); JournalDimension.RESET; JournalDimension.SETRANGE("Table ID",14820); JournalDimension.SETRANGE("Journal Template Name",Template); JournalDimension.SETRANGE("Journal Batch Name","Batch Name"); IF IncludCurLine THEN SETFILTER("Line No.",'>=%1',"Line No.") ELSE SETFILTER("Line No.",'>%1',"Line No."); IF FIND('+') THEN BEGIN REPEAT PayrollJnlLine2 := PayrollJnlLine; PayrollJnlLine2."Line No." := "Line No." + 10000; PayrollJnlLine2.INSERT; JournalDimension.SETRANGE("Journal Line No.","Line No."); IF JournalDimension.FIND('+') THEN REPEAT JournalDimension2 := JournalDimension; JournalDimension2."Journal Line No." := PayrollJnlLine2."Line No."; // JournalDimension.DELETE; JournalDimension2.INSERT; // UNTIL JournalDimension.NEXT(-1) = 0; // UNTIL JournalDimension.FIND('+'); DELETE(TRUE); // UNTIL NEXT(-1) = 0; UNTIL FIND('+'); END; END; IF FIND('+') THEN BEGIN REPEAT ... ... UNTIL FIND('+'); END в приведенном примере будет всего одна итерация насколько я понимаю! |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
// UNTIL NEXT(-1) = 0;
вы предлагаете поменять на UNTIL FIND('+'); Вы для какой версии приводите код? Да, хотя я уже сомневаюсь что только это, щас ещё перепроверю. |
|
![]() |
#3 |
Участник
|
|
|