Não é possível registar um pagamento que contém a retenção na fonte depois de alterar a conta de balanço na versão italiana do Microsoft Dynamics NAV 2009

Traduções de Artigos Traduções de Artigos
Artigo: 2882916 - Ver produtos para os quais este artigo se aplica.
Este artigo aplica-se para o Microsoft Dynamics NAV para a região do idioma italiano (-).
Nota Este é um artigo "Publicar rápida" criado directamente a partir da organização de suporte da Microsoft. As informações contidas neste documento são fornecidas como-é em resposta a questões emergentes. Como resultado a velocidade em tornando disponível, os materiais podem incluir erros tipográficos e podem ser revistos em qualquer altura sem aviso prévio. Consulte Termos de utilização para outras considerações.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Suponha que aplicar a actualização 979022 para a versão italiana do Microsoft Dynamics NAV 2009. Depois de alterar a conta de balanço, não é possível registar um pagamento que contém a retenção na fonte.

Este problema ocorre nos seguintes produtos:
  • A versão italiana do Microsoft Dynamics NAV 2009 Service Pack 1
  • A versão italiana do Microsoft Dynamics NAV 2009 R2
Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
979022 Não receberá qualquer aviso quando regista um pagamento de uma factura de retenção na fonte sem cálculo de retenção na fonte na versão italiana do Microsoft Dynamics NAV

Resolução

Informações sobre a correcção

Agora tem uma correcção suportada disponível na Microsoft. Contudo, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do Microsoft Dynamics NAV 2009 ou a próxima versão do Microsoft Dynamics NAV que contenha esta correcção.

Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte podem ser anulados se um técnico de suporte técnico Microsoft Dynamics e produtos relacionados determina que uma actualização específica resolverá o problema. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas que se enquadrem na atualização específica em questão.

Informações de instalação

A Microsoft fornece exemplos de programação apenas, a título sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e com as ferramentas que são utilizadas para criar e depurar procedimentos. Técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Nota Antes de instalar esta correcção, certifique-se de que todos os utilizadores de cliente do Microsoft Dynamics NAV são registados no sistema. Isto inclui serviços de servidor de aplicação (NAS) do Microsoft Dynamics NAV. Deverá ser o único usuário do cliente que tem sessão iniciada quando implementar esta correcção.

Para implementar esta correcção, tem de ter uma licença de desenvolvedor.

Recomendamos que a conta de utilizador na janela Windows Logins ou na janela Logins de base de dados seja atribuída a ID de função "SUPER". Se a conta de utilizador não é possível atribuir o ID de função "SUPER", tem de verificar que a conta de utilizador tem as seguintes permissões:
  • A permissão Modificar para o objecto que estará a alterar.
  • A permissão executar para o objecto 5210 de ID de objecto de sistema e para o objecto 9015 de ID de objecto de sistema .
Nota Não é necessário ter direitos para os arquivos de dados, a menos que tenha que efectuar a reparação de dados.

Alterações de código

Nota Sempre o código de ensaio corrige num ambiente controlado antes de aplicar as correcções para os computadores de produção.

Para resolver este problema, altere o código na função CheckWithholdTax no diário de Gr.-Post linha Codeuint (12), da seguinte forma:

Código existente 1

...
UNTIL OldCustLedgEntry.NEXT = 0;
      END;

// Delete the following lines.
     PROCEDURE CheckWithholdTax@1130007(DocType@1130000 : ' ,,Invoice,Credit Memo';DocNo@1130001 : Code[20];GenJnlLine@1130002 : Record 81;ApplyInGenJnlLine@1130003 : Boolean);
     VAR
       ComputedWithholdTax@1130004 : Record 12111;
       TmpWithholdingContribution@11300005 : Record 12113;
       WithholdCode@1130006 : Record 12104;
     BEGIN
       IF DocType IN [DocType::Invoice,DocType::"Credit Memo"] THEN BEGIN
         ComputedWithholdTax.RESET;
         ComputedWithholdTax.SETRANGE("Document No.",DocNo);
         IF ComputedWithholdTax.FINDFIRST THEN BEGIN
// End of the deleted lines.

            IF NOT ApplyInGenJnlLine THEN
              ERROR(Text1130023)
            ELSE BEGIN
...

Código de substituição 1

...
UNTIL OldCustLedgEntry.NEXT = 0;
      END;

// Add the following lines.
     PROCEDURE CheckWithholdTax@1170000000(DocType@1170000000 : ' ,,Invoice,Credit Memo';DocNo@1170000001 : Code[20];GenJnlLine@1170000002 : Record 81;ApplyInGenJnlLine@1170000003 : Boolean);
     VAR
       ComputedWithholdTax@1170000004 : Record 12111;
       TmpWithholdingContribution@1170000005 : Record 12113;
     BEGIN
       IF (DocType IN [DocType::Invoice,DocType::"Credit Memo"]) AND
          (GenJnlLine."Document Type" IN [GenJnlLine."Document Type"::Payment,GenJnlLine."Document Type"::Refund])
       THEN BEGIN
         ComputedWithholdTax.RESET;
         ComputedWithholdTax.SETRANGE("Document No.",DocNo);
         IF NOT ComputedWithholdTax.ISEMPTY THEN
// End of the added lines.

            IF NOT ApplyInGenJnlLine THEN
              ERROR(Text1130023)
            ELSE BEGIN
...

Código existente 2

...
ELSE BEGIN
              TmpWithholdingContribution.RESET;
              TmpWithholdingContribution.SETRANGE("Invoice No.",DocNo);

// Delete the following lines.
             IF NOT TmpWithholdingContribution.FINDFIRST THEN BEGIN
               WithholdCode.GET(ComputedWithholdTax."Withholding Tax Code");
               WithholdCode.TESTFIELD("Withholding Taxes Payable Acc.");
               IF NOT((GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::"G/L Account") AND
                  (GenJnlLine."Bal. Account No." = WithholdCode."Withholding Taxes Payable Acc.")) THEN
                 ERROR(Text1130023);
             END;
           END;
         END;
// End of the deleted lines.

        END;
      END;
...

Código de substituição 2

...
ELSE BEGIN
              TmpWithholdingContribution.RESET;
              TmpWithholdingContribution.SETRANGE("Invoice No.",DocNo);

// Add the following lines.
             IF TmpWithholdingContribution.ISEMPTY THEN
               IF (GenJnlLine."Bal. Account Type" <> GenJnlLine."Bal. Account Type"::"G/L Account") THEN
                 ERROR(Text1130023);
           END;
// End of the added lines.

        END;
      END;
...

Pré-requisitos

Tem de ter um dos seguintes produtos instalado para aplicar esta correcção:
  • A versão italiana do Microsoft Dynamics NAV 2009 Service Pack 1
  • A versão italiana do Microsoft Dynamics NAV 2009 R2

Informações de remoção

É possível remover esta correcção.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Propriedades

Artigo: 2882916 - Última revisão: 16 de outubro de 2013 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Dynamics NAV 2009
Palavras-chave: 
kbqfe kbmbsmigrate kbsurveynew kbmbscodefix kbmt KB2882916 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2882916

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com