Pular para o conteúdo
Como funciona este fórum

Moderado por Emanuel Kaufman. As três primeiras mensagens de cada pessoa passam por revisão e respondemos em até 1 dia útil.

Aqui se discute o comportamento do sistema. Decisão tributária é sempre da sua empresa, e ninguém neste fórum dá parecer.

Tudo o que você publicar é público e pode ser usado por terceiros, inclusive por sistemas de IA. Não publique dado de cliente, nome de empresa nem tela do produto.

Esta pergunta foi sinalizada
10 Respostas

Pessoal, uma dúvida curta, alguém já usou strtok para separar o CST do IBS e da CBS no arquivo que sai do ACBr? Sou key user fiscal, aqui no setor de serviços, com a versão nova do SAP, e a minha tentativa foi quebrar a linha pelo ponto e vírgula. Pelo que vi, agora, até onde sei, os três dígitos iniciais do código são iguais aos do cclasstrib, então daria para pegar só o começo. Só que o cclasstrib também traz o nome curto para apresentação, e o strtok corta o texto no primeiro espaço. Como vocês leem o cclasstrib sem perder a descrição do caso? Existe um jeito seguro de separar esses campos?


Atualização:

Num caso raro a linha quebrou aqui, e foi esse o susto que eu já tive. Obrigado pela resposta, eu testei o tamanho fixo ontem e funcionou para a maioria dos registros. E, agora, até onde sei, o nome do campo é o que muda menos, então talvez eu deva ler por ele. Vocês guardam a leitura em tabela própria ou montam direto na interface? Se a tabela for melhor, qual formato vocês usam?

Avatar
Cancelar
Melhor resposta

Alexandre e João trouxeram o caminho certo, que é ler o cst pelo tamanho fixo e não pelo espaço. Na prática, a leitura ganha segurança quando a composição do código é checada contra o campo de conteúdo antes de seguir para o arquivo final. Para o que vem de compras, leia pelo nome dele, porque um campo que sobra desloca a posição. Não faça ajuste que tire dado do registro, e deixe o tratamento fiscal com quem decide. Como fechamento, monte um teste com uma nota de cada tipo e compare o resultado com o retorno antes de liberar a carga. Para aprofundar, veja reforma tributária, CBS e IBS no SAP. Confirme com o tributário da empresa antes de aplicar.


Fontes oficiais consultadas

Avatar
Cancelar
Melhor resposta

O risco que já vi é o campo de apresentação ser lido como se fosse a classificação, e não é. Discordo de confiar só no cclasstrib, porque a regra vem com descrição própria e o nome curto nem sempre bate. A gente já teve, no fechamento, nota saindo com classificação errada porque o time olhou só a apresentação. Por isso prefiro ler o cst completo e conferir a classificação na tabela oficial. Discordo com respeito, porque confiar no nome sozinho cria um risco que aparece tarde.

Avatar
Cancelar
Melhor resposta

Concordo em parte com a Patrícia, mas discordo da tabela. Mesmo assim, então, meu alerta é que a tabela vira um cadastro paralelo, e aí a situação fica difícil de auditar. O significado do código muda conforme a regra tributária, e a tabela não acompanha isso sem manutenção. Vale guardar só a descrição do cst oficial e revisar quando houver mudança de regra. Patrícia, você revisa essa tabela todo mês?

Avatar
Cancelar
Melhor resposta

Tenho uma dúvida curta, a sua equipe lê o cst pelos primeiros caracteres ou pelo nome do campo? Eu, já adianto, viu, que a nossa mineração segue outro caminho. O time usa uma tabela para os códigos reduzidos e só depois confere a rejeição do retorno. Isso vale quando o volume é alto e o arquivo muda pouco. Quando o arquivo muda muito, o melhor é ler pelo nome, porque a posição pode escorregar de uma versão para outra.

Avatar
Cancelar
Melhor resposta

No meu caso, na mineração, eu leio o retorno do ACBr quase todo dia. Alexandre, você disse que o nome do campo é mais estável, mas as informações que voltam do sistema às vezes saem fora da ordem do cst. Sua equipe consegue confirmar, nessas informações, qual campo ficou de fora? E, agora, o problema é que eu não sei se o campo permite a mesma leitura em cada linha. Teria um exemplo para me mostrar?

Avatar
Cancelar
Melhor resposta

Se o cst vier inexistente no cadastro, o tamanho fixo não salva a nota, e é aí que discordo do João. O ponto é esse, veja, o ganho é ler o código inteiro sem depender da posição. Quando o valor já vem informado de fora, a validação precisa acontecer na entrada, senão a gente só empurra o erro para a frente. Eu prefiro checar na chegada e não no meio do processo, por causa do fechamento. Discordo com educação, porque deixar o ajuste para depois custa mais caro.

Avatar
Cancelar
Melhor resposta

O que importa, Alexandre, é saber se o grupo sai indevidamente na nota quando o campo está vazio. No ABAP que eu mantenho, migrando de outro ERP, o indicador de CST vem da tabela e às vezes chega sem o grupo. Você disse que o tamanho fixo resolve, mas no seu caso os três dígitos iniciais chegam sempre idênticos ao código completo? Preciso decidir, no fim das contas, se faço a checagem no código ou no cadastro.

Avatar
Cancelar
Melhor resposta

Concordo com o Renato. Eu complemento que, quando o grupo governamental vier vazio, o gtribcompragov não pode aparecer, e o cst da linha segue a mesma regra. A checagem é pulada por muita gente, e olha que, pois é, ela é simples. Grupos governamentais aparecem pouco no nosso volume, mas quando aparecem a leitura muda tudo. No SAP que a gente usa agora, a regra rejeita a nota se esse grupo vier sozinho. Vale fazer um teste com uma nota de cada tipo antes do fechamento.

Avatar
Cancelar
Melhor resposta

Alexandre, na nossa distribuidora a equipe seguiu outro caminho. Não lê o cst por posição, lê o código inteiro e confere a regra da exceção no cadastro. Sobre isso, o caminho é, ó, usar o gcompragov como chave quando a nota traz o grupo de aquisição pública, e deixar o gibscbs de fora da leitura inicial. Isso vale quando o arquivo é grande e ninguém quer depender do tamanho da linha. Quando o volume é pequeno, o strtok resolve sem drama. Eu fico com a chave, porque ela é mais previsível quando a gente precisa fechar o mês.

Avatar
Cancelar
Melhor resposta

Concordo em parte, o strtok ajuda a separar a linha, mas não serve para ler o cst. O campo conteúdo já traz o código e o sentido, bem, resumindo, então leia pelo tamanho fixo e não pelo espaço. Na minha equipe, no setor de serviços com o GUEPARDO Tax, a gente fez isso e a composição ficou certa em todos os testes. Nas compras, cuidado, porque o campo muda de posição quando a linha vem com um item a mais. Eu usaria o nome do campo, não a ordem dele.

Avatar
Cancelar

Sua resposta

Tente oferecer uma resposta substancial. Se quiser comentar sobre a pergunta ou resposta, basta utilizar a ferramenta de comentários. Lembre-se de que você sempre pode revisar suas respostas - Não há necessidade de responder à mesma pergunta duas vezes. Não esqueça de votar - Selecionar as melhores perguntas e respostas é realmente útil!

Perguntas relacionadas

Mais conversas em Documentos fiscais eletrônicos, CST, cClassTrib e cadastro.

Ver todas do fórum