2026-09-16 세션 — 학동매장 원부자재발주서 「피앤알」 탭 작성 · 인쇄 · 팩스 발송 — 기록: [코디]
지시
[페페] 「원부자재발주서 : 학동매장 / 발주일 오늘 긴급 / 피앤알탭으로 발주서 작성 / 팩스까지 발송, 출력물 인쇄. 발주서 블록선택해서 선택영역 인쇄로 진행. / 미성형보드 MDF · 25T 9자 3매 · 22T 9자 5매 · 18T 10자 2매 / 오엠씨 입고」
대상 = NAS 2026현장\원부자재발주서\09월\한샘 학동매장 원부자재발주서.xlsx(8탭 표준양식).
결정
- 규격 표기는 운영
orderpaper실적에서 가져왔다 — 피앤알 미성형보드는25T MDF 4*9(2700)꼴, 입고처 오엠씨, 비고E0. 같은 현장(학동매장) 26.6.30 선례가 그대로 있었다. - 입고일 = 발주일과 같은 9.16(수), 비고 =
E0, 긴급(페페 확인). - 탭은 「발주서」 탭을 복제→rename 하는 현장 관행(
orderpaper_build.py좌표 규약). 업체시트 INDEX/MATCH 가 살아 있어 C2 에 업체명만 넣으면 단축번호·참조·전화·팩스가 자동으로 찬다. - 「선택영역 인쇄」 = 발주서 블록 1장 =
PrintArea $A$1:$J$29로 못박았다(수동 블록선택과 같은 결과).
산출
- NAS 파일 갱신 — 131,017 bytes / 26.09.16 14:21. 원본 백업 =
C:\dev_attic\2026-09-16\한샘 학동매장 원부자재발주서_원본_20260916.xlsx. - 시트 검증(실값) —
C2=피앤알 · C3=남태욱상무(010-8775-6864) · C4=032-815-1587 · H4=032-815-1589 · E2=3,I2=I3='09 .16(수)' · 매수 1, 3행 전부E0, 긴급, 입고처오엠씨 | 경기 화성시 팔탄면 푸른들판로892-31/유상연부장(010-2484-1512). - 인쇄 =
SINDOH D450/CM Series PCL1부 전송 완료(스풀 비었음). - 팩스 =
SINDOH D450/CM Series FAX로 전송, 송부처 피앤알 / 0328151589 1건 등록 후 「확인」. 팝업 즉시 닫힘 · 오류창 0 · 스풀 0. ⏳기기 통신결과(통신관리보고서)는 웹으로 못 읽는다(아래).
🔴 이 세션에서 확립된 함정
- Bash 도구(Session 0)에서 Excel COM 은 못 쓴다.
Version/Build는 읽히고Visible도 되는데 그 다음부터 전부-2147418111 (RPC_E_CALL_REJECTED) 피호출자가 호출을 거부했습니다. 재시도로 안 풀린다 = 코드 버그가 아니다. ⛒schtasks /create … /it+ 절대경로 pythonw.exe + 파일 로그. (pythonw.exe를 bare 로 적으면 예약작업이 조용히 아무것도 안 한다 — 로그조차 안 생긴다.) - 엑셀 날짜는 시리얼 정수로 넣는다.
datetime.date는 COM 이 거부(TypeError),datetime.datetime은 VT_DATE 변환에서 KST+9 때문에 하루 밀린다(9.16 →09 .15(화)로 찍혔다). ⛒(d - date(1899,12,30)).days. - NAS UNC 를 Excel 로 직접 열지 마라 — 보호된 보기/링크갱신 프롬프트로 COM 이 막힌다.
로컬 사본에서 작업 →
nasget.py put. 좀비 EXCEL.EXE 가 NAS 파일을 물고 있으면get이NtStatus 0xc0000043. uiautomation이 SINDOH 팩스 팝업을 못 본다.GetRootControl().GetChildren()에 안 나오고 스캔 루프째로 멈춘다. ⛒win32gui.EnumWindows로는 즉시 보인다 — GUI 조사 1순위는 win32gui.
📠 SINDOH D450/CM FAX 드라이버 팝업 조종법 (26.9.16 실측, 재사용용)
ws.PrintOut(1,1,1,False,'SINDOH D450/CM Series FAX') 를 걸면 PrintOut 이 블록되고
별도 프로세스에 #32770 「팩스 전송 팝업」이 뜬다. 컨트롤 ID:
| id | 종류 | 내용 |
|---|---|---|
| 1990 | Edit | 명칭(&N) |
| 2053 | Edit | 팩스번호(&F) |
| 2041 | Button | 송부처 목록에 추가(&A) — 번호 입력 전엔 disabled |
| 2047 | SysListView32 | 송부처 목록 (LVM_GETITEMCOUNT 0x1004 로 건수 확인) |
| 2048 | Static | 현재의 등록 건수 n/100 |
| 1 / 2 | Button | 확인(=전송, 목록 비면 disabled) / 취소 |
순서 = 두 Edit 에 한 글자씩 WM_CHAR(WM_SETTEXT 만으로는 EN_CHANGE 가 안 떠 추가 버튼이 안 살아날 수 있다)
→ 2041 BM_CLICK → 목록 1건·확인 enabled 확인 → 1 BM_CLICK. 팩스번호는 구분자 없이(0328151589).
확인을 누르면 팝업이 닫히고 그 순간 Excel 의 PrintOut 이 반환된다.
⏳ 남은 것
- 기기 쪽 팩스 통신결과는 웹으로 못 읽었다.
192.168.0.201= KM PageScope 계열 SPA(/wcd/spa_main.html), 인증은None인데 작업목록·통신이력 XML 엔드포인트가/wcd/*.xml관례 이름으로는 전부 404. 실제 API 는 SPA JS 가 동적으로 만든다 → 필요하면 CDP 로 SPA 를 띄워 네트워크를 훔쳐봐야 한다. 지금은 기기 통신관리보고서가 유일한 확인 경로.