본문 바로가기

SAP CO/깊숙한 개념

배부하지 않음(Not Distributed)과 배부되지 않음(Not Allocated) - 2

 

2021.10.16 - [SAP CO/깊숙한 개념] - 배부하지 않음(Not Distributed)과 배부되지 않음(Not Allocated) - 1

 

배부하지 않음(Not Distributed)과 배부되지 않음(Not Allocated) - 1

결산이 덜 된 건 아닌가요? 간혹 자재원장에 '배부하지 않음', '배부되지 않음'이란 항목이 보일 때가 있다. 이게 뭔지? 얼핏 보면 결산이 덜 된 건 아닌지 의심이 든다. 이게 다 뭔가? 배부하지 않

ckm3.tistory.com

 

위 글에서 이어지는 글이다. 이 글에서는 재공품 재평가(WIP Revaluation)에 대한 기능도 함께 설명한다.

 

 

Not Distributed, Not Allocated를 뭐라고 번역해야 할까?

 

 

이번에는 Not Allocated에 대해서 살펴보자. 과거 버전에서는 Not Distributed를 '배부하지 않음'으로, Not Allocated를 '배부되지 않음'이라고 번역했었는데 잘 와닿으시는지?

 

정말 적당한 번역어를 모르겠다. 굳이 한국말로 기능을 표현해보면 Not Distributed는 '누적재고에 배부 불가', Not Allocated는 '후속 오브젝트에 배부 불가' 정도로 말할 수 있겠다고 본다.

 

Not Distributed가 누적재고에 배부를 하지 못해서 발생한다는 건 지난 번 글에서 살펴봤다. 이건 자재 그 자신에게만 발생한 트랜잭션으로, 다른 오브젝트에 전달할 필요가 없는 금액이다.


Not Allocated는 이와 달리 특정 자재가 어디론가 출고 되었을 때 그 후속 목적지를 찾지 못할 때 생긴다. 출고 되었을 때의 후속 목적지란 게 무슨 말일까? 일반적으로 다음과 같은 카테고리로 구분할 수 있다.

  • 판매를 위해 출고된 경우: 매출원가 계정
  • 생산을 위해 출고된 경우: 완성품이나 재공품 자재
  • 타계정 출고된 경우: 연구개발비, 판관비 등 회계 계정
  • 타 플랜트로 재고 이전 출고된 경우: 재고자산

 

원재료 출고 시 후속 오브젝트가 연결된 모습

 

결론부터 얘기하면 Not Allocated는 위 그림에서처럼 출고가 되었으나 그 후속 오브젝트인 완성품이 아직 입고되지 않았거나, 타계정 출고 시 차이금액을 전달하지 않도록 세팅된 상태에서 발생한다.


SAP에서 표준원가를 사용하는 자재의 전표는 월중 해당 자재 마스터에 업데이트된 표준원가를 참조하여 발생한다. 위 예시처럼 판매출고에서 발생하는 매출원가, 생산출고에서 발생하는 재료비, 타계정 출고에서 발생하는 연구개발비는 모두 표준원가인 200,000으로 전표 처리된다.

 

월중에 표준원가로 생겼으면 월말에는 실제원가를 계산하고 차이금액을 배부해주게 되는데 이 차이금액이 갈 곳이 없다면 어떻게 될까? 예를 들어 특정 완성품을 생산하기 위해 원재료를 표준원가 200,000으로 출고했고 차이금액이 40,000이 발생했는데 이 금액을 전달 받을 완성품이 입고되지 않았다면? 그럼 이 금액은 어디에 보내야 할까? 갈 곳이 없다.

 

이렇게 갈 곳이 없을 때 발생하는 게 Not Allocated다. 예시를 들어 살펴보자.

 

 


 

 

1. 생산을 위해 출고된 경우 완성품이 입고되지 않았을 때

 

우선 일반적인 케이스부터 알아보자.

 

T-CODE: CKM3(자재원장 조회) 차이금액 롤업

 

위 그림처럼 자재원장 결산이 일어나면, 상위자재를 생산하기 위해 투입된 하위자재의 차이금액은 상위자재으로 전달된다. 위 그림을 보면 하위자재인 초콜릿 덩어리(BC30020)의 누적재고에 쌓인 차이금액은 -38,507,410이다. 이 금액이 소비와 기말재고의 수량기준으로 배부되어 소비에는 -35,006,736이, 기말재고로는 -3,500,674가 각각 나눠먹었다. 이 초콜릿 덩어리는 상위자재인 초콜릿 바(BC90010)를 생산하는 데 투입됐으므로 초콜릿 바의 제조원가에도 전달되어 계산된다. 이를 차이금액 롤업이라고 한다. 이걸 회계전표 형태로 보면

 

 

