Tanya написал(а):
А кто-нибудь создавал пользовательский метод? Поделитесь опытом.
В транзакции CMOD добавляете в свой проект расширение ARAR0002,
в разделе компоненты активизируете компонент EXIT_SAPLAFAR_002, создаёте код для include ZXAFAU02. Include вызывается в ф. EXIT_SAPLAFAR_002, поэтому в нём можно использовать информацию, передаваемую через параметры этой ф-ции. Среди важных параметров обязательно надо рассмотреть следующие: I_BEZWRT - сумма, которую надо самортизировать, I_ANLB - параметры амортизации, в т.ч. начало амортизации и код амортизации, I_AFABE,
T_ANEP (в т.ч T_ANEP-bwasl).
Функция вызывается, чтобы рассчитать, какую часть суммы I_BEZWRT надо самортизировать за период. Длительность периода - I_AFAP-PERAFAGW (если в настройке кода амортизации указали, что расчёт по дням, то в I_AFAP-PERAFAGW будут дни). Начало периода определяется в зависимости от операции, например, для выбытия или оприх зад числом это может быть I_ANLB-AFABG, для поступления или при редактировании карточки - t_anep-bzdat. Рассчитанная в соответствии с вашим алгоритмом списываемая сумма возвращается через параметр E_AFABTR.
Среди других парметров интересны i_afap-rperbeg - начало периода, i_afap-rperend - конец периода, но не уверен, что ими можно воспользоваться при операции перерасчёта амортизации.
Поставьте break в include, и исследуйте содержимое парметров при разных операциях: создании/редактировании карточки, поступлении, оприход задним числом, при входе в проводник, при расчёте амортизации, при перепланировании амортизации.