FAQ - Perguntas Freqüentes
Dll de geração de arquivos do SEF-PE (SEFPE32dll.dll)
01- O que é a SEFPE32dll.dll ?
02- Como comprar a SEFPE32dll.dll?
03- O que recebo quando adquiro o produto?
04- Como fica a questão das correções de bugs e pequenas atualizações dentro de uma versão de um mesmo convênio?
05- Como fica a questão com as atualizações para o caso de mudanças na legislação, convenio etc?
06- Onde fico sabendo sobre correções da SEFPE32dll.dll e como obtenho as correções?
07- Existe algum incentivo financeiro para a aquisicao do direito de uso do componente SEFPE32dll.dll com seus fontes?
09- Nos meus programas, emito notas fiscais e cupons fiscais.
Como deve ser o arquivo que devo gerar?
Esse mesmo cliente, comercializa café. Compra, venda, deposita, exporta e outros. O sistema também emite as notas, mas e o arquivo, como deve ser?
O que são aqueles REGISTRO 10, 11, 50,51 e etc?
10- Terei que reescrever todo o codigo que utilizei na versão anterior da Sintegra32dll.dll?
12- Gostaria de saber se a SEFPE32dll poderá ser usada com Clipper.
13- Caso venha a adquirir a SEFPE32dll.dll com os fontes, posso dispensar a dll e incorporar os arquivos .dcu compilados por mim em meu projeto?
14- Gostaria de saber se já há um versão da SEFPE32dll.dll para Linux.
15- Quando eu inicializo a SEFPE32dll.dll e passo para ela os dados ela vai criar um arquivo? Como utilizo a SEFPE32dll.dll?
16- Quem tem que me informar quais os registros que tenho que usar no SEF? Eu tenho que ralar e estudar o ICMS ou o contador pode executar esse passo pra mim?
17- A legislação do SEF informa que os registros devem seguir diversas ordenações no momento da geração do arquivo magnético, como por exemplo, "os registros devem estar informados em sequência de data". Gostaria de saber se a SEFPE32dll.dll já faz isso?
18- No Registro 90 os campos de soma de quantidade de registro são calculados automaticamente pela SEFPE32dll.dll?
19-A SEFPE32dll.dll trata as informações do registros de sintegra disponibilizados pelos ECFs?
20- A SEFPEdll.dll por ser utilizada no Delphi 7?
22- Tenho um cliente que roda novell 3.12, que não suporta nome de arquivo com mais de 8 digitos. Posso renomear a SEFPE32dll.dll sem problemas?
23- O código fonte da SEFPE32dll.dll é todo aberto ou tem partes fechadas, como outras dlls restritas?
24- A SEFPE32dll.dll é compatível com Acess, VB, FoxPro e outros compiladores?
25- Estou com um problema com algumas inscrições estaduais de Produtor Rural, pois o formato é diferente dos demais.
26- Sempre que vou utilizar a SEFPE32dll.dll aparece a mensagem que nao encontra a Borlndmm.dll. O que está acontecendo?
27- Onde encontro informações sobre a SEFPE32dll.dll?

01- O que é a SIntegra32dll.dll ?

  A SIntegra32dll.dll é uma dll desenvolvida para facilitar e agilizar o processo de implentação e adaptação do seu software à legislação do SIntegra, obrigatória a todos os contribuintes que emitam documento fiscal por processamento de dados e/ou façam a escrituração de Livro Fiscal por processamento de dados, inclusive, quando a escrituração fiscal for feita em escritório de contabilidade.
  
  Para saber mais sobre a SEF32dll.dll verifique os seguintes links:
    Coluna sobre Sintegra no site da Revista ClubeDelphi.


  Saiba mais sobre a importância do SEF-PE para o seu aplicativo através do site oficial http://www.sintegra.gov.br/

voltar
02- Como comprar a Sintegra32dll.dll?
  1. Tabela de Preços
  2. Informações de Depósito para Compra
  3. Confirmação de Depósito
  4. Informações Adicionais
  4. Dados Bancários

Atenção: O depósito de valores quebrados facilita e agiliza o processo de confirmação, por exemplo, R$70,03 ou R$70,12 para um produto de R$70,00

  Assim que o depósito for confirmado no banco você receberá por email todo o material referente ao produto escolhido.

voltar
03- O que recebo quando adquiro o produto?

  A SIntegra32dll.dll vem acompanhada da documentação completa sobre como utilizar suas funções e quais os tipos de erros retornados por cada função, do demo completo em Delphi que mostra como conectar a dll ao seu programa e testar a saída da mesma, do demo com banco de dados que mostra como gerar o sintegra usando a dll com dados vindos do banco de dados e caso vc adquira os fontes do código fonte totalmente comentado.