차이금액 롤업의 분개 방식

 

이런 식으로 정리된다. 내가 CO를 처음 배울 때 이 부분이 장벽이었다. ECC 버전에서는 특히 전표 라인을 자재코드별로 나누지 않고 요약하여 표시하게끔 세팅한 경우가 많아, 도무지 T-CODE: CKM3에서 보이는 화면과 회계전표를 연결시켜 이해하기 어려웠었다. 이런 어려움을 겪고 있는 분이라면 이 그림만 잘 이해해도 M/L 차이 정산 이해에 큰 도움이 될 거라고 본다.

 

아무튼 위 그림과 같은 상태가 일반적인 결산 모습이다. 그런데 이와 다르게 하위자재 소비로 배부된 금액을 전달할 상위자재가 입고되지 않았다면??? 그럼 어떻게 될까? 직접 예시를 만들어서 살펴보자.

 

 

T-CODE: CO01(생산오더 생성)

 

우선 예시를 만들기 위한 생산오더부터 하나 만들어본다. 지금 이 화면이 여러분의 회사와는 다를 수도 있다. 회사에 따라 오더를 다른 화면에서 만들 거나 또는 아예 오더 자체를 만들지 않는 환경일 수도 있기 때문이다. 지금 테스트 환경은 PP의 Discrete Manufacturing, CO의 Product Cost by Order 방식이다. 그 외 다른 환경 간의 차이는 별도로 정리할 예정이다.

 

아무튼 이 생산오더를 이용하여 반제품, 원자재를 출고시켜보자.

 

 

T-CODE: CO11N(생산오더 Confirmation)

 

생산오더를 확정(Confirmation)하면서 자재투입을 동시에 일으키는 방식으로 처리했다. 초콜릿 바(BC90010)라는 제품을 생산하기 위해 반제품 초콜릿 덩어리(BC30020)와 포장재 포장지(BC40020)를 출고시켰다.

 

 

T-CODE: CKM3(자재원장 조회)

 

자재원장에서 해당 반제품을 보면 생산오더로 출고가 되어 있다. 자, 이대로 결산하면 어떻게 될까? 위 그림에서 보는 것처럼 누적재고에 쌓여 있는 가격 차이는 총 -3,475,674인데, 이 금액이 출고수량인 20KG와 기말재고인 180KG로 배부되는 것이 SAP 스탠다드의 처리 방식이다.

 

그런데 상위제품이 입고되지 않은 지금과 같은 상태라면? 이 상태로 자재원장 결산을 하면 어떻게 될까?

 

 

T-CODE: CKM3(자재원장 조회)

 

바로 이런 경우에 Not Allocated가 생긴다. 소비로 보내야할 차이금액인 -347,567을 보낼 데가 없는 것이다.

 

 

이처럼 차이금액을 보내고 싶어도 상위자재에는 그에 상응하는 생산입고가 없기 때문에 보낼래야 보낼 수가 없는 것이다.

 

 

 

회계계정으로 표시하면 이렇다. 기초에 전월 결산에 따라 실제원가로 계산된 반제품 재고금액을 다시 표준원가로 돌려주는 전표(반제품 3,476,674 / M/L차이정산 3,475,674)가 있고, 이 금액을 다시 결산 시점에 생산출고 수량과 기말재고 수량에 따라 배부해줘야 한다. 그런데 여기서 생산출고 수량에 해당하는 차이금액은 해당 상위 제품이 입고되지 않았으므로 보낼 수가 없다. 따라서 이 경우 M/L차이정산이란 계정에 Not Allocated된 347,567만큼 잔액에 남게 된다.

 

이렇게 남은 금액은 어떻게 해야 할까? 당기비용처리가 맞을까? 실제로 이렇게 하는 회사들도 있다.

 

그렇지만 이렇게 생각해보면 어떨까? 생산오더가 발생했고 하위자재가 투입되었는데 아직 생산입고가 되지 않은 것이라면... 이게 바로 재공품이 아닌가? 그렇다면 이 차이금액은 투입된 재료비와 함께 재공품으로 인식되어야 하는 금액이 아닌가? 만약 당기비용처리했다면 다음 달에 생산입고되었을 때 이 차이금액은 빠진 채 제조원가가 계산된다. 만약 이 생산입고된 제품이 오랜 기간 판매되지 못한다면 회사의 재고자산으로 오래 남을 텐데, 이 차이금액은 거기에 포함되지 못하고 전기에 비용처리된 형태가 될 것이다.

 

