SAP 미개시 리스 약정 공시 점검 — IFRS 16, 계약은 맺었지만 아직 시작하지 않은 리스의 약정을 주석에 맞게 밝혔는지 기준 금액과 견줘 보는 결산 화면
계약 단위 기준 약정액 · 공시 누락과 금액 차이 · 개시 후 남은 공시 · 보고기간 후 체결 · 회사가 판단할 계약의 분리 · 합계 대사 — 소개 영상과 실제 화면 6종, 그리고 CDS 코드까지
소개 영상블로그 목차 순서대로 · 자막 포함8개 장면조회 → 조건 좁히기 → 구간 → 유형 → 대사 → 상세
도입 포인트 — 이 앱을 사용해야 하는 이유
결산 때 주석 담당자가 가장 늦게 받는 자료가 “계약은 했지만 아직 시작하지 않은 리스”입니다. 이 계약들은 아직 리스부채로 인식되지 않기 때문에 원장에 흔적이 없고, 계약 관리 파일이나 구매·총무 부서의 메일에만 남아 있습니다. 그래서 주석의 약정 공시는 해마다 누군가의 기억과 엑셀에 기대어 채워집니다. 이 앱은 그 계약 목록을 한 화면에 모아, 주석에 적은 금액이 기준 약정액과 같은지, 이미 개시된 계약의 공시가 남아 있지는 않은지, 개시일이 지났는데 리스부채가 잡혔는지를 계약 단위로 다시 계산해 보여 줍니다.
핵심 포인트 여섯 가지
| 포인트 | 고객이 얻는 것 | 지금 방식이라면 |
|---|---|---|
| ① 계약 단위의 기준 약정액 | 월 고정 리스료와 리스 기간에서 계약마다 총 고정 리스료를 계산하고, 보고기간말 이전에 체결했고 아직 개시 전인 계약만 기준 약정액으로 잡습니다. | 총무·구매가 보내 준 계약 목록에서 담당자가 손으로 골라 합산합니다. |
| ② 공시 금액과 바로 견주기 | 주석에 적은 금액을 계약 옆에 놓고 차이를 계산합니다. 공시가 0인 계약(누락)과 일부만 들어간 계약(금액 차이)이 코드로 갈립니다. | 주석 초안의 합계와 엑셀 합계를 눈으로 맞추고, 차이가 나면 계약을 하나씩 뒤집니다. |
| ③ 개시 뒤에 남은 공시 찾기 | 이미 개시된 계약의 약정 공시가 남아 있으면 리스부채와 이중으로 공시됐을 수 있다고 표시합니다. 개시일이 지났는데 리스부채 인식이 확인되지 않는 계약도 따로 잡습니다. | 작년 주석을 복사해 고치다 보니 개시된 계약이 약정에 그대로 남는 일이 생깁니다. |
| ④ 보고기간 뒤 체결 계약 걸러내기 | 보고기간 말 이후에 체결한 계약이 약정으로 공시돼 있으면 점검 대상으로 올립니다. | 체결일이 결산 뒤인지는 계약서를 열어 봐야 알 수 있습니다. |
| ⑤ 판단이 필요한 계약은 확정하지 않는다 | 개시 전에 해지할 수 있는 계약은 약정에 해당하는지 회사가 먼저 판단해야 하므로 “확인 필요”로만 표시하고 기준 금액을 단정하지 않습니다. | 담당자마다 해석이 달라 같은 계약이 해마다 다르게 처리됩니다. |
| ⑥ 합계가 맞는지 매번 대사 | 구간·유형·계약 합계가 서로 맞는지, 연도별 일정 합계가 총 고정 리스료와 같은지를 화면이 매번 검산합니다. | 합계가 어긋나면 어느 계약 때문인지 찾는 데 하루가 갑니다. |
사례로 보는 효과 — 공시가 비어 있던 계약 네 건
사례 자료는 가상의 두 회사(1000·2000)가 가진 계약 28건입니다. 보고기간말 현재 개시 전이라 약정 공시 대상인 계약의 기준 약정액은 합계 19,543백만 원, 주석에 적힌 공시 금액은 20,197백만 원으로 총액만 보면 654백만 원 더 많이 적혀 있어 큰 문제가 없어 보입니다. 그런데 계약 단위로 가르면 이야기가 달라집니다.
- 공시 누락(P01) 4건 — 약정은 맺었는데 공시 금액이 0입니다. 기준 약정액은 합쳐 1,838백만 원입니다.
- 금액 차이(P02) 4건 — 기준 942백만 원인데 372백만 원만 들어간 식으로, 리스 기간 전체가 아니라 일부만 반영됐을 가능성이 있습니다.
- 개시 후 공시 잔존(P03) 2건 — 이미 개시됐는데 공시가 2,820백만 원 남아 있어, 그 금액이 총액을 부풀리고 있었습니다.
- 보고기간 후 체결 공시(P05) 2건 — 결산 뒤에 맺은 계약 242백만 원이 약정으로 들어가 있었습니다.
총액이 비슷해 보이던 이유는 부풀려진 공시와 빠진 공시가 서로 상쇄했기 때문입니다. 합계만 맞춰 보던 방식으로는 이 상쇄를 알 수 없고, 계약 단위로 기준과 공시를 견주어야 드러납니다. 화면의 “구간별 차이 절댓값 합”은 이 상쇄를 풀어 5,470.8백만 원으로 보여 줍니다.
계약 i 마다
총 고정 리스료 = 월 고정 리스료 × 리스 기간(개월) ·
기준 약정액 = 총 고정 리스료 (보고기간말 이전 체결 ∧ 개시 전 ∧ 해지 불가) ·
차이 = 주석 공시 금액 − 기준 약정액
구간별·유형별 합계는 이 계약 줄을 모아서만 만들기 때문에 합계가 계약과 갈라질 자리가 없습니다.
도입하면 달라지는 것
- 주석 초안 점검 — 합계만 맞추던 일이 계약 단위 확인으로 바뀌고, 상쇄된 오류가 드러납니다.
- 담당 부서와의 대화 — “이 계약이 빠졌습니다”를 계약번호와 금액으로 바로 말할 수 있습니다.
- 해석이 갈리는 계약의 분리 — 회사가 판단할 계약은 확인 필요로 분리되어, 판단 근거를 남기는 일이 따로 관리됩니다.
- 다음 결산으로 이어지는 기준 — 같은 규칙으로 매번 계산하므로 담당자가 바뀌어도 결과가 같습니다.
이런 회사에 맞습니다
부동산·차량·설비 리스 계약이 여러 건이고 개시 전 계약이 해마다 몇 건씩 걸쳐 있는 회사, 약정 공시를 엑셀과 계약서 확인으로 채우고 있는 재무보고 조직, 그리고 감사인에게 약정 공시의 근거를 계약 단위로 설명해야 하는 회사에 맞습니다. 반대로 개시 전 계약이 거의 없다면 이 앱의 값은 크지 않습니다.
숫자를 믿을 수 있는가 — 검증 결과
점검 도구에서 가장 비싼 질문은 “이 합계 맞아?”입니다. 그래서 만드는 쪽에서 먼저 대사식을 세워 두고 전수로 돌렸습니다. 아래는 이 사례 데이터의 결과입니다.
| 대사식 | 검사 건수 | 차이 |
|---|---|---|
| 연도별 리스료 일정 합계 = 계약별 총 고정 리스료 | 28 | 0 |
| 구간별 기준 약정액 합계 = 계약별 기준 약정액 합계 | 28 | 0 |
| 구간별 공시 금액 합계 = 계약별 공시 금액 합계 | 28 | 0 |
| 유형별 기준 약정액 합계 = 구간 합계 줄 | 10 | 0 |
| 약정 대상 계약의 (기준−공시) 합계 = −구간별 차이 합계 | 18 | 0 |
| 회사별 합계 줄 = 구간 줄 합계 | 2 | 0 |
| 참고: 계약별 공시 금액 = 기준 약정액 (의도적 예외 포함) | 28 | 12 (최대 1,980백만 원) |
정합성 대사 여섯 건은 모두 차이 0입니다. 참고 대사의 차이 12건은 점검 화면이라 일부러 넣은 예외 계약이며, 정합성 대사의 차이 건수와 섞이지 않게 구분해 둡니다.
도입 후 쓰는 순서
- 회계연도(필수)와 필요하면 회사·기초자산 유형·개시 시기 구간·약정일 기간을 골라 조회를 누릅니다. 계약명 칸에서 Enter 를 눌러도 됩니다.
- 맨 위 요약 일곱 칸으로 점검 규모를 봅니다. 공시 누락·금액 차이 계약 수는 서비스의 함수로 따로 받아 옵니다.
- 계약별 표에서 점검 필요와 확인 필요 계약을 훑고, 행을 눌러 연도별 일정을 확인합니다.
- 개시 시기 구간별·유형별 합계 탭에서 어디에 몰려 있는지 봅니다.
- 대사 탭에서 정합성 대사 여섯 건이 0인지 확인한 뒤, 참고 대사의 차이 계약을 담당 부서와 확인합니다.
- 현재 탭의 결과는 CSV 로 내려받아 주석 초안 점검 근거로 보관합니다.
실행 화면
실제로 돌아가는 화면 6종을 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 하는 자리인지를 아래에 적었습니다. 숫자는 모두 같은 자료에서 나온 것이라 화면끼리 맞춰 보셔도 됩니다.
처음 열었을 때

