안녕하세요. 아는 형입니다
회계나 자금 파트에서 제일 많이 돌리는 프로그램 하나만 꼽으라면 저는 망설임 없이 F110이라고 답합니다. 자동 지급 프로그램이니 당연하죠. 그런데 이 F110, 국내통화만 쓸 때는 별문제 없다가 외화가 섞이는 순간 갑자기 까다로워지는 녀석이기도 합니다. 오늘은 프로젝트 초반에 F110으로 외화 지급전표를 생성하다가 만난 에러 하나, 그리고 그걸 해결하면서 자연스럽게 딸려 나온 OBA1, 원가요소, OKB9 이야기를 해보려고 합니다.
이 에러, 처음 보면 당황스럽습니다
상황은 이랬습니다. F110으로 외화 지급전표를 생성하려고 했는데, AP 전표의 전기일과 지급전표의 전기일 사이에 환율 차이가 있었습니다. 외화 거래니까 당연히 있을 수 있는 상황이죠. 그런데 실행을 하니 이런 오류가 떨어졌습니다.
계정 XXXXX에는 원가 회계에 관련된 계정 지정이 있어야 합니다
순간 머리가 복잡해집니다. 저는 지금 공급업체한테 돈 나가는 지급 처리를 하고 있는데, 왜 갑자기 원가회계 이야기가 나오는 걸까요. 혹시 이 에러 보신 분 계신가요? F110 외화 처리에서 정말 자주 만나는 유형의 오류입니다. 실제로 예전에 다른 계열사에서도 외화를 안 쓰다가 신규로 쓰기 시작했을 때 원인을 못 찾아서 하루 종일 붙잡고 있었던 기억이 있습니다.

OBA1부터 확인했습니다
일단 OBA1에서 미지급금 계정에 환율차이 관련 미결항목 GL이 정상적으로 등록되어 있는지부터 체크했습니다. 역시나 해당 계정 중에 62102015 실현외환차손가 있더군요. 아, 이 계정에 원가요소 생성이 안 되어 있구나 싶어서 CO 담당자에게 원가요소 생성을 요청했습니다.


그런데 왜 하필 이 계정에서 원가회계 이야기가 튀어나올까요. 여기서부터는 잠깐 배경을 짚고 넘어가야 합니다.
외화 AP 전표를 F110으로 지급할 때, 송장 전기일과 실제 지급일의 환율이 다르면 환차이가 발생합니다. 예를 들어 AP 전표가 발생한 시점 환율이 1 USD = 1,350원이었는데, 실제 지급 시점 환율이 1 USD = 1,380원이라면 최초 부채 인식금액과 실제 지급금액 사이에 차이가 생깁니다. 이 차이는 SAP가 그냥 없애버릴 수 있는 게 아닙니다. 회계적으로는 실현외환차손 또는 실현외환차익으로 손익계정에 기록해야 하고, 이때 SAP가 묻는 게 바로 “환율 차이가 발생하면 어느 G/L 계정으로 전기할 것인가?”입니다. 이 자동계정결정을 설정하는 대표적인 곳이 OBA1이고요.
즉 미지급금에서 환율차이가 발생하면 → OBA1 계정결정 로직을 타서 → 저희 케이스에서는 62102015 실현외환차손 계정으로 자동 전기가 됩니다. 사용자가 직접 계정을 입력할 필요 없이 F110이 알아서 찾아주는 거죠. 정리하면 OBA1은 “환차손익을 어느 FI G/L 계정으로 전기할 것인가”를 결정하는 FI 자동계정결정 영역입니다.
그런데 왜 갑자기 원가요소가 등장할까요
여기서 처음 FI를 접하면 좀 이상하게 느껴집니다. 나는 공급업체 지급 처리를 하고 있는데 왜 CO와 원가요소가 끼어드는 건지 말이죠. 이유는 간단합니다. OBA1에서 결정된 계정, 즉 62102015 실현외환차손이 손익계정이기 때문입니다.
회계적으로 풀어보면, 외화 매입채무를 처음 인식했을 때보다 환율이 올라서 실제 지급해야 하는 원화가 늘어났다면 그 증가분은 회사 입장에서 명백한 비용입니다. FI에서는 이걸 외환차손으로 기록하는데, 회사가 이 비용을 CO에서도 관리한다면 어느 조직에서 발생한 비용인지까지 같이 추적해야 합니다.
SAP에서는 이렇게 FI의 비용계정을 CO와 연결하기 위해 원가요소(Cost Element)를 씁니다. 쉽게 말하면 G/L 계정은 재무회계(FI)에서 비용이 무엇인지 구분하는 역할이고, 원가요소는 그 비용을 관리회계(CO)에서도 추적할 수 있도록 연결하는 역할입니다. 관련 T-code는 다음과 같습니다.
| T-code | 기능 |
|---|---|
KA01 |
1차 원가요소 생성 |
KA02 |
원가요소 변경 |
KA03 |
원가요소 조회 |
그래서 OBA1에서 환차손 계정으로 62102015가 결정되면, 다음 단계로 이 계정이 CO 관리 대상인지, 필요한 원가요소가 정상적으로 존재하는지를 확인하게 됩니다. 대부분의 경우 G/L 계정과 동일한 번호로 원가요소를 생성해서 씁니다.