그렇다면 어떻게 하는 게 좋을까? 이럴 때 쓰는 기능이 바로 재공품 재평가이다.

 

 


 

2. 재공품 재평가 세팅

우선 필요한 세팅부터 해보자. T-CODE: OMXW로 간다.

 

 

T-CODE: OMXW(실제원가의 WIP 활성화)

 

활성화에 체크하고 시작기간을 입력하면 된다.

참고로 과거 ECC 버전에서는 체크만 한다고 되지 않고 별도의 Password를 입력해야 가능했다.

 

과거에는 이렇게 비밀번호 'WPSOLUTION'을 넣어야 했다.

 

S/4HANA 버전에는 이럴 필요가 없다. 그냥 체크표시하고 활성화면 하면 된다. 다음으로 재공품 재평가와 연결된 자동계정지정 세팅을 한다. (자동계정지정 세팅을 통해 사용자가 계정코드를 직접 입력하지 않아도 특정 트랜잭션에 대한 회계전표를 생성할 수 있다) T-CODE: OBYC로 들어간다.

 

T-CODE: OBYC(자동계정지정)

 

거래키 WPM에 재공품 B/S 계정을 연결한다. 거래키 WPM은 차이금액을 재공품에 전달하여 재공품에 가산해주기 위한 것이다. 기존에 사용하던 재공품 계정과 동일한 계정을 써도 되고 다른 계정을 써도 된다. 여기서는 동일한 B/S 계정으로 했다.

 

T-CODE: OBYC(자동계정지정)

 

재공품을 취소할 때의 상계 계정을 지정한다. 이건 WPM에 대한 상계 계정이다. 일반적인 재공품 대체에 대한 B/S 계정과 P/L 계정 설정은 T-CODE: OKG8에서 한다.

 

T-CODE: OKG8(WIP 계산 및 결과분석의 전기 규칙) 재공품에 대한 B/S 계정과 P/L 계정은 원래 여기서 세팅한다.

 

 

재공품 계정을 세팅하는 방법과, M/L 차이계정의 재공품 재평가를 위한 계정을 세팅하는 방법은 다르다. (WPA, PRA는 액티비티에 대한 거래키인데 이건 M/L Actual Costing 세팅을 어떻게 하느냐에 따라 쓸 수도 있고 안 쓸 수도 있다)

 

세팅은 여기까지가 끝이다.

 

 


 

3. 재공품 재평가 수행

 

우선 생산입고 대신에 재공품 계산을 해보자.

 

T-CODE: KKAX(재공품 계산: 개별처리) 일반적으로 결산 시에는 여러 오더를 한꺼번에 처리해야 하므로 이 T-CODE보다는 KKAO를 통해 일괄 처리할 것이다.

 

T-CODE: KKAX의 결과 화면. 계산된 재공 금액이 표시된다.

 

 

T-CODE: KKAX로 오더 정산을 하여 재공품을 계산하고 전표 생성한다. 참고로 우리 환경은 WIP at Actual로, 오더 차변에 쌓인 금액이 모두 재공품 금액으로 계산된다. WIP at Target 방법이라면 재고 수량에 사전원가(표준원가나 예비원가 등)를 곱하여 계산한다.

 

 

T-CODE: FB03(전표 조회) 재공품

 

이제 이 상태에서 자재원장 결산을 하면 아까와는 달리 하위자재의 차이금액이 전달될 곳이 있기 때문에 Not Allocated는 생기지 않을 것이다. T-CODE: CKMLCP로 가서 결산해보자.

 

 

T-CODE: CKMLCP(자재원장 결산) 왼쪽 그림은 과거 ECC 버전이고 오른쪽이 S/4HANA 버전이다. 과거 버전과 달리 단일레벨 가격결정, 다중레벨 가격결정, 소비 재평가, 재공품 재평가 단계가 모두 '정산'이라는 한 단계로 축약됐다.

 

여기서 정산까지 수행하고 나면

 

T-CODE: CKM3(자재원장 조회)

 

이렇게 'WIP 생성'이란 항목이 생기며 Not Allocated였던 금액이 'WIP 구성 재평가'라는 항목으로 배부된다.

 

