솔루션 홈
원가 결산

SAP 제조원가명세서 — CO 원가와 FI 계정이 맞는지 한 줄로 확인하기

원재료비에서 매출원가까지의 흐름을 원가요소별로 세우고, 관리회계로 집계한 금액이 재무회계 계정합계와 어긋나지 않는지를 화면에서 바로 판정하는 원가결산 조회 화면입니다.

제조원가명세서는 숫자가 많은 표지만, 읽는 방법은 하나입니다. 위에서 아래로 원가가 흘러갑니다. 원재료와 부재료를 사서 쓰고, 사람이 일하고, 공장이 돌아가고, 일부는 밖에 맡깁니다. 그 합이 당기총제조비용이 되고, 재공품과 제품 재고의 증감을 거쳐 마지막에 매출원가로 빠져나갑니다.

이 흐름을 관리회계에서 아무리 정교하게 쌓아 올려도, 마지막에 총계정원장의 매출원가와 맞지 않으면 쓸 수 없는 숫자가 됩니다. 그래서 SAP 표준 재무제표 버전과 ACDOCA 잔액을 그대로 이어받아 명세서를 만들고, 그 아래에 CO·FI 차액을 계산하는 [검증] 행을 붙여 OpenUI5 화면으로 확장한 것이 ZLCO06050입니다. 실제 구동 화면 6종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 재무제표 버전 — T011 · T011T 설정을 그대로 조회 파라미터로 사용
  • 원가요소그룹 — SETLEAF · SETHEADERT 기반 그룹 구조와 레벨 체계 유지
  • 잔액 데이터 — ACDOCA · BKPF 에서 집계, 표준 잔액 조회 로직에 대응
  • 연계 화면 — 금액은 G/L 개별항목(FAGLL03H), 계정그룹 ID는 원가요소그룹(KDH3)으로 이어짐
항목내용
업무 영역관리회계(CO-PC) · 제조원가명세서 조회와 CO·FI 대사
Namespacezui5.cogm
셸 구조조회조건 영역(우측 조회) + 검증 상태 툴바 + 레벨 소계 테이블
화면 수조회 화면 1개 + 드릴다운 연계 안내
SAP 표준 기능 근거T011 · ACDOCA · FAGLL03H · KDH3
성격조회형(Read-Only) — 전기와 결산 처리는 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 6종 둘러보기

회사코드와 재무제표 버전, 기간을 넣고 조회하면 원가요소별 명세가 펼쳐집니다 → 툴바의 CO·FI 대사 결과로 숫자를 믿어도 되는지 먼저 확인하고 → 레벨 그룹화와 가격차이 필터로 구간을 좁혀 들어가 금액 셀에서 개별항목으로 추적합니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

Main.view.xml
월별 표시 — 전체 라인과 1~12월 컬럼
월별 표시 — 전체 라인과 1~12월 컬럼 — 기본 조회 화면입니다. 합계 옆으로 1월부터 종료월까지 컬럼이 펼쳐지고, 레벨에 따라 항목이 들여쓰기됩니다. 툴바 오른쪽에 CO·FI 대사 결과가 함께 표시돼 숫자를 믿고 읽어도 되는지 먼저 알려 줍니다.
그룹화 필터
0레벨 그룹화 — 원가요소 소계와 매출원가 대사
0레벨 그룹화 — 원가요소 소계와 매출원가 대사 — 하위 계정을 접고 원가요소 소계만 남긴 화면입니다. 원재료비·부재료비·노무비·제조경비·외주가공비가 당기총제조비용으로 모이고, 재고 증감을 거쳐 매출원가까지 이어지는 흐름이 한눈에 들어옵니다.
가격차이 필터
가격차이 필터 — 원가차이 라인만 표시
가격차이 필터 — 원가차이 라인만 표시 — 표준원가와 실제 금액의 차이가 잡힌 라인만 골라 봅니다. 차이가 어느 원가요소에서 얼마나 났는지가 바로 드러나, 구매 단가와 소비량 중 어느 쪽을 볼지 정할 수 있습니다.
누계 표시
누계 표시 — 당기/전기 및 Net 금액 비교
누계 표시 — 당기/전기 및 Net 금액 비교 — 당기와 전기를 나란히 놓고, 각각 원가차이를 걷어낸 Net 금액까지 함께 보여 줍니다. 전년 대비 원가 구조가 어떻게 달라졌는지 비교할 때 쓰는 화면입니다.
드릴다운
금액 셀 드릴다운 — G/L 개별항목 연계
금액 셀 드릴다운 — G/L 개별항목 연계 — 금액 셀을 고르면 그 숫자를 만든 전표로 가기 위한 조건(원가요소그룹·회사코드·전기일 기간)이 안내됩니다. 명세서의 한 줄에서 표준 개별항목 조회로 바로 이어집니다.
매출원가 구간
하단 매출원가 구간 — 제품재고 증감과 계정합계
하단 매출원가 구간 — 제품재고 증감과 계정합계 — 기초제품에 당기제품제조원가를 더하고 기말제품을 빼 매출원가를 만드는 구간입니다. 그 아래 계정합계와 [검증] 행이 붙어, 두 값이 같은지가 표 안에서 끝납니다.