약정 공시 점검은 “어느 계약이 문제인가”를 찾는 일이라 표가 맨 앞에 있습니다. 점검 필요는 주황, 확인 필요는 파랑, 정상은 초록 상태 표시로 구분해 한눈에 훑을 수 있게 했습니다.
조건으로 좁히기

조회조건의 “전체”는 서버로 보내지 않는 조건입니다. 값을 고른 칸만 $filter 로 나가므로 서버가 받는 질의가 짧고, 조건을 풀면 곧바로 전체로 돌아옵니다.
합계로 보기

공시가 비어 있는 약정이 곧 개시되는 계약인지 먼 미래의 계약인지에 따라 대응 순서가 달라집니다. 구간별 합계가 계약별 합계와 맞는지는 대사 탭에서 다시 확인합니다.

금액이 큰 유형이 아니라 점검 계약 수가 많은 유형을 먼저 보는 용도입니다. 같은 유형에서 반복되면 계약 등록 절차나 공시 수작업의 문제일 가능성이 큽니다.
대사와 상세

정합성 대사는 모두 차이 0이어야 하고, 참고 대사의 차이는 점검 대상 그 자체입니다. 둘을 섞지 않으려고 구분(정합성/참고)을 컬럼으로 따로 두었습니다.

기준 약정액이 왜 그 금액인지 일정으로 설명할 수 있어야 공시 담당자가 숫자를 믿습니다. 일정 합계가 총 고정 리스료와 같은지는 대사 001 이 매번 확인합니다.
조회조건 한눈에 보기
| 조회조건 | 필수 | 서버로 보내는 질의 |
|---|---|---|
| 회계연도 | 필수 | Gjahr eq '2026' |
| 회사 | 선택 | Bukrs eq '1000' |
| 기초자산 유형 | 선택 | AssetClass eq 'BLD' |
| 개시 시기 구간 | 선택 | BucketCode eq 'C1' |
| 개시 전 해지 | 선택 | CancelFlag eq 'Y' |
| 약정일 시작·종료 | 선택 | SignDate ge datetime'…' and SignDate le datetime'…' |
| 계약명 | 선택 | substringof('임차',ContractName) |
| 점검 코드 | 선택 | CheckCode eq 'P01' |
| 점검 결과 | 선택 | CheckStatus eq 'CHECK' |
점검 코드
| 코드 | 결과 | 뜻 | 담당자가 할 일 |
|---|---|---|---|
| P01 | 점검 필요 | 약정을 맺었고 개시 전인데 공시 금액이 0 | 공시 누락 여부 확인 |
| P02 | 점검 필요 | 공시 금액이 기준 약정액과 다름 | 공시 금액 산출 범위 확인 |
| P03 | 점검 필요 | 이미 개시된 계약의 약정 공시가 남음 | 리스부채와 이중 공시 여부 확인 |
| P04 | 점검 필요 | 개시일이 지났는데 리스부채 인식이 확인되지 않음 | 개시일 인식 여부 확인 |
| P05 | 점검 필요 | 보고기간 후 체결 계약이 약정으로 공시됨 | 체결일과 보고기간 확인 |
| P09 | 확인 필요 | 개시 전 해지 가능 계약 — 약정 해당 여부는 회사가 판단 | 판단 근거 확인(기준은 확정하지 않음) |
| P00 | 정상 | 위 어디에도 해당하지 않음 | 조치 없음 |
한 계약에 둘 이상 해당하면 우선순위가 높은 코드 하나만 표시합니다.
SAP 표준 기능 확장 포인트
이 앱은 SAP 표준을 대체하지 않습니다. 표준이 이미 잘하는 일은 표준에 맡기고, 표준이 끊기는 자리만 이어 붙이는 쪽으로 만들었습니다. 어디까지가 표준이고 어디서부터 이 앱인지를 먼저 적습니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | SAP 표준 | 표준에서 걸리는 자리 | 이 앱이 하는 일 |
|---|---|---|---|
| 리스 계약 조회·관리 | RECN | 계약 마스터는 있어도 개시 전 약정을 보고기간말 기준으로 모아 주는 보고서는 따로 만들어야 합니다 | 계약 조건에서 기준 약정액을 계산해 한 화면에 모읍니다 |
| 리스부채 인식 확인 | FAGLL03 · FS10N | 계정 단위라 “이 계약의 부채가 개시일에 잡혔는가”를 계약 단위로 묻기 어렵습니다 | 개시 후 부채 인식 여부를 계약 줄에 표시합니다 |
| 전표 확인 | FB03 | 전표번호를 알아야 열 수 있습니다 | 점검 코드로 좁힌 계약부터 원전표를 확인하도록 순서를 줍니다 |
| 약정 공시 금액 산출 | — | 표준에 없습니다. 보통 엑셀로 만듭니다 | 기준 약정액을 계산해 공시 금액과 견주고 차이를 코드로 가릅니다 |
| 합계 대사 | — | 주석 합계와 계약 합계를 맞추는 일은 사람이 합니다 | 정합성 대사 여섯 건을 매번 계산합니다 |
T-code 별 연계 지점
기존 거래를 없애지 않고 이 앱과 나란히 두는 것이 안전합니다. 이 앱이 가리킨 계약을 표준 거래에서 확인하는 순서입니다.
| T-code | 이름 | 연계 |
|---|---|---|
RECN | 부동산 계약 조회·변경 | 부동산 리스 계약 마스터를 쓰는 회사라면 계약 조건(체결일·개시일·기간·리스료)을 이 앱의 계약 줄과 견주는 자리입니다. 리스 계약을 다른 시스템이나 확장 테이블로 관리하면 이 거래로는 닿지 않으므로 회사 구성 확인이 필요합니다. |
FB03 | 전표 조회 | 개시된 계약의 리스부채 인식 전표를 열어 개시일에 전기됐는지 확인합니다. |
FAGLL03 | 총계정원장 개별항목 조회 | 리스부채 계정에서 개시 후 라인이 있는지 계약 단위로 따라갑니다. |
FS10N | G/L 계정 잔액 | 개시 후 리스부채 계정 잔액이 계약 합계와 어긋나지 않는지 대략 가늠합니다. |
OData 구성
화면은 서비스 정의(manifest)에 선언된 OData V2 서비스 하나만 바라봅니다. 서비스 경로는 앱 안에서 상대 경로로만 쓰고, 엔티티셋 다섯 개와 함수 하나를 내보냅니다.
| 엔티티셋 | 용도 | 키 |
|---|---|---|
ContractSet | 계약별 공시 점검 명세 | Gjahr, Bukrs, ContractNo |
DetailSet | 기준 약정액을 이루는 연도별 고정 리스료 일정 | Gjahr, Bukrs, ContractNo, LineNo |
BucketSet | 개시 시기 구간별 합계(합계 줄 포함) | Gjahr, Bukrs, BucketNo |
ClassSet | 기초자산 유형별 합계 | Gjahr, Bukrs, ClassCode |
ReconSet | 정합성·참고 대사 결과 | Gjahr, ReconNo |
GapCount(함수) | 공시 누락·금액 차이(P01·P02) 계약 수 — 반환 Edm.Int32 | 파라미터 Gjahr, Bukrs |
조회조건은 $filter 로만 보내고, 정렬·페이징은 $orderby·$top·$skip, 총건수는 $inlinecount=allpages 로 받습니다. 약정일 같은 날짜 조건은 서비스가 직접 비교하며, “전체”를 뜻하는 별도 코드값은 서버로 보내지 않습니다.
이 앱이 하지 않는 것
- 약정에 해당하는지, 어느 금액을 공시할지 판단하지 않습니다. 코드는 점검 신호이고 판단은 회사와 감사인의 몫입니다.
- 주석 문구를 만들거나 공시 금액을 고치지 않습니다. 이 앱은 조회·점검 전용입니다.
- 기준서 문단번호를 인용하지 않습니다. 원문을 확인하기 전에는 적지 않는다는 원칙입니다.
CDS 구성
이 사례의 화면은 계약 28건과 일정 147줄을 서비스가 들고 계산합니다. 데모라서 되는 일이고, 운영 데이터에서는 계약 마스터와 원장 라인을 CDS 로 모아 같은 모양으로 내려 줍니다. 아래는 그때 만드는 뷰들을 레이어 순서대로 적은 것입니다.
코드는 스케치입니다. 필드 이름과 표준 뷰 이름은 릴리스·환경에 따라 다르므로 그대로 붙여 넣기 전에 View Browser 로 실제 이름을 확인해야 하고, 확인하지 못한 자리는 주석에 “확인 필요”라고 적었습니다.
뷰 레이어 구성
| 레이어 | 뷰 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 기준 | LeaseCmtPolicy | 보고기간말 · 해지 불가 여부 · 구간 경계(개월) 설정 | 경계값을 코드에 박으면 정책이 바뀔 때마다 개발자를 부르게 됩니다. |
| 원천 | LeaseCmtContract | 리스 계약 마스터에서 체결일·개시일·기간·월 리스료를 읽음 | 원천이 회사마다 다릅니다. 이 뷰 하나만 바꾸면 위쪽은 그대로입니다. |
| 계산 | LeaseCmtBase | 총 고정 리스료 · 기준 약정액 · 구간 · 점검 코드 | 점검 규칙을 한 곳에서만 정의합니다. |
| 집계 | LeaseCmtBucket | 구간·유형별 합계 | 화면이 아니라 DB 에서 모읍니다. |
| 권한 | LeaseCmtBase (DCL) | 회사코드 권한 | 집계를 읽는 자리에 걸어야 뺄셈으로 새지 않습니다. |
① 정책 테이블
보고기간말과 구간 경계를 코드가 아니라 설정으로 둡니다. 운영 전환에서 가장 먼저 합의해야 하는 항목입니다.
" 리스 약정 공시 점검 정책 (투명 테이블 스케치)
@EndUserText.label : '약정 공시 점검 정책'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
define table lease_cmt_policy {
key mandt : mandt not null;
key bukrs : bukrs not null;
key gjahr : gjahr not null;
period_end : abap.dats; " 보고기간말
near_months : abap.int2; " 가까운 구간 경계(개월) — 사례는 3
far_months : abap.int2; " 먼 구간 경계(개월) — 사례는 12
cancel_rule : abap.char(1); " 개시 전 해지 가능 계약 처리 — 확인 필요(회사 판단)
}
② 계약 원천 뷰
계약 마스터를 읽는 자리입니다. 리스 계약을 어디서 관리하느냐에 따라 이 뷰만 달라집니다.
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '리스 계약 원천'
define view entity LeaseCmtContract
as select from lease_contract_src as c " 확인 필요 : 실제 계약 마스터 이름
{
key c.bukrs as Bukrs,
key c.contract_no as ContractNo,
c.contract_name as ContractName,
c.asset_class as AssetClass,
c.sign_date as SignDate, " 체결일
c.comm_date as CommDate, " 개시 예정일
c.term_months as TermMonths, " 리스 기간(개월)
@Semantics.amount.currencyCode : 'Waers'
c.monthly_amt as MonthlyAmt, " 월 고정 리스료
c.cancel_flag as CancelFlag, " 개시 전 해지 가능 — 확인 필요
c.waers as Waers
}
③ 점검 계산 뷰
기준 약정액과 점검 코드를 정하는 핵심 뷰입니다. 우선순위는 화면의 판정 규칙과 같아야 합니다.
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '약정 공시 점검 계산'
define view entity LeaseCmtBase
as select from LeaseCmtContract as k
inner join lease_cmt_policy as p on p.bukrs = k.Bukrs
association [0..1] to lease_cmt_disc as _d " 주석 공시 관리 — 확인 필요
on _d.bukrs = k.Bukrs and _d.contract_no = k.ContractNo
{
key p.gjahr as Gjahr,
key k.Bukrs,
key k.ContractNo,
k.SignDate,
k.CommDate,
@Semantics.amount.currencyCode : 'Waers'
k.MonthlyAmt * k.TermMonths as TotalAmt,
" 기준 약정액 : 보고기간말 이전 체결 AND 개시 전 AND 해지 불가
@Semantics.amount.currencyCode : 'Waers'
case when k.SignDate <= p.period_end
and k.CommDate > p.period_end
and k.CancelFlag = 'N'
then k.MonthlyAmt * k.TermMonths
else 0 end as ExpoAmt,
@Semantics.amount.currencyCode : 'Waers'
coalesce( _d.disc_amt, 0 ) as DiscAmt,
case
when k.CancelFlag = 'Y' and k.CommDate > p.period_end then 'P09'
when k.SignDate > p.period_end and coalesce( _d.disc_amt, 0 ) > 0 then 'P05'
when k.CommDate <= p.period_end and coalesce( _d.disc_amt, 0 ) > 0 then 'P03'
when k.SignDate <= p.period_end and k.CommDate > p.period_end
and coalesce( _d.disc_amt, 0 ) = 0 then 'P01'
else 'P00' " P02·P04 는 금액·부채 인식 비교가 더 필요 — 생략
end as CheckCode,
k.Waers
}
④ 구간 집계 뷰
@Analytics.dataCategory : #CUBE
@EndUserText.label : '개시 시기 구간별 합계'
define view entity LeaseCmtBucket
as select from LeaseCmtBase as b
{
key b.Gjahr,
key b.Bukrs,
key case
when b.ExpoAmt = 0 and b.DiscAmt > 0 then 'C9' " 약정 대상 아님(공시 잔존)
when months_between( b.CommDate, $session.system_date ) <= 3 then 'C1'
when months_between( b.CommDate, $session.system_date ) <= 12 then 'C2'
else 'C3'
end as BucketCode,
count( * ) as ItemCnt,
@Semantics.amount.currencyCode : 'Waers'
sum( b.ExpoAmt ) as ExpoAmt,
@Semantics.amount.currencyCode : 'Waers'
sum( b.DiscAmt ) as DiscAmt,
b.Waers
}
group by b.Gjahr, b.Bukrs, b.Waers
구간 경계는 설정 테이블의 값으로 바꾸고, 날짜 함수 이름은 환경마다 다를 수 있어 확인이 필요합니다. 위 코드는 구조를 보여 주는 스케치입니다.
⑤ 권한
@EndUserText.label : '약정 공시 점검 권한'
@MappingRole : true
define role LeaseCmtBaseRole {
grant select on LeaseCmtBase
where ( Bukrs ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}
운영 전환에서 정해야 할 항목
| 항목 | 정하는 내용 | 왜 먼저인가 |
|---|---|---|
| 보고기간말 | 결산일과 비교 기간 처리 | 기준 약정액이 이 날짜 하나로 갈립니다. |
| 개시 전 해지 가능 계약 | 약정에 포함할지, 확인 필요로만 둘지 | 회사가 먼저 판단해야 하는 항목이라 감사인과 합의가 필요합니다. |
| 공시 금액의 원천 | 주석 초안 파일 · 공시 관리 테이블 중 어느 쪽 | 원천이 정해져야 서비스가 같은 값을 읽습니다. |
| 구간 경계 | 3개월 · 12개월 등 | 대응 순서를 정하는 기준입니다. |
| 리스부채 인식 확인 | 개시 후 부채 계정 매핑 | P04 판정이 이 매핑에 달려 있습니다. |
자주 묻는 질문
도입 상담과 데모에서 자주 받는 질문들입니다. 세 묶음으로 나눠 적었습니다.
계산과 판정
기준 약정액은 어떻게 계산합니까?
월 고정 리스료에 리스 기간(개월)을 곱한 총 고정 리스료입니다.
다만 아무 계약이나 약정이 되지는 않습니다. 보고기간말 이전에 체결했고, 보고기간말 현재 아직 개시되지 않았고, 개시 전에 해지할 수 없는 계약만 기준 약정액이 잡힙니다. 보고기간 후에 맺은 계약이나 이미 개시된 계약은 기준 약정액이 0입니다.
“점검 필요”가 나오면 기준서 위반이라는 뜻입니까?
아닙니다. 이 화면은 점검 도구이며 최종 판단은 회사와 감사인이 합니다. “점검 필요”는 공시가 비었거나 기준 약정액과 다르다는 신호일 뿐입니다. 계약 조건을 확인해 보니 공시가 맞았다면 그것으로 끝입니다.
개시 전에 해지할 수 있는 계약은 왜 “확인 필요”입니까?
해지 가능 여부와 가능한 시점, 위약 부담에 따라 그 계약이 약정에 해당하는지가 달라질 수 있기 때문입니다. 회사가 먼저 판단해야 하는 영역이라 이 화면은 기준 금액을 단정하지 않고 판단 근거를 확인하라고만 표시합니다.
한 계약에 둘 이상의 점검 코드가 해당하면 어떻게 됩니까?
우선순위가 높은 코드 하나만 표시합니다. 공시 누락(P01)이 금액 차이(P02)보다 앞이고, 그 뒤로 개시 후 공시 잔존(P03), 개시 후 부채 인식 확인(P04), 보고기간 후 체결 공시(P05), 약정 해당 여부 확인(P09) 순으로 보도록 규칙 표를 설명서에 실었습니다.
공시 금액이 기준보다 크면 괜찮은 겁니까?
그렇지 않습니다. 공시가 기준보다 큰 경우도 차이로 잡힙니다. 사례의 개시 후 공시 잔존 계약처럼 이미 부채로 잡힌 금액이 약정에도 남아 총액을 부풀리는 일이 흔하기 때문입니다.
합계는 맞는데 계약 단위로는 왜 틀립니까?
빠진 공시와 부풀려진 공시가 서로 상쇄하기 때문입니다. 사례에서도 총액은 654백만 원 차이로 작아 보였지만 계약 단위로는 누락 4건, 금액 차이 4건, 잔존 2건, 후속 체결 2건이 있었습니다.
“개시 후 부채 인식 확인”은 무엇을 보는 겁니까?
개시일이 지난 계약에 리스부채가 잡혔는지입니다. 개시 후에도 부채가 확인되지 않으면 약정 공시에서 빠지면서 부채로도 잡히지 않아 어디에도 나타나지 않는 계약이 생길 수 있습니다. 이 코드는 그 틈을 찾기 위한 신호입니다.
범위와 한계
어느 기준서를 근거로 합니까?
IFRS 16 리스(K-IFRS 제1116호)에서 리스이용자가 개시되지 않은 리스에 약정한 미래 현금유출을 주석에 공시한다는 요구사항을 점검 관점으로 옮긴 것입니다. 문단번호는 원문을 확인하기 전에는 적지 않았고, 화면과 설명서에도 번호를 적지 않았습니다.
주석 문구까지 만들어 줍니까?
아닙니다. 이 앱은 조회·점검 전용입니다. 공시 금액과 기준 약정액의 차이를 계약 단위로 보여 줄 뿐 주석 문구를 만들거나 공시 금액을 고치지 않습니다.
기준 약정액에 변동리스료나 연장선택권도 포함합니까?
이 사례는 고정 리스료만 다룹니다. 변동리스료, 연장·종료 선택권, 잔존가치보증처럼 회사의 판단이나 조건에 따라 달라지는 항목은 사례에 넣지 않았고, 운영에서 어떻게 다룰지는 회사와 감사인이 정해야 합니다.
통화가 여러 개인 계약은 어떻게 합니까?
사례는 한 통화로 단순화했습니다. 운영에서는 계약 통화를 유지한 채 집계 뷰에서 통화별로 나누거나 환산 기준을 정한 뒤 합산해야 하며, 통화가 섞인 금액은 그대로 더하지 않습니다.
샘플 데이터는 실제 회사 것입니까?
아닙니다. 가상의 회사코드(1000·2000)와 계약으로 만든 검증용 샘플 데이터이며, 실제 고객사의 계약이나 공시 금액을 쓰지 않았습니다.
도입과 운영
기존 약정 공시 업무를 없애야 합니까?
없애지 않습니다. 주석 작성은 그대로 두고, 이 앱은 작성한 초안을 계약 단위로 다시 견주는 점검 단계로 끼워 넣는 것이 보통입니다.
실제 데이터를 연결하려면 무엇이 필요합니까?
manifest 가 가리키는 서비스가 같은 엔티티셋 다섯 개와 GapCount 함수를 내보내면 화면은 그대로 씁니다. 필요한 값은 체결일·개시 예정일·리스 기간·월 고정 리스료·해지 가능 여부·주석 공시 금액이고, 마지막 두 가지는 회사별 관리 방식이 달라 확인이 필요합니다.
권한은 어떻게 걸립니까?
CDS 에 접근 제어(DCL)를 붙여 회사코드 권한을 그대로 따르게 합니다. 권한은 상세 팝업만이 아니라 집계를 읽는 자리에 걸어야 합계에서 빼는 방식으로 다른 회사 숫자가 새지 않습니다.
서비스가 응답하지 않으면 화면은 어떻게 됩니까?
오류 처리기가 서비스 정의를 못 읽은 경우와 요청이 실패한 경우를 나눠 메시지로 알려 주고, 결과가 비면 “조건에 맞는 계약이 없습니다”를 알림으로 보여 줍니다. 화면이 하얗게 멈추지 않습니다.
어떤 UI 라이브러리를 씁니까?
OpenUI5 표준 컨트롤(조회조건 · 상태 표시 · 탭 · 표 · 대화상자)만 씁니다. 테마는 sap_horizon 이고, 외부 차트 라이브러리는 쓰지 않아 반입 심사가 필요 없습니다.
CSV 는 무엇이 내려갑니까?
현재 보고 있는 탭의 결과가 UTF-8(BOM) 형식으로 내려가 엑셀에서 한글이 깨지지 않습니다. 계약 탭은 조건에 맞는 전체 줄이 담겨 주석 초안 점검 근거로 보관할 수 있습니다.
숫자가 기존 점검표와 다르면 어떻게 확인합니까?
순서가 있습니다. ① 보고기간말이 같은지 봅니다. 가장 흔한 원인입니다. ② 해지 가능 계약을 약정에 넣었는지 봅니다. ③ 계약 상세에서 연도별 일정 합계가 총 고정 리스료와 같은지 봅니다. ④ 그래도 다르면 주석 공시 금액의 원천이 같은 파일인지 확인합니다.
다음 결산에도 같은 결과가 나옵니까?
규칙이 코드로 고정되어 있어 같은 계약과 같은 설정이면 같은 결과가 나옵니다. 담당자가 바뀌어도 해석이 달라지지 않는다는 점이 수작업 점검과 가장 크게 다른 부분입니다.
이 앱 하나로 약정 공시 점검이 끝납니까?
끝나지 않습니다. 이 앱이 찾아 주는 것은 계약 단위의 불일치 후보이고, 그 후보가 실제 오류인지 판단하고 주석을 고치는 일은 사람이 합니다. 점검 시간을 줄이고 누락을 줄이는 도구입니다.
검토용 자료는 어떻게 받습니까?
왼쪽 목차 아래 “검토용 자료 다운로드”를 누르면 이 글의 화면과 핵심 내용을 담은 PowerPoint 파일이 브라우저에서 바로 만들어집니다. 서버에 파일을 남기지 않습니다.
계약이 아주 많으면 느리지 않습니까?
화면은 표를 한 번에 그리지 않고 필요한 만큼만 서버에서 받습니다. 운영에서는 집계를 CDS 로 내려 서비스가 합계를 계산해 주므로 계약 수가 늘어도 화면이 들고 있는 양은 늘지 않습니다.
개시 전 계약을 꼭 이 화면으로만 점검해야 합니까?
그렇지 않습니다. 표준 거래와 나란히 두고 대사만 정기적으로 맞추는 것이 보통의 운영 모습입니다. 이 화면은 “어느 계약부터 볼지”를 정해 주는 데 쓰는 것이 가장 효과적입니다.
현재 SAP 환경에서 적용할 수 있는지 확인하고 싶습니다
계약 마스터를 어디서 관리하는지, 약정 공시 금액을 어디서 만드는지에 따라 원천 뷰 하나만 달라집니다. 왼쪽 목차의 “문의하기”로 환경을 알려 주시면 함께 확인해 드립니다.