SAP 공동약정 분류·인식방식 점검 — IFRS 11, 공동영업인지 공동기업인지에 따라 인식 방법부터 갈린다
구조화 여부와 법적 형태를 살펴 비례인식할지 지분법을 적용할지부터 가릅니다
IFRS 11 공동약정(K-IFRS 제1111호)은 두 개 이상의 당사자가 공동으로 지배하는 약정을 구조화 여부와 법적 형태, 계약 조건을 종합해 공동영업(Joint Operation)과 공동기업(Joint Venture) 중 하나로 분류하고, 분류에 따라 서로 다른 방식으로 인식하도록 요구합니다. 공동영업은 자산·부채·수익·비용을 지분율만큼 직접 비례인식하고, 공동기업은 순자산에 대한 지분만 지분법으로 인식합니다. 문제는 분류가 한 번 정해지고 끝나는 것이 아니라, 인식 단계마다 그 분류에 맞는 계산이 제대로 이어지고 있는지를 계속 대사해야 한다는 점입니다.
공동약정을 분류결과(공동영업/공동기업)별로 모아 조회하고, 공동영업은 계정별 비례인식 기준금액과 실제 계상금액을, 공동기업은 지분법 증감표의 계산값과 총계정원장 잔액을 각각 대사하는 화면을 OpenUI5로 확장했습니다. 차이가 있는 약정은 점검상태를 "점검 필요"로 따로 표시합니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 원장 구조 — 계정별 금액 집계는 표준 총계정원장 라인아이템 구조를 그대로 사용
- 표준 화면 — 총계정원장 라인아이템 조회(FAGLL03) · 계정별 전표 조회(FBL3N) · 계정 잔액 조회(FS10N)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · IFRS 공동약정 |
| 관련 기준서 | IFRS 11 공동약정(K-IFRS 제1111호) |
| Namespace | zui5.jointarr |
| 셸 구조 | 조회조건 영역(우측 조회) + 목록, 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 2종(비례인식/지분법) |
| SAP 표준 T-code | FAGLL03 · FBL3N · FS10N (§7 참고) |
| 데이터 연동 방식 | OData V2 서비스 연동(조회조건은 $filter 로 전달) |
| 성격 | 조회·집계·대사형 — 분류·최종 판단은 회사·감사인 몫 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회계연도·기간·분류결과·점검상태를 넣고 조회하면 약정 목록이 뜹니다 → 행의 상세를 누르면 분류결과에 따라 비례인식 명세 또는 지분법 증감 명세가 다이얼로그로 열립니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회계연도 · 기간을 입력하고, 필요하면 분류결과(공동영업/공동기업) · 점검상태(정상/점검 필요)를 선택합니다.
- 입력 필드에서 Enter 키를 누르거나 조회조건 영역 오른쪽 끝의 조회 버튼을 누르면 재조회됩니다. 초기화 버튼은 조건을 비웁니다.
- 분류결과·점검상태를 "전체"로 두면 해당 조건 없이 조회합니다.
- 목록에서 약정 행의 상세 아이콘을 누르면 분류결과에 맞는 명세 다이얼로그가 열립니다.
분류·인식방식 판정 로직
구조화 여부와 법적 형태·계약 조건을 바탕으로 이미 결정된 분류 결과(공동영업/공동기업)를 조회하고, 분류별 인식방식에 맞는 대사가 맞아떨어지는지 점검합니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 비례인식 기준금액(약정장부 100%×지분율) = 실제 계상금액 | 정상 | 추가 조치 불필요 |
| 비례인식 기준금액 ≠ 실제 계상금액 | 점검 필요 | 계상 근거·기간 반영 여부를 재확인 |
| 지분법 증감표 계산 기말잔액 = 총계정원장 잔액 | 정상 | 추가 조치 불필요 |
| 계산 기말잔액 ≠ 총계정원장 잔액 | 점검 필요 | 지분법손익·배당·기타조정 반영 여부를 재확인 |
이 화면이 대신 정하지 않는 것
공동영업·공동기업 분류는 계약의 구조와 조건에 대한 회계적 판단의 결과물이며, 이 화면이 자동으로 판정하지 않습니다. 이 화면은 이미 결정된 분류를 바탕으로 인식방식별 대사만 점검하는 도구이며, 분류의 적정성에 대한 최종 판단은 회사와 감사인이 합니다.
비례인식·지분법 증감 처리 단계
| 단계 | 내용 |
|---|---|
| 1단계 | 약정별 분류 결과(공동영업/공동기업)를 확인 |
| 2단계(공동영업) | 약정장부 100% 금액에 지분율을 곱해 비례인식 기준금액 산출 |
| 3단계(공동영업) | 실제 계상금액과 대사해 차이 확인 |
| 2단계(공동기업) | 기초 지분법장부금액에 지분법손익·배당·기타조정을 반영해 기말잔액 산출 |
| 3단계(공동기업) | 계산된 기말잔액과 총계정원장 잔액을 대사해 차이 확인 |
[공동영업] 비례인식 기준금액 = 약정장부 100% 금액 × 지분율
차이 = 실제 계상금액 − 비례인식 기준금액
[공동기업] 기말 지분법장부금액 = 기초 + 지분법손익 + 배당(감소) + 기타조정
차이 = 총계정원장 잔액 − 기말 지분법장부금액(계산)
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 선택 | 4자리 연도(미입력 시 전체) |
| 기간 | 선택 | 3자리 기간(미입력 시 전체), Enter 키로 바로 조회 |
| 분류결과 | 선택 | 전체/공동영업(Joint Operation)/공동기업(Joint Venture) — 전체 선택 시 조건 미전달 |
| 점검상태 | 선택 | 전체/정상/점검 필요 — 전체 선택 시 조건 미전달 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 약정ID · 약정명 | 공동약정 식별 정보 |
| 구조화 여부 · 법적 형태 | 별도기구를 통한 구조화 여부와 법적 형태 |
| 분류 결과 | 공동영업(Joint Operation) / 공동기업(Joint Venture) |
| 지분율 · 파트너사 | 당사 지분율과 상대 파트너사 |
| 점검상태 | 정상 / 점검 필요 |
| (상세) 항목구분·계정 · 100%금액·지분율·인식기준액·계상액·차이 | 공동영업 비례인식 명세 컬럼 |
| (상세) 기간 · 기초·지분법손익·배당·기타조정·기말·총계정원장잔액·차이 | 공동기업 지분법 증감 명세 컬럼 |
SAP 표준 기능 매핑
| SAP 표준 T-code | 연관 기능 |
|---|---|
FAGLL03 | 총계정원장 라인아이템 조회 — 계정별 실제 계상금액·총계정원장 잔액 원천 |
FBL3N | 계정별 전표 라인아이템 조회 — 비례인식 대상 계정 명세 확인 |
FS10N | 계정 잔액 조회 — 지분법 투자계정의 기간별 잔액 확인 |
요구사항 매핑표
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 |
|---|---|---|---|
| IFRS 11 공동약정(K-IFRS 제1111호) | 공동영업·공동기업 분류 | 약정 목록의 분류결과 조회 | 공동약정 마스터 |
| IFRS 11 공동약정(K-IFRS 제1111호) | 공동영업 당사자의 자산·부채·수익·비용 비례인식 | 비례인식 명세 대사 | 총계정원장 계정별 금액 |
| IFRS 11 공동약정(K-IFRS 제1111호) | 공동기업 지분에 대한 지분법 적용 | 지분법 증감표 대사 | 투자계정 원장 |
도입 시 확인이 필요한 부분
약정별 최초 분류(공동영업/공동기업) 판단 근거와 계약 조건 변경 시 재분류 절차는 회사의 계약 관리 프로세스에 맞춰 별도로 확인해야 합니다.
참고 CDS 뷰
운영 서비스로 연결할 때를 가정해 새로 스케치한 집계 뷰 예시입니다(운영 반영 시 권한 체크를 추가해야 합니다).
@AbapCatalog.sqlViewName: 'ZCVJOINTSHR'
define view Z_C_JOINTOP_SHARE as select from bseg
association [1..1] to bkpf as _Header on bseg.bukrs = _Header.bukrs
and bseg.belnr = _Header.belnr
and bseg.gjahr = _Header.gjahr
{
key bseg.belnr as DocumentNo,
key bseg.buzei as ItemNo,
bseg.hkont as AccountCode,
bseg.dmbtr as GLAmount,
_Header.gjahr as FiscalYear,
_Header.monat as Period
}
// 지분법 증감(공동기업)은 별도 엔티티셋으로 관리
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 Toolbar + sap.ui.table.Table |
| 조회조건 | sap.m.Input · sap.m.Select — 우측 끝에 조회 버튼, Enter 키로 즉시 재조회 |
| 약정 목록 | sap.ui.table.Table(약정 엔티티셋 바인딩) — 행 액션 클릭 시 상세 다이얼로그 |
| 상세 | sap.m.Dialog — 분류결과에 따라 비례인식/지분법 sap.m.Table 중 하나만 표시 |
| 공통 처리 | 전역 오류 처리기(ErrorHandler) — 메타데이터·요청 실패를 메시지로 표시 |
서비스 경로는 manifest.json 의 dataSources 에 상대 경로로 선언한 OData V2 모델을
그대로 바인딩하며, 조회조건은 sap.ui.model.Filter 로 조립해 $filter 로만 전달합니다.
분류결과·점검상태를 "전체"로 둘 때는 필터를 아예 생성하지 않습니다.
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon |
Component.js | 컴포넌트 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.jointarr · OData dataSources · ko 로케일 |
view/Main.view.xml | 조회조건 + 약정 목록 |
view/DetailDialog.fragment.xml | 비례인식/지분법 상세 다이얼로그 |
controller/Main.controller.js | 조회·필터 조립·다이얼로그 로직 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액·지분율·점검상태 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
검증 환경 구성 상세는 이 글에서 다루지 않습니다. 운영 전환 시에는 화면과 판정 로직은 그대로 두고 데이터 계층만 실제 서비스 호출에 맞추면 됩니다.
검증 결과
화면 구성에 쓴 데이터는 비례인식 기준금액과 지분법 증감표 계산값의 관계가 항상 검증되도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 대사식 전수 검증(비례인식 기준금액=100%금액×지분율, 지분법 기말=기초+증감) | 통과(계산식 오류 0건, 의도적 예외 3건 별도 표시) |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 필터 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
| 조회 버튼 위치 · sap_horizon 테마 적용 · Enter 키 조회 | 확인 |
| OData 계약 — 동사 경로 미사용, $filter·$orderby 로만 조회조건·정렬 전달 | 확인 |
화면 수치는 모두 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면은 언제부터, 어떤 범위에 사용할 수 있나요?
IFRS 11 공동약정(K-IFRS 제1111호)은 이미 시행 중인 기준서입니다. 이 화면은 별도의 법정 시행일 제한 없이, 회사가 당사자로 참여하는 모든 공동약정(공동영업·공동기업)을 대상 범위로 합니다. 개별 회사의 최초 적용일·경과규정은 별도 확인이 필요합니다.
점검상태가 "점검 필요"로 뜨면 분류가 잘못됐다는 뜻인가요?
아니요. 이 화면은 분류·비례인식·지분법 대사를 돕는 조회·점검 도구이며, 분류의 적정성과 표시된 차이의 원인에 대한 최종 판단은 회사와 감사인이 합니다.
화면에서 보이는 데이터는 실제 운영 데이터인가요?
아니요. 이 글과 화면 캡처에 쓰인 수치는 화면 동작과 대사 로직을 확인하기 위해 구성한 검증용 샘플 데이터이며, 실제 약정·거래처 데이터가 아닙니다.
공동영업인지 공동기업인지 애매한 약정은 화면이 자동으로 정해주나요?
아니요. 이 화면은 이미 결정된 분류 결과를 조회할 뿐 분류 자체를 자동 판정하지 않습니다. 구조화 여부·법적 형태·계약 조건이 상충하는 경우에는 회사의 계약 검토와 감사인 협의를 통해 분류를 확정한 뒤 반영해야 합니다.