Linhas de Código do Fonte
Unit Código Comentário Branco Total % Comentário
Sintegra32dll.dpr 1592 263 219 2104 16%
Unit_Validacao_Sintegra.pas 745 189 87 1024 25%
Total: 2337 452 306 3128 20%


  Abaixo segue a listagem completa dos arquivos contidos neste projeto:

Arquivo
Descrição do Conteúdo
FAQ_Sintegra32Dll.htm Perguntas e Respostas da SIntegra32Dll.dll
Demo_SIntegra32Dll.zip Demo de utilização da SIntegra32Dll.dll em Delphi 6.0 (Sem Banco de Dados)
Demo_SIntegra32Dll.zip Demo de utilização da SIntegra32Dll.dll em Delphi 6.0 (Com Banco de Dados)
Manual_SIntegra32Dll.doc Documentação completa sobre a SIntegra32Dll.dll
Leiame_SIntegra32Dll.txt Informações sobre o projeto

  Você pode baixar a cópia de demonstração da SIntegra32Dll.dll totalmente funcional, para fazer a sua própria avaliação do produto, em:

http://www.igara.com.br/download.php?cod_area=5

  O demo de uso do produto está disponível no site em 2 versões:
  Demo de uso sem banco de dados: Demonstra a utilização e chamada de todas as funções disponíveis na Sintegra32dll.dll.

  Demo de uso com banco de dados: Demonstra a utilização de algumas funções da sintegra32dll.dll para geração de um arquivo do sintegra de teste, utilizando banco de dados Interbase 6.01 (Freeware). Neste demo também se encontra implementadas propostas para Log de Operações, Log de Erros e Geração do Arquivo .txt do sintegra.

  Para utilizar diretamente este demo é necessário instalar o Interbase 6.01 que é freeware e está disponível para download em (http://info.borland.com/devsupport/interbase/opensource/) ou é necessário analisar o código e fazer as devidas alterações para que o mesmo seja utilizado com alguma outra base de dados de sua preferência.

voltar
04- Como fica a questão das correções de bugs e pequenas atualizações dentro de uma versão de um mesmo convênio?

  Neste caso as atualizações são gratuitas e não há custos para nossos usuários.

  Contamos com a colaboração de todos para o envio de problemas e dúvidas que tenham sido detectadas, e enviamos malas diretas sempre que correções são efetuadas.

voltar
05- Como fica a questão com as atualizações para o caso de mudanças na legislação, convenio etc?

  A versão da sintegra32dll.dll tem por compromisso a satisfação da legislação vigente no momento de seu lançamento, estando isenta de responsabilidades caso a legislação venha a ser alterada pelo governo, momento no qual haverá o lançamento de uma nova versão da sintegra32dll.dll e o eventual pagamento pela atualização da mesma.

  No entanto é importante lembrar que você como desenvolvedor de software cobrará seus clientes pela atualização do seu software no caso de mudança no convênio por parte do estado, repassando o custo de atualização da dll de 1 (uma) versão da dll, que ficará diluído pelo número de clientes que pagarão a atualização do seu sistema.

  Você pode ter a confiança de que a Sintegra32dll.dll estará sempre atualizada pois utilizamos a mesma nos softwares com suporte ao SIntegra que desenvolvemos para nossos clientes a exemplo do Tk-FC e Tk-ERP, logo temos total e interresse em mante-la atualizada e de acordo com a legislação vigente.
  
  O motivo pelos qual disponibilizamos aos nossos usuários a possibilidade da aquisição do código fonte da Sintegra32dll.dll, é mais uma garantia e certeza da continuidade e integridade de seus aplicativos desenvolvidos com base na mesma.  

voltar
06- Onde fico sabendo sobre correções da Sintegra32dll.dll e como obtenho as correções?

  Caso você encontre um problema na Sintegra32dll.dll, o problema deve ser imediatamente informado, para que possamos verificar e executar as devidas correções, sendo disponibilizada a versão corrigida o mais rápido possível.

  Todas as correções e atualizações de versão da SIntegra32dll.dll são informadas via e-mail para todos que adquiriram o produto e listadas abaixo para o conhecimento de todos os usuários. Caso a sua versão esteja desatualizada, solicite via e-mail o envio da mesma.

*** Histórico do Projeto ***
01.03.2005 - Lançamento da Sintegra32dll.dll Versão 4.0 de acordo com Convênio ICMS 76 para 01/01/2004

Criada a função para gerar o registro 85
Function Registro85(Declaracao_Exportacao, Data_Declaracao, Averbacao, Registro_Exportacao,
Data_Registro, Conhecimento_Embarque, Data_Conhecimento,
Tipo_Conhecimento, Pais, Comprovante_Exportacao,
Data_Comprovante_Exportacao, NF_Exportacao,
Data_Emissao, Modelo, Serie, Brancos: ShortString): ShortString; stdcall; export;

Criada a função para gerar o registro 86
Function Registro86(Registro_Exportacao, Data_Registro, CNPJ_Remetente, IE_remetente,
UF, Numero_NF, Data_Emissao, Modelo, Serie, Codigo_Produto, Quantidade,
Valor_Unitario_produto, Valor_Total_Produto, Relacionamento,
Brancos: ShortString): ShortString; stdcall; export;

Alterada função Verifica_Modelo
Adicionado Cod_Modelo = 26 - Conhecimento de Transporte Multimodal de Cargas

Alterada função Verifica_Antecipacao
Adicionado Antecipacao = 5 - Substituição tributária interna motivada por regime especial de tributação

Criada a função para validar o campo 10 do regitro 56
Function Verifica_Tipo_Operacao(Cod_Tipo_Operacao: ShortString): Boolean; stdcall; export;

Alterada função Verifica_CIF_FOB
Adicionado CIF_FOB = 0 - OUTROS nos casos em que não se aplica a informação de cláusula CIF ou FOB

Criada a função para validar o campo 9 do regitro 85
Function Verifica_Conhecimento(Cod_Conhecimento: ShortString): Boolean; stdcall; export;

Criada a função para validar o campo 15 do regitro 86
Function Verifica_Relacionamento(Cod_Relacionamento: ShortString): Boolean; stdcall; export;

Criada a função para validar o campo 04 do regitro 85
Function Verifica_Averbacao(Averbacao: ShortString): Boolean; stdcall; export;

Descontinuada função Registro 60M_ECF devido a problemas de compatibilidade quando ocorre a alteração da versão e formato do arquivo por parte dos fabricantes de ECFs

Descontinuada função Registro 60A_ECF devido a problemas de compatibilidade quando ocorre a alteração da versão e formato do arquivo por parte dos fabricantes de ECFs

Descontinuada função Registro 60A_Qnt devido a problemas de compatibilidade quando ocorre a alteração da versão e formato do arquivo por parte dos fabricantes de ECFs

Corrigida mensagem de erro da Função Registro 10 quando Data Final incorreta.
Mensagem Antiga: '-5 Data Inicial deve ser igual ao último dia do mês indicado'
Mensagem Corrigida: '-5 Data Final deve ser igual ao último dia do mês indicado'

Criada a função para validar o campo 10 do regitro 85
Function Verifica_Pais(Cod_Pais: ShortString): Boolean; stdcall; export;

Criada a função para retornar informações sobre a versão da dll
Function Info_Versao: ShortString; stdcall; export;

Alteradas todas as mensagens de erro para data fora do período indicado no Registro 10, conforme mostrado:
Padrão antigo:
'-XX Data MINHA_DATA Inválida :: A Data está fora do perído indicado no Registro10';
Padrão novo:
'-XX Data MINHA_DATA Inválida (AAAAMMDD) :: A Data está fora do período indicado no Registro10 :: ' + 'Data: ' + MINHA_DATA + ' Período: ' + Periodo_Str;

Alterado função Registro 74. Adicionadas as seguintes validações de campos:
'-12 Unidade da Federação do Possuidor Inválida :: ' + UF
'-13 Valor do Produto Inválido :: O Valor informado deve ser maior que 0 (zero)' + Valor_Produto
'-14 Valor da Quantidade Inválida :: O Valor informado deve ser maior que 0 (zero)' + Quantidade

Alterado função Registro 75. Adicionadas as seguintes validações de campos:
'-6 Código de Nomenclatura Comum do Mercosul Invalido :: ' + Cod_NCM;

Alterado função Registro 50. Adicionadas as seguintes validações de campos:
'-10 CFOP Inválido :: ' + CFOP;

Alterado função Registro 51. Adicionadas as seguintes validações de campos:
'-8 CFOP Inválido :: ' + CFOP;

Alterado função Registro 53. Adicionadas as seguintes validações de campos:
'-11 CFOP Inválido :: ' + CFOP;

Alterado função Registro 54. Adicionadas as seguintes validações de campos:
'-6 CFOP Inválido :: ' + CFOP;

Alterado função Registro 56. Adicionadas as seguintes validações de campos:
'-7 CFOP Inválido :: ' + CFOP;

Alterado função Registro 70. Adicionadas as seguintes validações de campos:
'-10 CFOP Inválido :: ' + CFOP;

Alterado função Registro 76. Adicionadas as seguintes validações de campos:
'-10 CFOP Inválido :: ' + CFOP;

Alterado função Registro 77. Adicionadas as seguintes validações de campos:
'-7 CFOP Inválido :: ' + CFOP;

Alterado função Registro 88SF. Adicionadas as seguintes validações de campos:
'-9 CFOP Inválido :: ' + CFOP;

Alterado função Registro 10. Adicionadas as seguintes validações de campos:
'-15 Só deve haver 1(um) Registro10 no arquivo do Sintegra :: Função Registro10 chamada mais de 1(uma) vez'

Alterado função Registro 11. Adicionadas as seguintes validações de campos:
'-3 Só deve haver 1(um) Registro11 no arquivo do Sintegra :: Função Registro11 chamada mais de 1(uma) vez'

Alterada função Verifica_CEP
Função agora aceita que o CEP seja passado com formatação

Alterada função Verifica_CEP_UF
Função agora aceita que o CEP seja passado com formatação

Alterada função Verifica_CNPJ
Função agora aceita que o CNPJ seja passado com formatação

Alterado função Registro 90. Adicionado parâmetro de índice de retorno na declaração da função:
Function Registro90(indice: integer): ShortString; stdcall; export;
OBS: De acordo com a legislação do sintegra, podem haver 1 ou mais registros tipo 90 a depender do número de tipos de registros contidos no arquivo.
OBS: Caso sejam gerados mais de um registro 90, deve-se solicitar os registros quantas vezes for necessário. Iniciando do valor indice 0

Alterado função Registro 90. Adicionadas as seguintes validações de campos:
'-3 Valor de índice inválido :: ' + inttostr(indice) + ' (valor máximo de acordo com chamada dos outros registros ' + inttostr(R90.count - 1) + ')';

Desabilitada Função Verifica_InscEst
Problemas na validação de Insc. Est. de produtores rurais.
Para validar Incs. Est. utilize a dll ofical disponível p/ download em www.sintegra.gov.br


01.02.2004 - Lançamento da Sintegra32dll.dll Versão 3.0 de acordo com Convênio ICMS 76 para 01/01/2004
01. Adicionado Convênio = 3 em Verifica_Convenio (alteração do convênio)
02. Adicionado campo ANTECIPACAO em Registro53 (alteração do convênio)
03. Alterado campo BRANCOS em Regitro53 (alteração do convênio)
04. Adicionada função Verifica_Antecipacao (alteração do convênio)
05. Adicionado Registro61R (alteração do convênio)
06. Retirado campo S_TRIB em Registro75 (alteração do convênio)
07. Alterado campo Aliquota_IPI para 5 caracteres (alteração do convênio)
08. Alterado campo Reducao_Base_ICMS (alteração do convênio)
09. Alterado campo Base_ICMS_Subst (alteração do convênio)
10. Corrigido Registro60D formatava Nro_Serie_Eqp como N
11. Corrigido Registro60I formatava Nro_Serie_Eqp como N
12. Corrigido Registro88PN não aceitava Insc_Est como "IMPORTAçÃO"
13. Corrigido Registro55 formatava Número GNRE como N
14. Corrigido Registro77 formatava Modelo X
15. Revisão completa do Manual
16. Revisão completa do Demo Sem Banco de Dados
17. Criação do Demo com Banco de Dados Interbase

01.09.2003 - Correções na v2.0
01. Correção da Função Formato_Alfa adição de TrimLeft evita espaços a esquerda de campos alfanumericos

01.08.2003 - Correções na v2.0
01. Correção da Função Verifica_CST
02. Adicionada Função Registro60Mestre_ECF compatível com arquivo de retorno da Bematech Fi2
03. Adicionada Função Registro60Analitico_ECF compatível com arquivo de retorno da Bematech Fi2
04. Adicionada Função Registro56
05. Adicionada Função Registro76
06. Adicionada Função Registro77
07. Adicionada Função Registro88PN
08. Adicionada Função Registro88GT
09. Adicionada Função Registro88SF

01.07.2003 - Correções na v2.0
01. Correção Registro60A (Formatação incorreta do campo Número de Série de Equipamento)
02. Correção Registro54 (Teste incorreto do campo Número de ordem do item na Nota Fiscal)

31.03.2003 - Lançamento da Sintegra32Dll.dll Versão 2.0 de acordo com Convênio ICMS 69/02 para 01/01/2003

02.12.2002 - Lançamento da SIntegra32Dll.dll v1.0 de acordo com o Convênio 57/95 para 01/01/2001

voltar

07- Existe algum incentivo financeiro para a aquisicao do direito de uso do componente SIntegra32dll com seus fontes?

  Caso venha a adiquirir a SIntegra32dll.dll compilada sem fontes e futuramente deseje adquirir o código fonte da mesma, você pagará apenas o valor do código fonte da versão adquirida, sendo descontado o preço da dll compilada. A exemplo:

  Preço SEM FONTE: R$70,00
  Preço COM FONTE: R$330,00

  Você adiquire a dll SEM FONTE e paga R$ 70,00.
  Alguns meses depois você deseja adquirir os fontes, neste caso você irá pagar 330 - 70 = R$260,00

O outro incentivo disponível é no caso da aquisição dos fontes da versão 3, por exemplo, caso o usuário deseje adquirir novamente os fontes da versão 4, ele irá pagar na atualização, a metade do valor dos fontes, neste caso, R$165,00.

voltar
08- Conversei com o meu contador e ele me disse que a legislação
atualizada sobre o sintegra seria a portaria CAT 92 que saiu no final do
ano passado:
PORTARIA CAT Nº 92, DE 30 DE DEZEMBRO DE 2002
(DOE DE 03.01.2003 - REPUBLICADO NO DOE DE 22.01.2003)
A sua DLL está adequada à ela, pois não encontrei na documentação
qualquer referência à CAT92?

  A dll está totalmente de acordo com a legislação disponível no site oficial do sintegra www.sintegra.gov.br

  Como pode ser visto no site da Secretaria da Fazenda.

  O sintegra é uma legislação federal, mas a cobrança ou não de alguns items
da mesma é facultado a resoluções estaduais. O referido CAT é uma resolução do estado de São Paulo, como a dll esta de acordo com toda a legislação federal do sintegra, ela está automaticamente de acordo com toda e qualquer resolução estadual referente à mesma.

Informações referentes ao CAT92 podem ser encontradas em:  
http://www.utilitas.com.br/ICMSPortCAT0032d96Anexo1Parte1.html

voltar
09- Nos meus programas, emito notas fiscais e cupons fiscais.
Como deve ser o arquivo que devo gerar?
Esse mesmo cliente, comercializa café. Compra, venda, deposita, exporta e outros. O sistema também emite as notas, mas e o arquivo, como deve ser?
O que são aqueles REGISTRO 10, 11, 50,51 e etc?
  Antes de questionar como deve ser o arquivo final do SIntegra emitido por seu cliente, é necessário que você conheça bem todos os Registros possíveis de serem adicionados a um arquivo do SIntegra. Só assim você será capaz de traçar as necessidades do seu cliente e definir quais dos registros o arquivo dele deve conter.

  Antes de mais nada, vamos falar um pouco sobre os registros do SIntegra.
O arquivo do SIntegra, nada mais é do que um arquivo de texto formatado segundo um padrão pre-definido, onde cada linha do arquivo corresponde a um Registro, que contém vários campos pre-definidos de acordo com o tipo de registro.
Existe uma série de registros disponíveis para serem adicionados no arquivo, sendo que cada um deles tem suas características, aplicações, requisitos. A exemplo:

REGISTRO 10
  "Mestre do Estabelecimento - Indentifição do Estabelecimento informante" é um registro obrigatório a todo e qualquer arquivo do SIntegra, e contém dados sobre a quem pertence aquele arquivo, como CGC, IE, e Endereço do estabelecimento informante.

REGISTRO 11
  "Dados complementares do informante" é um registro obrigatório a todo e qualquer arquivo do SIntegra, e contém dados complementares sobre a quem pertence aquele arquivo, como Telefone, Bairro, e CEP do estabelecimento informante

REGISTRO 50
  Este registro deverá ser composto por contribuinte do ICMS, obedecendo a sistemática semelhante à da escrituração dos livros Registro de Entradas e Registro de Saída

REGISTRO 51
  Este registro deverá ser composto somente por contribuintes do IPI, obedecendo a sistemática semelhante à da escrituração dos livros Registro de Entradas e Registro de Saídas

  Estes são alguns exemplos de registros e suas aplicações, no entanto, é impressindível para a implementação do SIntegra, seja utilizando a Dll ou não, que o desenvolvedor leia atentamente a documentação do Convênio ICMS 57/95 que dicerta sobre o SIntegra e toda sua sistemática.

  Esta documentação pode ser encontrada no site da Secretaria da Fazenda do seu estado ou através do site SIntegra.
voltar

10- Terei que reescrever todo o codigo que utilizei na versão anterior da Sintegra32dll.dll?

  Não. Você apenas terá que atentar para algumas mudanças nas declarações das funções da dll, que por estarem de acordo com o Convênio, sofrem algumas mundanças. E talvez atentar para mudanças na estrutura do seu banco de dados que deve estar pronto para armazenar as novas informações que por ventura sejam necessárias à geração do arquivo. Por exemplo:

- O novo convênio criou o Registro61R que não existia no anterior, logo é necessário declarar a nova função.
- No novo convênio foi removido o campo S_Trib do Registro 75.

  Todas as mudanças relativas as declarações das funções são muito rápidas de serem efetuadas, uma vez que o demo que segue junto com o produto já possui todas as declarações feitas no mesmo.

voltar

11- Essa versão da Sintegra32dll.dll funciona com o layout de todos os convênios, inclusive os anteriores?
  Parece que existem pequenas diferenças de layout entre os convênios e eu gostaria de saber se a dll se adpta a essas diferenças ou eu tenho que manter as versões da dll?

  Cada versão da Sintegra32dll.dll funciona para um layout do sintegra, pois os layouts costumam mudar de maneira aleatória, com exclusão de adição de campos e registros, o que impossibilita operar com a mesma dll uma vez que a declaração de registros é por vezes totalmente diferente.
  Assim para informar o sintegra através da dll temos atualmente 3 versões da mesma, que foram desenvolvidas acompanhando as mudanças no convênio.

  v1.0 - Para informar operações anteriores a Jan-2003
  v2.0 - Para informar operações entre Jan-2003 e Dez-2003
  v3.0 - Para informar operações a partir de Jan-2004

  Como na maioria das vezes o cliente já informou os arquivos do período anterior, cabe ao desenvolvedor realizar as alterações devidas para a compatibilidade com a nova versão e então trocar a versão de software e sintegra32dll.dll presentes no cliente.

voltar

12- Gostaria de saber se a Sintegra32dll poderá ser usada com Clipper.

  O único impedimento é que você não irá conseguir fazer as chamadas à Sintegra32dll.dll diretamente do seu programa em Clipper, mas pode desenvolver um módulo (.exe) em outro compilador Win32 que se conecte ao banco e à dll e faça o trabalho.

  As chamadas a dll podem ser feitas a partir de qualquer versão do Delphi ou outro compilador Win32. Assim você pode implementar o seu programa de "Lançamento de Notas" em Clipper e depois implementar um outro programinha em Delphi, VB, C++ etc, só para se conectar ao banco DBASE, Paradox ou outro qualquer que use com o clipper, e gerar o arquivo do Sintegra.
voltar

13- Caso venha a adquirir a Sintegra32dll.dll com os fontes, posso dispensar a dll e incorporar os arquivos .dcu compilados por mim em meu projeto?

  Adquirindo o código da Sintegra32dll.dll você será capaz tanto de fazer alterações no código para geração de suas próprias versões da dll quanto poderá utilizar as funções implementadas para incorporação dentro do seu projeto. No entanto a incorporação no projeto dependerá de alguns pequenos ajustes uma vez que existem códigos específicos para dlls no fonte por exemplo:

No fonte a função Registro11 está declarada da seguinte forma:

Function Registro11(Logradouro, Nro, Complemento, Bairro, CEP,
Nome_Contato, Telefone: ShortString): ShortString; stdcall; export;


A s diretivas "stdcall; export;" são códigos que só estão aí para exportação da função na dll, logo na implementação numa unit dentro do seu projeto elas deveriam ser retiradas, ficando assim:

Function Registro11(Logradouro, Nro, Complemento, Bairro, CEP,
Nome_Contato, Telefone: ShortString): ShortString;


Logo a adaptação do código é muito simples e pode ser feita sem maiores problemas.
voltar

14- Gostaria de saber se já há um versão da Sintegra32dll.dll para Linux.

  Creio que sua utilização em ambiente CLX necessite de adaptações pois apesar
da dll utilizar apenas funções e variáveis nativas da VCL, sem uso de
componentes externos ou de terceiros, até onde sei o Linux não faz uso de
dlls.

  Assim sendo, atualmente a solução para implementação do Sintegra utilizando a Sintegra32dll.dll em Linux é a aquisição do código fonte da mesma e posterior adaptação do código em seu programa Kylix. Uma vez q a dll utiliza apenas funções e variáveis nativas, a adaptação para Kylix não deve apresentar problemas.

voltar

15- Quando eu inicializo a Sintegra32dll.dll e passo para ela os dados ela vai criar um arquivo? Como utilizo a Sintegra32dll.dll?

  Como demonstrado no demo que acompanha o produto, as chamadas as funções de registro da Sintegra32dll.dll devem ser feitas passando os valores das variáveis (que no caso da sua aplicação, virão do BD), a Sintegra32dll.dll faz os tratamentos necessários e retorna uma string.

  Caso o primeiro caractere da string retornada seja "-" indica que houve erro em algum dos valores passados e a string que segue descreve o erro.
  Caso contrário, a string retornada contém o registro formatado segundo o sintegra. Este registro deve então ser adicionado a um Richedit ou direto ao arquivo texto, dessa forma gerando o arquivo .txt que será usado no validador.

  Verifique no demo o processo descrito acima, clicando por exemplo nos botões Registro10, Registro11, Registro90 e Salvar.

  No site do produto está disponível para download o programa demo de uso da Sintegra32dll.dll (com e sem BD) e um artigo publicado na revista TheClub descrevendo o processo de implementação do integra.

voltar

16- Quem tem que me informar quais os registros que tenho que usar no SINTEGRA? Eu tenho que ralar e estudar o ICMS ou o contador pode executar esse passo pra mim?

  A definição de quais registros do sintegra serão utilizados depende de vários fatores, por exemplo:

  Quanto ao Cliente:
  Dependendo do cliente, ele irá ou não gerar alguns registros... substitutos tributáios geram registro 53, contribuintes do IPI geram registro 51

  Quanto à UF:
  Dependendo do estado onde vc estiver alguns registros podem não ser obrigatórios. Em Salvador-BA, por exemplo, meus clientes não são obrigados a gerar registro 60I

  Minha experiencia prática mostra que o contador vai saber reponder às suas perguntas quando ao cliente, mas não quanto ao sintegra. Por exemplo, em um novo cliente, você pode perguntar ao contador "O cliente é ou não contribuinte do IPI?" para gerar os registros respectivos, mas não adianta perguntar a ele "Quais registros do sintegra esse cliente tem q gerar?"

  Caso inicialmente só tenha 1 (um) cliente para implementar e instalar o sintegra, sugiro que implemente o programa de acordo com a necessidades deste cliente específico, mas caso tenha vários clientes com características distintas, sugiro que implemente um programa genérico, onde vc possa marcar as opções de geração do sintegra de acordo com o cliente.

  Em ambos os casos, é preciso que o programador conheça muito bem o SIntegra, os registros e seus intertravamentos para realizar a implementação. Uma boa consultoria em parceria com algum contador experiente é de grande valia.

voltar

17- A legislação do SIntegra informa que os registros devem seguir diversas ordenações no momento da geração do arquivo magnético, como por exemplo, "os registros devem estar informados em sequência de data". Gostaria de saber se a dll já faz isso?

  Não. A correta sequência na chamadas às funções da dll é obrigação do seu programa aplicativo, assim a maneira mais facil é ordenar os registros pela consulta ao BD e depois fazer as chamadas em sequencia. A exemplo, para informar as notas fiscais ordenadas por Data a consulta ao banco de dados será uma Query do tipo:

  Select * from SAIDA_NF order by DATA_EMISSAO
  Select * from ENTRADA_NF order by DATA_ENTRADA


  Depois deve ser feito um loop nas querys do primeiro ao ultimo registro fazendo chamadas às funcoes da dll e passando os valores retornados pelo banco de dados como parâmetros.

voltar

18- No Registro 90 os campos de soma de quantidade de registro são calculados automaticamente pela Sintegra32dll.dll?

  Sim. Sempre ao iniciar a geração de um novo arquivo todas as chamadas às funções de registro da sintegra32dll.dll são totalizadas em registradores internos que armazanam o total de chamadas a cada tipo de registro, assim ao final da geração do arquivo, a chamada ao registro 90 é calculado automaticamente.

voltar

19- A Sintegra32dll.dll trata as informações do registros de sintegra disponibilizados pelos ECFs?

   Na versão 3 da sintegra32dll.dll foram disponibilizados os registros 60Mecf e 60Aecf, que são funções capazes de receber um arquivo de retorno.txt (padrão Bematech FI2) e trata-lo de forma a retornar as varíaveis contidas no arquivo necessárias à geração do sintegra.

  O produto acompanha um arquivo de retorno.txt para testes exemplificando o uso das funções descritas. Vide exemplo Sem Banco de Dados botões "Registro 60Mecf" e "Registro 60Aecf"

  O arquivo retorno.txt é gerado pelas impressoras Bematech após a chamada dos comandos no ECF, que são feitas através da dll da bematech e não da sintegra32dll.dll.

  Uma vez feita a chamada no ecf o arquivo retorno.txt é gerado e o mesmo deve ser passado como parametro para a sintegra32dll.dll para ser interpretado.

  Alguns usuários tem reportado problemas ao utilizar a função com as novas implementações de dll da Bematech por esse motivo a função Registro 60M_ECF foi descontinuada a alguns meses atrás do produto sintegra32dll.dll para futuras alterações, devido a problemas que os usuários tem encontrado na compatibilidade quando ocorre a alteração da versão e formato do arquivo por parte da Bematech.

  A função disponível da dll está implementada para o padrão que acompanha o demo e funciona corretamente nos modelos mais antigos da Bematech. (Ver RetornoM.txt e RetornoA.txt)

  Devido ao fato de ter sido discontinuada estamos disponibilizando o código da função aos usuários, para que os mesmos possam realizar as alterações para compatibilidade com a novas versões da bematech, implementando as mesmas em seus sistemas gerenciais. Entre em contato e solicite o código do mesmo caso deseje recebe-lo.

voltar

20- A Sintegra32dll.dll por ser utilizada no Delphi 7?

  O código da Sintegra32dll.dll foi desenvolvido em Delphi 6 e é totalmente composto por código nativo do Delphi, podendo portanto ser compilado em qualquer versão do Delphi sem maiores complicações, devido a garantias de interoperabilidade entre versões fornecidas pela própria Borland.

  Caso queira testar você mesmo a compatibilidade, basta fazer o download do projeto demo, totalmente funcional, seguir o passo descrito no arquivo leiame.txt e recompilar o demo na versão do Delphi desejada.

voltar

21- Ao gerar o arquivo utilizando a Sintegra32dll.dll versão 3.0, quando passo uma aliquota tipo 7,00% ela formata como 700 quando o correto é 0700. O mesmo ocorre com aliquotas zeradas... estou fazendo algo errado?

  A passagem dos valores do banco de dados para a dll deve ser feita como demonstrado no demo com banco de dados disponibilizado juntamente com a dll, e mostrado abaixo:

//Passagem dos valores para a dll
FormatCurr('0000', MyQuery.Fields.FieldByName('campo_aliquota').AsFloat);

voltar

22- Tenho um cliente que roda novell 3.12, que não suporta nome de arquivo com mais de 8 digitos. Posso renomear a sintegra32dll.dll sem problemas?

  Sim. A dll pode ser renomeada sem problema. No entanto é necessário alterar
o seu programa para fazer a chamada da dll de acordo com o novo nome
atribuído, por exemplo.

//Chamada Original
Procedure Inicia_SIntegra; stdcall; external 'SIntegra32Dll.dll';

SIntegra32Dll.dll > Alteração do nome da dll para Meu_Nome.dll

//Chamada Original Alterada
Procedure Inicia_SIntegra; stdcall; external 'Meu_Nome.dll';

voltar

23- O código fonte da Sintegra32dll.dll é todo aberto ou tem partes fechadas, como outras dlls restritas?

  O código fonte da dll é completamente aberto e comentado, não fazendo uso de nenhuma outra dll ou unit auxiliar para o seu correto funcionamento. Veja a resposta nº 26 para maiores informações sobre a Borlndmm.dll que acompanha o Delphi.

voltar

24- A sintegra32dll.dll é compatível com Acess, VB, FoxPro e outros compiladores?

  A Sintegra32dll.dll é teoricamente compatível com qualquer compilador Win32, no entanto os demos de uso do produto, bem como seus fontes estão disponíveis somente em Delphi.

  A implementação em outras linguagens requer que o desenvolvedor tenha total conhecimento do ambiente em que deseja fazer a implementação, uma vez que não conhecemos os processos relativos a todas as linguagens (nossa equipe trabalha unicamente com Delphi), o suporte do uso do produto em outras linguagens é fornecido somente sobre o ponto de vista de uso geral da dll, não incluindo problemas por exemplo de como fazer chamadas da dll na linguagem escolhida ou passagem de parâmetros etc.

  Aconselhamos a todos os desenvolvedores que desejam adquirir o produto e não tem certeza de suas habilidades para realizar a comunicação em outras linguagens, ou quanto a compatibilidade com sistemas de terceiros, que façam o download da versão gratuita, totalmente funcional e realizem seus próprios testes. Efetuando a compra apenas se o produto vier a satizfazer totalmente suas espectativas.

voltar

25- Estou com um problema com algumas inscrições estaduais de Produtor Rural, pois o formato é diferente dos demais.

1. A versão 3.0 da sintegra32dll.dll utiliza uma função de validação de incrição estadual própria, corrigindo assim o problema descrito no FAQ das versões anteriores causado pela dll de validação disponibilizada pelo site oficial do sintegra, onde toda vez que se usa a dll de validação em modo debug surgem diversos erros de conversão.
3. A função utilizada pela sintegra32dll.dll v3.0 para validação de incrição estadual, não validava corretamente apenas inscrições estaduais de produtor rural.
4. A validação de inscrição estadual de produtor rural varia para cada unidade da federação e sua implementação em delphi não está disponível para download em nenhum lugar na internet, dificultando bastante nosso trabalho.
5 . Tendo em vista os problemas apresentados na versão v4.0 da sintegra32dll.dll foi desabilitada a validação de inscrição estadual.
6. Para validadar as inscrições estaduais, o desenvolvedor deve utilizar a dll oficial disponível em www.sintegra.gov.br (que trata corretamente inscrições estaduais de produtor rural)

voltar

26- Sempre que vou utilizar a Sintegra32dll.dll aparece a mensagem que nao encontra a Borlndmm.dll. O que está acontecendo?

Esta dll é necessária devido ao gerenciamento de memoria do delphi em dlls, conforme mensagem (abaixo) que é colocada na unit quando vc cria uma dll no delphi em Menu> File> New> Dll.

Ela acompanha o delphi e deve ser distribuida em conjunto com sua aplicação.

{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters.}

voltar

27- Onde encontro informações sobre a Sintegra32dll.dll?

São fontes de informações e uso da Sintegra32dll.dll:

1. Site oficial do produto.
2. Download do demo de uso completo da Sintegra32dll.dll sem banco de dados ou do demo com banco de dados interbase.
3. FAQ completo com perguntas frequentes sobre o produto (este documento).
4. Artigo publicado na revista TheClub Edição 103 descrevendo de forma geral o processo do Sintegra e da sintegra32dll.dll.
5. Série de 3 artigos publicados na revista TheClub nas Edições 119, 121 e 122 descrevendo todo o processo do Sintegra de forma mais abrangente.
6. Coluna mensal publicada no site da revista ClubeDelphi somente sobre o tema Sintegra.

voltar