조작 방법

  1. 회사코드재무제표 버전을 넣습니다. 둘 다 필수이며 기본값은 1000 · KRI1 입니다.
  2. 표시 방법을 고릅니다. 월별(기본)은 회계연도와 종료월을, 누계는 당기·전기 연도와 기간을 각각 입력받습니다. 선택에 따라 입력 필드와 출력 컬럼이 함께 바뀝니다.
  3. 조회조건 입력필드에서 Enter 를 눌러도 바로 조회됩니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
  4. 툴바 오른쪽의 검증 상태를 먼저 봅니다. 일치(차액 0)면 아래 숫자를 그대로 읽어도 됩니다.
  5. 그룹화 필터로 보는 깊이를 바꿉니다. 전체 / 0레벨 / 1레벨 / 2레벨 / 가격차이 다섯 가지입니다.
  6. 0금액 라인 제외 옵션으로 빈 줄을 걷어냅니다. [검증] 행은 항상 남습니다.
  7. 금액 셀을 선택하면 G/L 개별항목 연계 조건이, 계정그룹 ID 를 누르면 원가요소그룹 연계가 안내됩니다.
  8. 결과는 CSV 다운로드로 내려받습니다. 현재 표시 중인 컬럼 구성 그대로 담기고 UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.

원가 흐름과 검증 산식

명세서의 각 구간은 아래 식으로 이어집니다. 재고 라인은 전월 기말이 당월 기초로 이월되므로, 월별 금액의 합과 연간 누계가 어긋나지 않습니다.

원재료비 / 부재료비 = 기초재고 + 당기매입 + 타계정입고 − 타계정출고 ± 원가차이 − 기말재고

당기총제조비용   = 원재료비 + 부재료비 + 노무비(변동·고정) + 제조경비 + 외주가공비

당기제품제조원가 = 당기총제조비용 + 기초재공품 + 타계정입고 − 타계정출고 ± 원가차이 − 기말재공품

매출원가         = 기초제품 + 당기제품제조원가 + 타계정입고 − 타계정출고 − 기말제품

[검증]           = 매출원가(CO 산출) − 매출원가(FI 계정합계)   →  0 이어야 함

검증 행을 표 안에 넣은 이유

CO 와 FI 를 맞춰 보는 일은 보통 명세서를 뽑은 뒤 총계정원장을 따로 열어 눈으로 대조하는 작업이었습니다. 그 대조를 같은 표 마지막 줄로 옮기면, 조회하는 순간 이번 달 원가가 닫히는지 아닌지가 결정됩니다. 차액이 0이 아니면 그 아래 작업을 계속할 이유가 없다는 것도 함께 알려 주는 셈입니다.

Net 금액

Net 은 원가차이(가격차이) 라인을 제외한 순액이며 소계까지 같은 기준으로 다시 집계됩니다. 표준원가와 실제 매입가의 차이를 걷어내면 소비량 기준의 원가 흐름만 남아, 차이 요인과 소비 요인을 나눠 볼 수 있습니다.

조회조건

필드파라미터설명
회사코드P_BUKRS필수, 기본값 1000
재무제표 버전P_VERSN필수, 기본값 KRI1
표시 방법P_DIS_AC · P_DIS_MO누계 표시 / 월별 표시(기본). 입력 필드와 출력 컬럼이 함께 전환
회계연도 · 기간P_GJAHR · S_MONAT월별은 회계연도 + 종료월, 누계는 당기·전기 연도와 기간을 각각
0금액 라인 제외P_ZERO금액이 모두 0 인 라인 숨김. 검증 행은 예외
그룹화 필터화면 옵션전체 / 0레벨 / 1레벨 / 2레벨 / 가격차이