T-CODE: FB03(전표 조회) 누적재고의 차이금액이 재공품과 반제품 기말재고로 배부된 모습이다.

 

전표 분개를 정리하면 이렇다.

 

 

Not Allocated 대신에 재공품으로 갔다고 보면 된다. 따라서 위 그림의 재공품 기말잔액은 3,012,855 - 347,567 = 2,665,288이 된다.

 

T-CODE: FAGLB03(계정잔액 조회)

 

 


 

4. 소비 재평가 기능을 사용하지 않을 때도 Not Allocated가 발생

 

매출원가나 타계정 출고에 대해서 소비재 평가 기능을 사용하지 않을 때도 Not Allocated는 발생한다. 소비 재평가를 사용하지 않으면 차이 금액을 해당 원본 계정인 매출원가나 타계정 출고로 전달할 수 없다.

 

과거 버전에서 소비 재평가 기능을 통해 배부되지 않음을 정리하는 모습

 

 

그런데 이 부분은 S/4HANA부터 소비 재평가 단계도 '정산'이라는 단계 안으로 흡수되면서 그냥 필수가 됐다. 예전에는 회사의 선택에 따라 소비 재평가를 할지 말지를 정할 수 있었는데 이제는 최소한 자재원장 안에서는 소비 재평가는 항상 일어난다. 다만 결산 전표를 생성할 때 소비 재평가분을 따로 처리할지 말지를 고를 수 있을 뿐이다.

 

T-CODE: CKMLCP(자재원장 결산)에서 '정산' 단계의 파라메터 편집. 이 부분은 남아있으므로, 자재원장에서는 소비 재평가를 하되 결산 전표에서는 제외시키는 건 가능하다.

 

S/4HANA부터는 소비 재평가 유무에 따른 Not Allocated는 더 이상 발생하지 않으므로 따로 길게 설명하진 않겠다. 이 경우도 논리는 같다. 후속 오브젝트에 지정이 불가한 상태기 때문에 발생하는 거다.

 

 


 

5. 결론

 

 

결론적으로 둘을 비교하면 이렇다. Not Distributed는 시스템 오류가 아니다. 회사에 선택에 따라 해당 차이금액을 자산화할 것인지 비용화할 것인지 정하면 된다.

 

Not Allocated는 회사 정책에 따라 다르다. 만약 SAP의 재공품 계산 기능을 사용하지 않고 재공품 없이 별도 반제품 코드로 결산하는 회사라면 Not Allocated의 발생은 곧 생산입고의 누락을 의미한다. 따라서 생산 부문에서 처리가 덜 된 부분을 찾아서 수행해줘야 한다. 이런 게 CO 결산 시점에 뒤늦게 발견되지 않도록 사전에 모니터링할 수 있는 프로그램이나 프로세스를 갖추는 게 좋다.

 

재공품에 투입된 경우나 타계정 출고인 경우에는 재공품 재평가, 소비 재평가를 수행해줘야 한다. 각각의 사용 여부는 회사의 선택에 따라 세팅할 수도 있고, 안 할 수도 있다. 만약 세팅하지 않는다면 해당 차이금액은 전액 비용화된다.

 

재공품 재평가를 사용하면 투입된 하위자재의 차이금액도 비용화되지 않고 재공품으로 자산화된다. 그리고 차월 결산 시점에 생산입고되면 해당 금액도 함께 제조원가에 포함된다. 따라서 이게 더 정확한 방식이라고 개인적으로 생각한다.

 

소비 재평가를 사용하면 해당 자재의 차이금액이 원본계정인 매출원가, 판관비, 기타 계정에 전달된다. 사용하지 않는다면 어떤 부분이 매출원가이고 어떤 부분이 판관비인지 기타 계정인지 알 수 없게 된다. 결국 전액 매출원가로 보는 게 최선인데 이런 처리로 인해 의사결정에 왜곡을 일으킬 수 있다. 따라서 소비 재평가를 사용해서 정확한 원본 계정을 찾아가도록 선택하는 게 좋다고 본다.

 

다만 이 경우 생산부문에 사용된 타계정의 경우 다시 제조원가로 투입되는 순환 오류가 발생할 수 있다. 이 경우는 해당하는 이동유형을 별도의 이동유형그룹으로 묶어 소비 재평가 집계 계정(COC)으로 별도 정리한다. 소비 재평가 집계 계정은 어쩔 수 없이 매출원가로 보는 게 최선이라 본다.