Eu criei o campo Alíquota FCP para o meu produto, se o cliente preenche-lo eu calculo na hora de gerar a nota , independente do Regime...
//Percentual do ICMS relativo ao Fundo de Combate à Pobreza (FCP)
TxFCP := TProdutoController.AliquotaFCP(cdsItensID_PRODUTO.AsInteger);
//NT 2016.002
//Se Operação interestadual (tag:idDest=2) para Consumidor Final (tag: indFinal=1) deve ser informado o valor do FCP no campo vFCPUFDest
if not((Ide.idDest = doInterestadual) and (Ide.indFinal = cfConsumidorFinal)) and (TxFCP > 0) then
begin
//vBCFCP Valor da Base de Cálculo do FCP E N04 N 0-1 13v2 Informar o valor da Base de Cálculo do FCP
ICMS.vBCFCP := ICMS.vBC;
//171.1 N17b pFCP Percentual do ICMS relativo ao Fundo de Combate à Pobreza (FCP)
//Nota: Percentual máximo de 2%, conforme a legislação.
ICMS.pFCP := TxFCP;
ICMS.vFCP := RoundTo(ICMS.vBC * (ICMS.pFCP / 100), -2);
end;