결과 컬럼

컬럼참조표시 모드 · 비고
계정그룹 IDSETID공통. 클릭하면 원가요소그룹(KDH3) 연계
LevelLEVEL공통. 0 · 1 · 2 레벨에 따라 들여쓰기
항목 텍스트TEXT공통
당기금액 · 당기(Net)TOTAL_CUR · TOTAL_CUR2누계 표시
전기금액 · 전기(Net)TOTAL_PRV · TOTAL_PRV2누계 표시
합계TOTAL월별 표시
1월 ~ 12월TOTAL_TSL01 ~ TOTAL_TSL12월별 표시. 종료월 이후 컬럼은 자동 숨김
통화WAERSKRW 고정

SAP 표준 기능 매핑

이 화면은 원가 전기나 결산 처리를 대체하지 않습니다. 재무제표 버전과 원가요소그룹 설정, 잔액은 표준을 그대로 읽고, 그 위에 명세서 서식과 대사 판정을 얹어 확장하는 구성입니다.

표준역할이 화면에서의 확장
T011 · T011T재무제표 버전 정의버전을 조회 파라미터로 받아 그 체계대로 명세서 라인을 구성
SETLEAF · SETHEADERT원가요소그룹 구조와 텍스트0·1·2 레벨 소계를 본문에 끼워 넣어 상·하위를 한 화면에서 대조
ACDOCA · BKPF유니버설 저널 잔액월별·누계 두 관점으로 동시에 집계하고 Net 컬럼을 함께 산출
FAGLL03HG/L 개별항목 조회금액 셀에서 해당 조건(원가요소그룹·회사코드·전기일)으로 연계
KDH3원가요소그룹 조회계정그룹 ID 클릭 시 그룹 구조로 연계

도입 시 확인이 필요한 부분

제조원가명세서의 라인 구성은 재무제표 버전과 원가요소그룹 설정에 따라 회사마다 달라집니다. 특히 제조경비와 외주가공의 하위 계정 구성, 타계정 대체(입고·출고) 처리 방식은 프로젝트 표준을 함께 확인해야 합니다. 클래식 환경이라면 잔액 원천이 GLT0·COSP 계열로 갈리므로 집계 로직도 그에 맞춰 조정합니다.

참고 CDS 뷰

운영 서비스로 연결할 때는 유니버설 저널을 원가요소그룹·기간 단위로 집계하고 그룹 텍스트를 붙인 뷰로 서빙하는 구성을 제안합니다.

@AbapCatalog.sqlViewName: 'ZCCOGMBAL'
@EndUserText.label: '제조원가명세서 집계 (Z)'
define view Z_C_COGM_BALANCE
  as select from acdoca as Line
    left outer join setleaf     as Grp     on  Line.racct   = Grp.valfrom
                                           and Grp.setclass = '0102'
    left outer join setheadert  as GrpText on  Grp.setname  = GrpText.setname
                                           and GrpText.langu = 'K'
{
  key Line.rbukrs               as Bukrs,
  key Line.gjahr                as Gjahr,
  key Grp.setname               as SetId,
      GrpText.descript          as SetText,
      // 기간별 금액을 12개 컬럼으로 펼쳐 월별 표시에 대응
      sum( case when Line.poper = '001' then Line.hsl else 0 end ) as TotalTsl01,
      sum( case when Line.poper = '002' then Line.hsl else 0 end ) as TotalTsl02,
      // … 003 ~ 012 동일 패턴
      sum( Line.hsl )           as Total
      // 레벨·항목 텍스트는 재무제표 버전(T011) 계층을 붙이는 소비 뷰에서 구성
      // Net 금액은 원가차이 계정을 제외한 동일 집계를 한 벌 더 만들어 사용
}
group by Line.rbukrs, Line.gjahr, Grp.setname, GrpText.descript

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경의 재무제표 버전 계층과 그룹 설정에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 결과 테이블
조회조건sap.m.Input · sap.m.Select · sap.m.RadioButton — 우측 끝에 조회 버튼
결과 테이블sap.ui.table.Table — 라인이 많아 그리드형 테이블 사용
동적 컬럼표시 방법과 종료월에 따라 월 컬럼을 런타임에 숨김·표시
레벨 표현포맷터로 들여쓰기와 소계 행 강조, 금액은 △ 표기
검증 상태sap.m.ObjectStatus — 툴바 우측에 일치/불일치 표시
드릴다운sap.m.Dialog — 연계 조건 안내

