"Быстрый" перебор документов по счету за диапазон дат + некоторые доп.возможности
Скачать (ARJ-файл; Размер - 5564)Обсудить в форуме
Описание
Часто нужно просмотреть по счету документы в требуемом диапазоне дат. Задача простая, но когда уж совсем становится лень прописывать проверки и тд и тп, стоит воспользоваться следующим классом: AccountInfo (для рублевых счетов/документов) или AccountCInfo (для валютных счетов/документов).
Перебор идет по архивным документам (arhdoc.dbt, arhdoc$.dbt) и документам текущего дня (document.dbt, documnt$.dbt). "Следы" архивных проводок (Result_Carry == 23) исключаются из перебора. Результат помещается в структуру архивного документа, в т.ч. и документы текущего дня - в этом случае коректно заполняется поле Date_Carry значением {curdate}.
Перебор идет по архивным документам (arhdoc.dbt, arhdoc$.dbt) и документам текущего дня (document.dbt, documnt$.dbt). "Следы" архивных проводок (Result_Carry == 23) исключаются из перебора. Результат помещается в структуру архивного документа, в т.ч. и документы текущего дня - в этом случае коректно заполняется поле Date_Carry значением {curdate}.
Текст примера
Пример использования: import globals, acc_info; /* {curdate} объявляется в globals ! */ var ai=AccountInfo(); ai.Clear(); ai.SetDateRange( date( 1, 11, 2005 ), {curdate} ); ai.getAccountInfo( "40702810900020000221" ); while ( ai.nextDocCr() ) /* по документам где в кредите (Real_Receiver) стоит требуемый счет */ if ( substr( ai.rDocBuffer.rec.Real_Payer, 1, 5 ) == "42301" ) println( ai.rDocBuffer.rec.Payer, " -> ", ai.rDocBuffer.rec.Date_Document, " -> ", ai.rDocBuffer.rec.Sum ); end; end; ai.rewindDoc(); while ( ai.nextDocDb() ) /* по документам где в дебете (Real_Payer) стоит требуемый счет */ if ( substr( ai.rDocBuffer.rec.Real_Receiver, 1, 5 ) == "42301" ) println( ai.rDocBuffer.rec.Receiver, " -> ", ai.rDocBuffer.rec.Date_Document, " -> ", ai.rDocBuffer.rec.Sum ); end; end; /* дополнительно */ println( ai.rClient.rec.Name_Client ); /* доступ к информации клиента счета */ println( ai.rAcc.rec.Account ); /* доступ к информации самого счета */ ai.Clear(); /* все сбросили в исходное состояние