FI G/L 62102015 실현외환차손 → CO 원가요소 62102015 (원가요소 범주 01 – 1차 원가/원가차감수익) 순으로 연결되는 거죠. 이렇게 해서 FI에서 발생한 외환차손을 CO에서도 비용으로 인식할 수 있게 됩니다.
여기서 중요한 포인트 하나. 원가요소를 생성했다고 문제가 끝나는 게 아닙니다. 오히려 해당 비용이 CO 대상이 되면서 SAP는 또 하나를 묻습니다. “그 비용을 어느 코스트센터나 내부오더 같은 CO Object에 귀속시켜야 하지?” 바로 여기서 OKB9가 등장합니다.
OKB9 – “그 비용, 어디로 보낼까요?”
OKB9는 Default Account Assignment, 즉 기본 계정지정을 설정하는 곳입니다. OBA1이 “환차손을 어느 G/L 계정에 넣을 것인가”를 결정한다면, OKB9는 “그 비용을 어느 CO Object에 귀속시킬 것인가”를 결정한다고 보면 됩니다.
흐름으로 정리하면 이렇습니다.
외화 지급 → 환율차이 발생 → OBA1 → 62102015 실현외환차손 결정 → 원가요소 62102015 → CO 계정지정 필요 → OKB9 → Cost Center 결정
예를 들어 OKB9에서 원가요소 62102015, 회사코드 1710, 기본 Cost Center 171018로 설정해두면, F110이 환차손을 자동으로 발생시키면서 사용자가 코스트센터를 직접 입력할 수 없는 상황에서도 SAP가 이 설정을 참조해서 기본 코스트센터를 찾아 CO 전표를 생성합니다.
실제로 확인해보니 CO 담당자가 OKB9에 실현환산손익 계정 등록과 코스트센터 지정까지는 이미 해둔 상태였습니다. 그래서 이번엔 되겠지 하고 다시 실행했는데…
이번엔 사업영역 오류가 떴습니다
원가요소와 OKB9까지 확인했으니 이제 정상적으로 지급될 거라 생각했는데, 이런 에러가 또 나타났습니다.
CTR 1710/171018는(은) 사업 영역 1710에 속하며, 1730에는 속하지 않습니다.
하나 해결했더니 또 다른 게 튀어나오는, 이런 게 SAP 트러블슈팅의 묘미(?)라면 묘미죠. 원인은 F110 지급전표에서 결정된 사업영역(Business Area)과 OKB9에서 기본으로 가져온 코스트센터의 사업영역이 서로 달랐기 때문이었습니다.
저희 케이스로 보면, F110 지급전표의 사업영역은 1730이었는데 OKB9에서 결정된 Cost Center 171018의 사업영역은 1710이었습니다. SAP 입장에서는 서로 다른 조직의 비용으로 인식될 수 있으니 정합성 오류를 낸 거고요.
OKB9에서 헷갈리기 쉬운 지점: 지시자 vs 계정지정 세부사항
이 지점에서 헷갈리기 쉬운 항목이 지시자(Indicator)와 계정지정 세부사항(Account Assignment Detail)입니다. 계정지정 세부사항에서 2 – 사업영역 필수를 사용하면 해당 원가요소에 대해 사업영역별로 서로 다른 기본 계정지정을 관리할 수 있습니다.
즉 이번 오류 처리를 위해서는 사업영역과 관련된 지시자를 체크해서 OKB9에서 결정된 CO 계정지정이 적절하게 적용되도록 한 것, 이게 핵심이었습니다. CO컨과 상의해서 지시자를 선택하고 계정지정 세부사항값을 ‘2’로 설정했더니 정상 처리가 되긴 했는데, 실제로 테스트해보니 모든 계정에 대해 계정지정 세부사항을 2 – 사업영역 필수로 무조건 설정하지 않아도, 필요한 지시자 설정만 적용하면 F110 지급전표가 정상적으로 생성되는 것을 확인할 수 있었습니다.

그래서 비슷한 오류를 만나신다면, 무조건 2 – 사업영역 필수부터 지정하기보다는 다음 순서로 하나씩 확인해보시는 걸 추천드립니다. 다만 FI/CO컨과 관련하여 문제가 없는지 확인은 필요합니다.
OBA1 환차손익 계정 확인 → 해당 계정의 원가요소 확인 → OKB9 기본 계정지정 확인 → Cost Center와 Business Area 관계 확인 → OKB9 지시자 및 계정지정 세부사항 확인
결국 OBA1, 원가요소(KA01), OKB9는 하나의 흐름입니다
처음 보면 OBA1은 FI 설정이고 원가요소랑 OKB9는 CO 설정이라, 서로 관계없는 별개 영역처럼 보입니다. 하지만 F110 외화지급에서는 이 세 가지가 하나의 흐름으로 이어져 있습니다.
OBA1이 환차손익 발생 시 어떤 G/L 계정으로 전기할지를 결정하면, 원가요소가 그 손익계정을 CO에서도 비용으로 관리할 수 있게 연결해주고, OKB9가 그 비용을 어느 Cost Center 같은 CO Object에 귀속시킬지 기본값을 결정하는 구조입니다.
이번 사례를 한 줄로 정리하면 이렇습니다. F110 외화지급 과정에서 환율차이가 발생했고, OBA1을 통해 실현외환차손 계정이 자동 결정되었으며, 해당 손익계정이 CO 관리 대상이었기 때문에 원가요소 및 CO Object 지정이 필요했고, 마지막으로 OKB9의 기본 계정지정과 사업영역 설정을 조정하면서 정상적으로 지급전표가 생성된 사례입니다.
이 연결관계 한 번 정리해두면, 다음에 F110에서 외화 지급 시 비슷한 오류를 만나도 오류 메시지 하나만 붙잡고 헤매지 않게 됩니다. 환율차이 → 자동계정 → 손익계정 → 원가요소 → CO Object → 사업영역, 이 순서로 원인을 하나씩 추적해나가면 되니까요. TR 쪽 FX 거래에서도 비슷한 흐름이 나오는 경우가 있는데, 그 이야기는 다음에 따로 한번 다뤄보겠습니다.
