Bom dia o meu caso é parecido mas isso acontece quando informo Imposto.ICMS.CST = cst10
segue a procedure da Unit pcnCFeW
na geração do XML ao gerar os dados do imposto quando passa cst10 o xml fica assim:
-<imposto> <ICMS> </ICMS> -<PIS> -<PISAliq> <CST>01</CST> <vBC>3.00</vBC> <pPIS>100.0000</pPIS> </PISAliq> </PIS> -<COFINS> -<COFINSAliq> <CST>01</CST> <vBC>3.00</vBC> <pCOFINS>100.0000</pCOFINS> </COFINSAliq> </COFINS> </imposto>
procedure TCFeW.GerarDetImpostoICMS(const i: integer); begin Gerador.wGrupo('ICMS', 'N01'); if CFe.Emit.cRegTrib = RTRegimeNormal then begin case CFe.Det.Imposto.ICMS.CST of cst00, cst20, cst90 : begin Gerador.wGrupo('ICMS00'); Gerador.wCampo(tcStr, 'N06', 'Orig ', 01, 01, 1, OrigTOStr(CFe.Det.Imposto.ICMS.orig), DSC_ORIG); Gerador.wCampo(tcStr, 'N07', 'CST ', 02, 02, 1, CSTICMSTOStr(CFe.Det.Imposto.ICMS.CST), DSC_CST); Gerador.wCampo(tcDe2, 'N08', 'pICMS ', 03, 05, 1, CFe.Det.Imposto.ICMS.pICMS, DSC_PICMS); if not FApenasTagsAplicacao then Gerador.wCampo(tcDe2, 'N09', 'vICMS ', 03, 15, 1, CFe.Det.Imposto.ICMS.vICMS, DSC_VICMS); Gerador.wGrupo('/ICMS00'); end; cst40, cst41, cst50, cst60 : begin Gerador.wGrupo('ICMS40'); Gerador.wCampo(tcStr, 'N06', 'Orig ', 01, 01, 1, OrigTOStr(CFe.Det.Imposto.ICMS.orig), DSC_ORIG); Gerador.wCampo(tcStr, 'N07', 'CST ', 02, 02, 1, CSTICMSTOStr(CFe.Det.Imposto.ICMS.CST), DSC_CST); Gerador.wGrupo('/ICMS40'); end; end; end else begin case CFe.Det.Imposto.ICMS.CSOSN of csosn102, csosn300, csosn500 : begin Gerador.wGrupo('ICMSSN102'); Gerador.wCampo(tcStr, 'N06', 'Orig ', 01, 01, 1, OrigTOStr(CFe.Det.Imposto.ICMS.orig), DSC_ORIG); Gerador.wCampo(tcStr, 'N10 ', 'CSOSN', 03, 03, 1, CSOSNIcmsToStr(CFe.Det.Imposto.ICMS.CSOSN), DSC_CSOSN); Gerador.wGrupo('/ICMSSN102'); end; csosn900 : begin Gerador.wGrupo('ICMSSN900'); Gerador.wCampo(tcStr, 'N06', 'Orig ', 01, 01, 1, OrigTOStr(CFe.Det.Imposto.ICMS.orig), DSC_ORIG); Gerador.wCampo(tcStr, 'N10', 'CSOSN', 03, 03, 1, CSOSNIcmsToStr(CFe.Det.Imposto.ICMS.CSOSN), DSC_CSOSN); Gerador.wCampo(tcDe2, 'N08', 'pICMS ', 03, 05, 1, CFe.Det.Imposto.ICMS.pICMS, DSC_PICMS); if not FApenasTagsAplicacao then Gerador.wCampo(tcDe2, 'N09', 'vICMS ', 03, 15, 1, CFe.Det.Imposto.ICMS.vICMS, DSC_VICMS); Gerador.wGrupo('/ICMSSN900'); end; end; end; Gerador.wGrupo('/ICMS'); end;