Bom dia, na unit ACBrDFeComum.RetConsCad existe a propriedade 'CEP' como um Integer, mas na verdade deveria ser uma String (pois existem CEPs com zero à esquerda)
Exemplo do problema que está acontecendo:
ObterConteudoTag(AuxNode.Childrens.FindAnyNs('CEP'), tcInt) me retorna 7094000
O ideal seria ser uma String e fazer a chamada ObterConteudoTag(AuxNode.Childrens.FindAnyNs('CEP'), tcStr) para retornar '07094000'
Eu publiquei essa dúvida no Discord porém me foi dado a seguinte resposta:
Ao meu ver isso não faz sentido pois ao definir um campo que contém números com 7 a 8 dígitos, é importante considerar sua natureza e propósito. Se o valor pode começar com zero — como acontece frequentemente com códigos, identificadores ou CEPs — o campo deve ser armazenado como uma string, e não como um integer.
Quando armazenado como integer, o zero à esquerda é removido automaticamente, comprometendo a integridade dos dados. Por exemplo, o código 01234567 se tornaria 1234567, alterando significativamente sua representação.
Além disso, esse campo não se destina a operações matemáticas, mas sim à identificação ou classificação, o que reforça o uso de string. Assim, garantindo consistência e clareza no armazenamento desses valores.
Essa mesma lógica se aplica ao CPF ou CNPJ, que podem começar com o dígito zero e, por esse motivo, é corretamente armazenado como string (mesmo que na NT esteja como Númerico), preservando sua estrutura original.