월 컬럼을 런타임에 숨기는 이유

9월까지 조회했는데 10~12월 컬럼이 빈 칸으로 남아 있으면 가로 스크롤만 길어집니다. 종료월 이후 컬럼을 감추면 표가 화면 폭에 맞게 줄어들어, 합계와 각 월을 한 눈에 비교할 수 있습니다. CSV 로 내려받을 때도 화면에 보이는 구성 그대로 담깁니다.

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon · lodash · moment
Component.jsUI 상태 모델과 결과 모델 초기화
manifest.json앱 디스크립터 — 앱 ID(zui5.cogm) · ko 로케일
view/Main.view.xml조회조건과 결과 테이블
controller/Main.controller.js조회 · 레벨필터 · 드릴다운 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise 인터페이스)
model/formatter.js금액(△ 표기) · 들여쓰기 · 행 강조
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/cogm.json제조원가명세서 집계 데이터

운영 전환 시에는 ModelMock.read() 내부만 실제 서비스 호출로 바꾸면 화면 로직은 그대로 씁니다.

검증 결과

화면 구성에 쓴 데이터는 위 산식을 12개월 전 구간과 누계·Net 컬럼 모두에서 만족하도록 만들었고, 별도 스크립트로 재계산해 대조했습니다.

검증 항목결과
Level 0 소계 = 하위 라인 합 (12개월 전 구간)통과
당기총제조비용 = 원가요소 6개 합통과
당기제품제조원가 = 총제조비용 + 재공품 증감통과
매출원가(CO 산출) = 매출원가(FI 계정합계), [검증] = 0통과
합계 컬럼 = 월별 누계 (재고 라인 기초·기말 이월 규칙)통과
당기 · 전기 및 Net 컬럼 소계 정합성통과
총 라인 수90 라인 전 항목 통과
화면 렌더링 — 실브라우저에서 조회 → 표시 전환 → 필터 실동작 후 캡처6/6

계정과 금액은 모두 검증용 데이터입니다. 제조경비·외주가공의 2레벨 상세 계정은 대표 계정으로 구성했습니다.

자주 묻는 질문

[검증] 행은 정확히 무엇을 비교하나요?

관리회계 쪽에서 쌓아 올린 매출원가와 재무회계 계정합계로 집계한 매출원가를 뺀 값입니다. 원재료비에서 시작해 재공품·제품 재고 증감까지 반영해 계산한 금액이, 총계정원장의 매출원가 계정 잔액과 같아야 하므로 이 차액은 0이어야 합니다. 0이 아니면 어딘가에서 원가 흐름이 끊겼거나 전기가 누락됐다는 신호입니다.

누계 표시와 월별 표시는 어떻게 다른가요?

누계는 당기와 전기를 나란히 놓고 비교하는 관점이고, 월별은 합계와 1~12월을 한 줄에 펼쳐 어느 달에 금액이 튀었는지 보는 관점입니다. 선택에 따라 입력 필드와 출력 컬럼이 함께 바뀌고, 월별에서는 조회 종료월 이후 컬럼이 자동으로 숨겨집니다.

Net 금액은 무엇을 뺀 금액인가요?

원가차이(가격차이) 라인을 제외한 순액입니다. 표준원가와 실제 매입가의 차이를 걷어내고 보면 실제 소비량 기준의 원가 흐름이 드러나므로, 차이 요인과 소비 요인을 나눠 볼 때 씁니다. 소계까지 같은 기준으로 다시 집계됩니다.

SAP 표준 기능과 어떻게 이어지나요?

재무제표 버전(T011)과 원가요소그룹(SETLEAF) 설정, ACDOCA 잔액은 표준 구조를 그대로 씁니다. 이 화면은 그 위에 제조원가명세서 서식과 레벨 소계, CO·FI 대사 판정을 얹어 조회 관점으로 확장한 것이며, 금액 셀에서 G/L 개별항목(FAGLL03H), 계정그룹 ID에서 원가요소그룹(KDH3)으로 이어지도록 연계 조건을 안내합니다.

원가 결산 대사, 지금 쓰는 SAP 위에서 확장해 보세요

명세서를 뽑은 뒤 총계정원장을 따로 열어 맞춰 보는 대신, 조회하는 순간 차액이 0인지 보이면 결산을 닫는 판단이 빨라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

제조원가명세서매출원가CO FI 대사재무제표 버전ACDOCA원가요소그룹OpenUI5