Boa tarde!
estou passando pelo mesmo problema, os valores referente ao FCP retido não esta sendo preenchido no item sendo que o valor total do FCP retido é enviado e com isso, o XML não é validado.
no método GerarDetImpostoICMS é feito o procedimento abaixo que não permite entrar na codificação do "cst60" onde preenche os campos de FCP retido corretamente.
if (nfe.infNFe.Versao >= 4) and
(nfe.Det[i].Imposto.ICMS.CST = cst60) and //Ajuste para funcionar no ACBrNFeMonitor
((nfe.Det[i].Imposto.ICMS.vBCSTRet <> 0) or //Qdo passar CST 60 e algum campo de repasse de ICMS ST
(nfe.Det[i].Imposto.ICMS.vICMSSTRet <> 0) or //estiver preenchido será trocado o cst para cstRep60
(nfe.Det[i].Imposto.ICMS.vBCSTDest <> 0) or
(nfe.Det[i].Imposto.ICMS.vICMSSTDest <> 0)) then
nfe.Det[i].Imposto.ICMS.CST := cstRep60;
observe que na rotina do "cst60" é verificado até a versão para o preenchimento dos campos porém com a validação acima não permite gerar o XML conforme o grupo 60 da NT 2016/002 v1.40
cst60 :
begin
if NFe.infNFe.Versao >= 2 then
begin
if (nfe.Det[i].Imposto.ICMS.vBCSTRET > 0) or (nfe.Det[i].Imposto.ICMS.vICMSSTRET > 0) then
begin
Gerador.wCampo(tcDe2, 'N26', 'vBCSTRet ', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vBCSTRET, DSC_VBCSTRET);
if (NFe.infNFe.Versao >= 4) then
Gerador.wCampo(IIf(Usar_tcDe4,tcDe4,tcDe2), 'N26.1', 'pST', 01, IIf(Usar_tcDe4,07,05), 0, nfe.Det[i].Imposto.ICMS.pST, DSC_PST);
Gerador.wCampo(tcDe2, 'N27', 'vICMSSTRet', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vICMSSTRET, DSC_VICMSSTRET);
end;
if (NFe.infNFe.Versao >= 4) then
begin
if (nfe.Det[i].Imposto.ICMS.vBCFCPSTRet > 0) or (nfe.Det[i].Imposto.ICMS.pFCPSTRet > 0) or (nfe.Det[i].Imposto.ICMS.vFCPSTRet > 0) then
begin
Gerador.wCampo(tcDe2, 'N23a', 'vBCFCPSTRet ', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vBCFCPSTRet, DSC_VBCFCPST);
Gerador.wCampo(IIf(Usar_tcDe4,tcDe4,tcDe2), 'N27b', 'pFCPSTRet', 01, IIf(Usar_tcDe4,07,05), 1, nfe.Det[i].Imposto.ICMS.pFCPSTRet, DSC_PFCPSTRET);
Gerador.wCampo(tcDe2, 'N27d', 'vFCPSTRet ', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vFCPSTRet, DSC_VFCPSTRET);
end;
end;
end
else
begin
Gerador.wCampo(tcDe2, 'N21', 'vBCST ', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vBCST, DSC_VBCST);
Gerador.wCampo(tcDe2, 'N23', 'vICMSST ', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vICMSST, DSC_VICMSST);
end;
end;