orochasamuel / fiscalbr-net

Para facilitar seu dia a dia como desenvolvedor \o/
MIT License
91 stars 48 forks source link

Bloco C Reg170 - System.IndexOutOfRangeException: 'O índice estava fora dos limites da matriz.' #53

Closed EttorePaludeto closed 1 year ago

EttorePaludeto commented 2 years ago

Primeiramente, parabéns pelo trabalho. Descobri essa semana o projeto e achei bastante interessante. Inclusive, estou fazendo uns testes com ele...rs

Vamos ao BUG.

Pelo que entendi, essa mensagem de erro está ocorrendo no Reg170 porque estou tentando importar um arquivo (SPED) de 03/2017. Logo, o campo 38 (VL_ABAT_NT ) ainda não existia. O Limite do Looping está calculado para 38 (campos do SPED Atual), mas a variável splittedLine só contem 37 campos.

Acho que o problema esteja aí.

Abraço,

Screenshots image

Ambiente

orochasamuel commented 2 years ago

Fala @EttorePaludeto tudo na paz?

Realmente, essa foi uma brecha que ficou na leitura do arquivo, vou fazer uma força para corrigir a leitura versionada e retorno nesta issue.

Vida longa e próspera 🖖

EttorePaludeto commented 2 years ago

Show, Brother! Aqui tudo na Santa Correria! Obrigado pelo retorno. Tranquilo!

Caso ajude, no laço For, troquei o contador de "propertires.count" para "splittedline.Count()".

Funcionou (na minha máquina...rs).

Abraço!

orochasamuel commented 2 years ago

@EttorePaludeto essa é uma correção paliativa.

Não funcionará nos casos em que um campo foi mapeado posteriormente e teve o número de ordem alterado.

Como a leitura só pega os primeiros campos mapeados até atingir a marca do "splittedline.Count()" se houver algum campo que foi introduzido por uma versão mais recente do layout não estará correto.

São raros os casos em que isso pode ocorrer, geralmente as alterações no layout ficam por último no mapeamento.

Mas para fechar essa brecha será necessário fazer esta melhoria.

Vida longa e próspera 🖖

RaCastroBR commented 2 years ago

Boa noite @orochasamuel.

Você já conseguiu fazer algo com relação a esse versionamento?

Estou esse mesmo problema, porém, no Layout da EFD Contribuições. Estou importando um arquivo de 2017 e até 2018 o registro M210 tinha 3 campos a menos do que atualmente (vide página 310 do manual). E os campos novos foram criados no meio do registro...

Obrigado

marcosgerene commented 1 year ago

@EttorePaludeto @RaCastroBR

Me chamem no particular, meu e-mail é mgf.spirito@gmail.com vou tentar entender o problema e ler esses arquivos antigos.

orochasamuel commented 1 year ago

@EttorePaludeto @RaCastroBR @marcosgerene

Na issue #109 descrevi a implementação inicial da detecção de versão para a EFD Fiscal.

Essa feature ficará em beta até mais testes serem feitos para atualizar o nuget.

Vida longa e próspera 🖖