Este artigo aplica-se ao MICROSOFT Dynamics NAV para o local de língua espanhola (es) local.
Sintomas
Assuma que a caixa de verificação do serviço da UE está selecionada na caixa de diálogo de configuração de registo do IVA na versão espanhola do MICROSOFT Dynamics NAV. Quando gera o ficheiro de declaração 349, o valor no ficheiro exportado está incorreto.
Este problema ocorre nos seguintes produtos:-
A versão espanhola do Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
-
A versão espanhola do Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
Resolução
Informações sobre hotfix
Um hotfix suportado está agora disponível da Microsoft. No entanto, pretende-se apenas corrigir o problema descrito neste artigo. Aplique-o apenas aos sistemas que estão a passar por este problema específico. Este hotfix pode receber testes adicionais. Portanto, se não for severamente afetado por este problema, recomendamos que aguarde o próximo pacote de serviços MICROSOFT Dynamics NAV 2009 ou a próxima versão NAV da Microsoft Dynamics que contenha este hotfix.
Nota Em casos especiais, as taxas que são normalmente incorridos para chamadas de suporte podem ser canceladas se um Profissional de Suporte Técnico da Microsoft Dynamics e produtos relacionados determinar que uma atualização específica irá resolver o seu problema. Os custos normais do suporte serão aplicados a problemas e questões de suporte adicionais que não sejam qualificáveis para a atualização específica em questão.
Informação de instalação
A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isto inclui, mas não se limita a, as garantias implícitas de mercadoriedade ou aptidão para um determinado propósito. Este artigo assume que está familiarizado com a linguagem de programação que está a ser demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não irão modificar estes exemplos para fornecer funcionalidades adicionais ou procedimentos de construção para satisfazer os seus requisitos específicos.
Nota Antes de instalar este hotfix, verifique se todos os utilizadores de clientes da Microsoft Navision estão desligados do sistema. Isto inclui os utilizadores de clientes microsoft Navision Application Services (NAS). Deverá ser o único utilizador cliente que está ligado quando implementar este hotfix. Para implementar este hotfix, você deve ter uma licença de desenvolvedor. Recomendamos que a conta de utilizador na janela do Windows Logins ou na janela De Logins da Base de Dados seja atribuída ao ID de função "SUPER". Se a conta de utilizador não puder ser atribuída ao ID de função "SUPER", deve verificar se a conta de utilizador tem as seguintes permissões:-
A permissão de Modificar para o objeto que irá alterar.
-
A permissão de executar para o objeto ID 5210 do objeto do objeto de identificação do objeto do sistema e para o objeto ID 9015 do objeto do sistema.
Nota Não tem de ter direitos sobre as lojas de dados a não ser que tenha de efetuar a reparação de dados.
Alterações de código
Nota Sempre o código de teste corrige num ambiente controlado antes de aplicar as correções nos seus computadores de produção.
Para resolver este problema, siga estes passos:-
Alterar o código nas secções número 5 do número de dados no relatório da Declaração Make 349 (88) da seguinte forma:
Código 1 existenteBEGIN
REPEAT //Delete the following line. VATInvSales.RESET; VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale); VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);Código de substituição 1
BEGIN
REPEAT //Add the follwing lines. LastTransactionNo := 0; VATInvSales.RESET; VATInvSales.SETCURRENTKEY("Transaction No."); //End of the lines. VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale); VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);Código 2 existente
IF "VAT Registration No." <> '' THEN BEGIN
IF AmountToIncludein349 <> 0 THEN BEGIN //Delete the following lines. OpTriang := 'X'; AmountOpTri := AmountOpTri + AmountToIncludein349 //End of the lines. END ELSE BEGIN OpTriang := 'X';Código de substituição 2
IF "VAT Registration No." <> '' THEN BEGIN
IF AmountToIncludein349 <> 0 THEN BEGIN //Add the following lines. IF VATInvSales."Transaction No." <> LastTransactionNo THEN BEGIN OpTriang := 'X'; AmountOpTri := AmountOpTri + AmountToIncludein349; END; //End of the lines. END ELSE BEGIN OpTriang := 'X';Código 3 existente
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvSales.Base; UNTIL VATInvSales.NEXT = 0; END;Código de substituição 3
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvSales.Base; //Add the following line. LastTransactionNo := VATInvSales."Transaction No."; UNTIL VATInvSales.NEXT = 0; END;Código 4 existente
UNTIL VATInvSales.NEXT = 0;
END; //Delete the following line. VATInvSales.RESET; VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale); VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);Código de substituição 4
UNTIL VATInvSales.NEXT = 0;
END; //Add the following lines. LastTransactionNo := 0; VATInvSales.RESET; VATInvSales.SETCURRENTKEY("Transaction No."); //End of the lines. VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale); VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);Código 5 existente
((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Delete the following lines. IF AmountToIncludein349 <> 0 THEN NormalAmount := NormalAmount + AmountToIncludein349 ELSE //End of the lines. NormalAmount := NormalAmount + VATInvSales.Base; END ELSECódigo de substituição 5
((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Add the following lines. IF AmountToIncludein349 <> 0 THEN BEGIN IF VATInvSales."Transaction No." <> LastTransactionNo THEN NormalAmount := NormalAmount + AmountToIncludein349; END ELSE //End of the lines. NormalAmount := NormalAmount + VATInvSales.Base; END ELSECódigo 6 existente
END;
// NormalAmount := NormalAmount + VATInvSales.Base; UNTIL VATInvSales.NEXT = 0; END;Código de substituição 6
END;
// NormalAmount := NormalAmount + VATInvSales.Base; //Add the following line. LastTransactionNo := VATInvSales."Transaction No."; UNTIL VATInvSales.NEXT = 0; END;Código 7 existente
END;
//Delete the following line. VATInvSales.RESET; VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale); VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);Código de substituição 7
END;
//Add the following lines. LastTransactionNo := 0; VATInvSales.RESET; VATInvSales.SETCURRENTKEY("Transaction No."); //End of the lines. VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale); VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);Código 8 existente
((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Delete the following lines. IF AmountToIncludein349 <> 0 THEN AmountEUService := AmountEUService + AmountToIncludein349 ELSE //End of the lines. AmountEUService := AmountEUService + VATInvSales.Base; END ELSECódigo de substituição 8
((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Add the following lines. IF AmountToIncludein349 <> 0 THEN BEGIN IF VATInvSales."Transaction No." <> LastTransactionNo THEN AmountEUService := AmountEUService + AmountToIncludein349; END ELSE //End of the lines. AmountEUService := AmountEUService + VATInvSales.Base; END ELSECódigo 9 existente
END;
END; UNTIL VATInvSales.NEXT = 0;Código de substituição 9
END;
END; //Add the following line. LastTransactionNo := VATInvSales."Transaction No."; UNTIL VATInvSales.NEXT = 0; -
Alterar o código nas secções número 6 do número de dados no relatório da Declaração Make 349 (88) da seguinte forma:
Código 1 existenteBEGIN
REPEAT //Delete the following line. VATInvPurch.RESET; VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase); VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);Código de substituição 1
BEGIN
REPEAT //Add the following lines. LastTransactionNo := 0; VATInvPurch.RESET; VATInvPurch.SETCURRENTKEY("Transaction No."); //End of the lines. VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase); VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);Código 2 existente
IF "VAT Registration No." <> '' THEN BEGIN
IF AmountToIncludein349 <> 0 THEN BEGIN //Delete the following lines. OpTriang := 'X'; AmountOpTri := AmountOpTri + AmountToIncludein349; //End of the lines. END ELSE BEGIN OpTriang := 'X';Código de substituição 2
IF "VAT Registration No." <> '' THEN BEGIN
IF AmountToIncludein349 <> 0 THEN BEGIN //Add the following lines. IF VATInvPurch."Transaction No." <> LastTransactionNo THEN BEGIN OpTriang := 'X'; AmountOpTri := AmountOpTri + AmountToIncludein349; END; //End of the lines. END ELSE BEGIN OpTriang := 'X';Código 3 existente
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvPurch.Base; UNTIL VATInvPurch.NEXT = 0; END;Código de substituição 3
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvPurch.Base; //Add the following line. LastTransactionNo := VATInvPurch."Transaction No."; UNTIL VATInvPurch.NEXT = 0; END;Código 4 existente
UNTIL VATInvPurch.NEXT = 0;
END; //Delete the following line. VATInvPurch.RESET; VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase); VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);Código de substituição 4
UNTIL VATInvPurch.NEXT = 0;
END; //Add the following lines. LastTransactionNo := 0; VATInvPurch.RESET; VATInvPurch.SETCURRENTKEY("Transaction No."); //End of the lines. VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase); VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);Código 5 existente
((VATInvPurch."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Delete the following lines. IF AmountToIncludein349 <> 0 THEN NormalAmount := NormalAmount + AmountToIncludein349 ELSE //End of the lines. NormalAmount := NormalAmount + VATInvPurch.Base; END ELSECódigo de substituição 5
((VATInvPurch."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Add the following lines. IF AmountToIncludein349 <> 0 THEN BEGIN IF VATInvPurch."Transaction No." <> LastTransactionNo THEN NormalAmount := NormalAmount + AmountToIncludein349; END ELSE //End of the lines. NormalAmount := NormalAmount + VATInvPurch.Base; END ELSECódigo 6 existente
END;
// NormalAmount := NormalAmount + VATInvPurch.Base; UNTIL VATInvPurch.NEXT = 0; END;Código de substituição 6
END;
// NormalAmount := NormalAmount + VATInvPurch.Base; //Add the following line. LastTransactionNo := VATInvPurch."Transaction No."; UNTIL VATInvPurch.NEXT = 0; END;Código 7 existente
UNTIL VATInvPurch.NEXT = 0;
END; //Delete the following line. VATInvPurch.RESET; VATInvPurch.SETRANGE(Type,VATInvPurch.Type::Purchase); VATInvPurch.SETRANGE("Document Type",VATInvPurch."Document Type"::Invoice);Código de substituição 7
UNTIL VATInvPurch.NEXT = 0;
END; //Add the following lines. LastTransactionNo := 0; VATInvPurch.RESET; VATInvPurch.SETCURRENTKEY("Transaction No."); //End of the lines. VATInvPurch.SETRANGE(Type,VATInvPurch.Type::Purchase); VATInvPurch.SETRANGE("Document Type",VATInvPurch."Document Type"::Invoice);Código 8 existente
THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Delete the following lines. IF AmountToIncludein349 <> 0 THEN AmountEUService := AmountEUService + AmountToIncludein349 ELSE //End of the lines. AmountEUService := AmountEUService + VATInvPurch.Base; END ELSECódigo de substituição 8
THEN BEGIN
IF "VAT Registration No." <> '' THEN BEGIN //Add the following lines. IF AmountToIncludein349 <> 0 THEN BEGIN IF VATInvPurch."Transaction No." <> LastTransactionNo THEN AmountEUService := AmountEUService + AmountToIncludein349; END ELSE //End of the lines. AmountEUService := AmountEUService + VATInvPurch.Base; END ELSECódigo 9 existente
END;
END; UNTIL VATInvPurch.NEXT = 0;Código de substituição 9
END;
END; //Add the following line. LastTransactionNo := VATInvPurch."Transaction No."; UNTIL VATInvPurch.NEXT = 0; -
Adicione uma nova variável global no relatório da Declaração Make 349 (88) e especifique a variável da seguinte forma:
-
Nome: LastTransactionNo@1100072
-
DataType: Inteiro
-
Pré-requisitos
Deve ter um dos seguintes produtos instalados para aplicar este hotfix:
-
A versão espanhola do Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
-
A versão espanhola do Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
Deve ter o relatório espanhol 349 instalado para aplicar este hotfix.Relatório Espanhol 349 Adicionalmente, você deve ter o pacote IVA 2010 instalado para aplicar este hotfix. Para mais informações, visite o seguinte website da Microsoft: Microsoft Dynamics NAV Support for IVA 2010
Para mais informações, visite o seguinte website da Microsoft:Informação de remoção
Não pode remover este hotfix.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Nota Este é um artigo "FAST PUBLISH" criado diretamente a partir da organização de suporte da Microsoft. As informações contidas no presente documento são fornecidas tal como estão em resposta a problemas emergentes. Em consequência da velocidade de disponibilização, os materiais poderão conter erros tipográficos e poderão ser revistos a qualquer momento, sem aviso antecipado. Consulte os Termos de Utilização para obter informações sobre outras considerações.