Добрый день, уважаемые! Помогите решить следующую задачу. Для корректного отражения в "Журнале с/ф" необходимо автоматизировать процесс заполнения поля "ТекстЗглДокум" в FI - документе (вид "ZK"), при проведении в модуле ММ корректировочного с/ф. Заполняем "ТекстЗглДокум" значением вида NNNNNNNNNNGGGG, где номер соответствующего FI - документа фактуры, первичного, к которому корректировка + год фактуры. Поиск начинается с анализа данных из материальной позиции документа "ZK", затем данные записываются в поле BKPF-BKTXT в замещении. Программный код для user-exit:
form U180 . * 1 Из корр. FI - фактуры, в шапке определяю номер соответствующей * корректировочной ММ - фактурыи и год. belnr_mm_k = bkpf-AWKEY(10). gjahr_mm_k = bkpf-AWKEY+10(4). * 2 Определяю номер накладной в ММ. * По заказу, позиции в заказе, году и номеру ММ-документа фактуры * и номеру и году ММ - документа поступления * определяю номер накладной в ММ. EBELN_ = bseg-ebeln. ebelp_ = bseg-ebelp. lfgja_ = bseg-xref3(4). lfbnr_ = bseg-xref3+4(10). SELECT SINGLE xblnr FROM ekbe INTO xblnr_ WHERE EBELN EQ EBELN_ AND ebelp EQ ebelp_ AND gjahr EQ gjahr_mm_k AND belnr EQ belnr_mm_k AND lfgja EQ lfgja_ AND lfbnr EQ lfbnr_ . IF Sy-subrc = 0. * 3. Если найдено, определяю номер первичной ММ - фактуры. * По заказу, позиции в заказе, году и номеру ММ-накладной * определяю номер первичной ММ - фактуры, не равный номеру корр ММ-фактуры. SELECT SINGLE belnr gjahr FROM ekbe INTO (belnr_mm_f, gjahr_mm_f) WHERE EBELN EQ EBELN_ AND ebelp EQ ebelp_ AND belnr NE belnr_mm_k AND bewtp EQ 'Q' AND xblnr EQ xblnr_ AND lfgja EQ lfgja_ . IF NOT belnr_mm_f IS INITIAL. * 4 По номеру и дате ММ-документа фактуры определяем номер и год *FI-фактуры. CONCATENATE belnr_mm_f gjahr_mm_f INTO nomer. SELECT SINGLE belnr gjahr FROM bkpf INTO (belnr_fi_f, gjahr_fi_f) WHERE AWKEY EQ nomer. IF Sy-subrc = 0. CONCATENATE belnr_fi_f gjahr_fi_f INTO nomer. MOVE nomer TO BKPF-BKTXT. ENDIF. ENDIF. ENDIF.
endform. " U180
В Моменте 1 не вижу позиций из bseg. В Моменте 2 в отладчике BKPF-BKTXT заполняется верно, но в FI документе не появляется. В Моменте 3 нельзя использовать, т.к. проводка из ММ.
Что посоветуете? Спасибо.
|
|