Rodrigo , ta muito zuada sua rotina campeão :
1 - vc esta informando com hierarquia errada , veja :
...errado :
with ACBrSPEDPisCofins1.Bloco_F do
begin
with RegistroF001New do
begin
if Copy(ComboBox4.Text, 0,1 ) = '2' then
IND_MOV := imComDados
else
IND_MOV := imSemDados;
end; // -- Vc fecha o registro pai (Hierarquia = 1)
with RegistroF010New do // Errado Registro Filho do F001 (Hierarquia = 2)
begin
CNPJ := _DMPRINCIPAL.sdsusuarioCNPJ.Value;;
end;
... correto :
with ACBrSPEDPisCofins1.Bloco_F do
begin
with RegistroF001New do
begin
if Copy(ComboBox4.Text, 0,1 ) = '2' then
IND_MOV := imComDados
else
IND_MOV := imSemDados;
with RegistroF010New do // Coloque o Registro Filho F010 (Hierarquia = 2) dentro do F001 (Hierarquia = 1)
begin
CNPJ := _DMPRINCIPAL.sdsusuarioCNPJ.Value;;
end;
end ;
end;
2 - Isso aqui não existe --->>>> RegistroF550New.CST_COFINS := stcofinsValorAliquotaPorST ;
...todas as vezes que for informar um registro NEW com ACBrSped... é assim :
with RegistroF550New do // Nesse formato para todos os Registros do Sped de todos os blocos !
begin
VL_REC_COMP :=
CST_PIS :=
... etc...
end ;