Бързо публикуваните статии предоставят информация директно от организацията за поддръжка на Microsoft. Информацията, която се съдържа в този документ, е създадена в отговор на нововъзникнали или уникални теми или е предназначена да допълни друга информация в базата знания.
Microsoft Business Solutions-Navision 4.0 и Microsoft Navision 4.0 вече са част от Microsoft Dynamics NAV 4.0. Всички препратки към Microsoft Business Solutions-Navision или Microsoft Navision 4.0 се отнасят до Microsoft Dynamics NAV.
Тази статия се отнася за Microsoft Dynamics NAV 5.0 за езиково-географската променлива на испански (es).
Симптоми
Когато публикувате фактура, която има ред за начисляване на артикул и ред за начисляване на артикул в испанската версия на Microsoft Dynamics NAV, редът от дневника на интрастат е неправилен. Този проблем възниква, ако се използва отстъпка за фактура и отстъпка при плащане.
Този проблем възниква в следните продукти:
Испанска версия на Microsoft Dynamics NAV 2009
Испанската версия на Microsoft Dynamics NAV 5.0
Испанската версия на Microsoft Dynamics NAV 4.0
Причина
Този проблем възниква, защото Microsoft Dynamics NAV не взема предвид отстъпката в таксата за артикул, която се прилага към реда с елементи.
Решение
Информация за горещи поправки
Поддържа гореща поправка вече се предлага от Microsoft. Целта му е обаче само да коригира проблема, който е описан в тази статия. Прилагайте го само към системи, които срещат този конкретен проблем. Тази гореща корекция може да бъде подложена на допълнително тестване. Ето защо, ако не сте сериозно засегнати от този проблем, ви препоръчваме да изчакате следващия сервизен пакет за Microsoft Dynamics NAV или следващата версия на Microsoft Dynamics NAV, която съдържа тази гореща корекция.
Забележка: При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако специалист по техническа поддръжка за Microsoft Dynamics и свързаните продукти реши, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.
Информация за инсталиране
Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, нито изрична, или подразбираща се. Това включва, но не се ограничава до, подразбиращите се гаранции за продаваемост или годност за определена цел. В тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и за процедури за отстраняване на грешки. Инженерите по поддръжка на Microsoft могат да ви помогнат да обяснят функционалността на дадена процедура, но няма да променят тези примери, за да предоставят допълнителна функционалност или да конструират процедури, които да отговарят на вашите конкретни изисквания.
Забележка Преди да инсталирате тази гореща корекция, уверете се, че всички потребители на клиента на Microsoft Navision са излезли от системата. Това включва потребители на клиенти на Microsoft Navision Application Services (NAS). Когато внедрявате тази гореща корекция, трябва да сте единственият клиентски потребител е влязъл.
За да приложите тази гореща корекция, трябва да имате лиценз за разработчик.
Препоръчваме на потребителския акаунт в прозореца за влизане в Windows или в прозореца за влизане в база данни да бъде присвоен ИД на роля "SUPER". Ако на потребителския акаунт не може да бъде присвоен ИД на роля "SUPER", трябва да се уверите, че този потребителски акаунт има следните разрешения:
- Разрешението за промяна за обекта, който ще променяте.
- Разрешението за изпълнение за обекта 5210 на системен обект с ИД 5210 и за обекта 9015 на системен обект.
Забележка: Не е необходимо да имате права за хранилищата за данни, освен ако не трябва да извършите поправка на данни.
Промени в кода
Забележка: Винаги тествайте корекциите на кода в контролирана среда, преди да ги приложите към производствените си компютри.
За да приложите тази гореща корекция, изпълнете следните стъпки:
Променете кода в активатора UpdateVATOnLines в таблицата с редове за продажби (37), както следва:
Съществуващ код... END; InitOutstanding; MODIFY; RecRef.GETTABLE(SalesLine); ...Код за подмяна
... END; InitOutstanding; // Add the following lines. IF Type = Type::"Charge (Item)" THEN UpdateItemChargeAssgnt; // End of the added lines. MODIFY; RecRef.GETTABLE(SalesLine); ...Променете кода в активатора UpdateVATOnLines в таблицата с редове за закупуване (39), както следва:
Съществуващ код... UpdateUnitCost; END; MODIFY; RecRef.GETTABLE(PurchLine); ...Код за подмяна
... UpdateUnitCost; END; // Add the following lines. IF Type = Type::"Charge (Item)" THEN UpdateItemChargeAssgnt; // End of the added lines. MODIFY; RecRef.GETTABLE(PurchLine); ...Променете кода в превключвателя InitValueEntry в кодовата единица на реда Jnl.-Post (22) на елемента по следния начин:
Съществуващ код 1... IF GLSetup."Additional Reporting Currency" <> '' THEN ValueEntry."Cost per Unit (ACY)" := RetrieveCostPerUnitACY(ValueEntry."Cost per Unit"); // Delete the following lines. IF (ValueEntry."Valued Quantity" > 0) AND (ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Purchase) AND // End of the deleted lines. (ValueEntry."Entry Type" = ValueEntry."Entry Type"::"Direct Cost") THEN BEGIN IF Item."Costing Method" = Item."Costing Method"::Standard THEN ...Код за замяна 1
... IF GLSetup."Additional Reporting Currency" <> '' THEN ValueEntry."Cost per Unit (ACY)" := RetrieveCostPerUnitACY(ValueEntry."Cost per Unit"); // Add the following line. IF (ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Purchase) AND (ValueEntry."Entry Type" = ValueEntry."Entry Type"::"Direct Cost") THEN BEGIN IF Item."Costing Method" = Item."Costing Method"::Standard THEN ...Съществуващ код 2
... END; ValueEntry."Cost Amount (Actual)" := CostAmt; ValueEntry."Cost Amount (Actual) (ACY)" := CostAmtACY; // Delete the following lines. IF (GLSetup."Payment Discount Type" = GLSetup."Payment Discount Type"::"Calc. Pmt. Disc. on Lines") THEN IF (ValueEntry."Discount Amount" <> 0) AND (ItemJnlLine."Item Charge No." <> '') THEN BEGIN ValueEntry."Cost Amount (Actual)" := ValueEntry."Cost Amount (Actual)" - "Discount Amount"; ValueEntry."Purchase Amount (Actual)" := ValueEntry."Purchase Amount (Actual)" - "Discount Amount"; END; // End of the deleted lines. END; (ValueEntry."Expected Cost" = TRUE) AND (ValueEntry.Inventoriable = TRUE): ...Код за замяна 2
... END; ValueEntry."Cost Amount (Actual)" := CostAmt; ValueEntry."Cost Amount (Actual) (ACY)" := CostAmtACY; END; (ValueEntry."Expected Cost" = TRUE) AND (ValueEntry.Inventoriable = TRUE): ...Съществуващ код 3
... ValueEntry."Cost Amount (Non-Invtbl.)(ACY)" := CostAmtACY; END; END; END; RoundAmtValueEntry(ValueEntry); ...Код за замяна 3
... ValueEntry."Cost Amount (Non-Invtbl.)(ACY)" := CostAmtACY; END; END; END; // Add the following lines. IF (GLSetup."Payment Discount Type" = GLSetup."Payment Discount Type"::"Calc. Pmt. Disc. on Lines") THEN BEGIN IF (ValueEntry."Discount Amount" <> 0) AND (ItemJnlLine."Item Charge No." <> '') THEN BEGIN CASE "Entry Type" OF "Entry Type"::Sale: ValueEntry."Sales Amount (Actual)" := ValueEntry."Sales Amount (Actual)" - ItemJnlLine."Pmt. Discount Amount"; "Entry Type"::Purchase: BEGIN ValueEntry."Cost Amount (Actual)" := CostAmt - ItemJnlLine."Pmt. Discount Amount"; ValueEntry."Purchase Amount (Actual)" := ValueEntry."Purchase Amount (Actual)" - ItemJnlLine."Pmt. Discount Amount"; END; END; END; END; // End of the added lines. RoundAmtValueEntry(ValueEntry); ...Променете кода в превключвателя PostItemChargePerOrder в Sales-Post кодова единица (80), както следва:
Съществуващ код... IF SalesHeader."Currency Code" <> '' THEN ItemJnlLine2."Discount Amount" := ROUND( CurrExchRate.ExchangeAmtFCYToLCY( UseDate,SalesHeader."Currency Code", // Delete the following line. (ItemChargeSalesLine."Inv. Discount Amount" + ItemChargeSalesLine."Pmt. Disc. Given Amount") * ItemJnlLine2."Invoiced Qty. (Base)" / ItemChargeSalesLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice, SalesHeader."Currency Factor"),GLSetup."Amount Rounding Precision") ELSE ItemJnlLine2."Discount Amount" := ROUND( // Delete the following line. (ItemChargeSalesLine."Inv. Discount Amount" + ItemChargeSalesLine."Pmt. Disc. Given Amount") * ItemChargeSalesLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice, GLSetup."Amount Rounding Precision"); // Delete the following lines. IF "Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"] THEN ItemJnlLine2."Discount Amount" := -ItemJnlLine2."Discount Amount"; // End of the added lines. ItemJnlLine2."Shortcut Dimension 1 Code" := ItemChargeSalesLine."Shortcut Dimension 1 Code"; ...Код за подмяна
... IF SalesHeader."Currency Code" <> '' THEN ItemJnlLine2."Discount Amount" := ROUND( CurrExchRate.ExchangeAmtFCYToLCY( UseDate,SalesHeader."Currency Code", // Add the following lines. (ItemChargeSalesLine."Line Discount Amount" + ItemChargeSalesLine."Inv. Discount Amount" + ItemChargeSalesLine."Pmt. Disc. Given Amount") * // End of the added lines. ItemJnlLine2."Invoiced Qty. (Base)" / ItemChargeSalesLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice, SalesHeader."Currency Factor"),GLSetup."Amount Rounding Precision") ELSE ItemJnlLine2."Discount Amount" := ROUND( // Add the following lines. (ItemChargeSalesLine."Line Discount Amount" + ItemChargeSalesLine."Inv. Discount Amount" + ItemChargeSalesLine."Pmt. Disc. Given Amount") * // End of the added lines. ItemJnlLine2."Invoiced Qty. (Base)" / ItemChargeSalesLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice, GLSetup."Amount Rounding Precision"); // Add the following lines. ItemJnlLine2."Pmt. Discount Amount" := ItemChargeSalesLine."Pmt. Disc. Given Amount" * ItemJnlLine2."Invoiced Qty. (Base)" / ItemChargeSalesLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice; IF "Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"] THEN BEGIN ItemJnlLine2."Discount Amount" := -ItemJnlLine2."Discount Amount"; ItemJnlLine2."Pmt. Discount Amount" := -ItemJnlLine2."Pmt. Discount Amount"; END; // End of the added lines. ItemJnlLine2."Shortcut Dimension 1 Code" := ItemChargeSalesLine."Shortcut Dimension 1 Code"; ...Променете кода в превключвателя PostItemChargePerOrder в кодовата единица Purch.-Post (90), както следва:
Съществуващ код... ItemChargePurchLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice, GLSetup."Amount Rounding Precision"); ItemJnlLine2."Shortcut Dimension 1 Code" := ItemChargePurchLine."Shortcut Dimension 1 Code"; ItemJnlLine2."Shortcut Dimension 2 Code" := ItemChargePurchLine."Shortcut Dimension 2 Code"; ...Код за подмяна
... ItemChargePurchLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice, GLSetup."Amount Rounding Precision"); // Add the following lines. ItemJnlLine2."Pmt. Discount Amount" := ItemChargePurchLine."Pmt. Disc. Rcd. Amount" * ItemJnlLine2."Invoiced Qty. (Base)" / ItemChargePurchLine."Quantity (Base)" * "Qty. to Assign" / QtyToInvoice; IF "Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"] THEN BEGIN ItemJnlLine2."Discount Amount" := -ItemJnlLine2."Discount Amount"; ItemJnlLine2."Pmt. Discount Amount" := -ItemJnlLine2."Pmt. Discount Amount"; END; // End of the added lines. ItemJnlLine2."Shortcut Dimension 1 Code" := ItemChargePurchLine."Shortcut Dimension 1 Code"; ...
Предварителни изисквания
Трябва да имате инсталиран един от следните продукти, за да приложите тази гореща корекция:
- Испанска версия на Microsoft Dynamics NAV 2009 Service Pack 1
- Испанска версия на Microsoft Dynamics NAV 2009
- Испанската версия на Microsoft Dynamics NAV 5.0 Service Pack 1
- Испанската версия на Microsoft Dynamics NAV 4.0 Service Pack 3
Информация за премахване
Не можете да премахнете тази гореща корекция.
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
MICROSOFT И/ИЛИ НЕГОВИТЕ ДОСТАВЧИЦИ НЕ ДАВАТ ОБЕЩАНИЯ ИЛИ ГАРАНЦИИ ОТНОСНО ПРИГОДНОСТТА, НАДЕЖДНОСТТА ИЛИ ТОЧНОСТТА НА ИНФОРМАЦИЯТА, КОЯТО СЕ СЪДЪРЖА В ДОКУМЕНТИТЕ И СВЪРЗАНИТЕ ГРАФИКИ, ПУБЛИКУВАНИ НА ТОЗИ УЕБ САЙТ ("МАТЕРИАЛИТЕ"), ЗА КАКВАТО И ДА Е ЦЕЛ.
МАТЕРИАЛИТЕ МОГАТ ДА ВКЛЮЧВАТ ТЕХНИЧЕСКИ НЕТОЧНОСТИ ИЛИ ПЕЧАТНИ ГРЕШКИ И МОГАТ ДА БЪДАТ КОРИГИРАНИ ПО ВСЯКО ВРЕМЕ БЕЗ ПРЕДИЗВЕСТИЕ. ДО МАКСИМАЛНАТА СТЕПЕН, РАЗРЕШЕНА ОТ ПРИЛОЖИМОТО ЗАКОНОДАТЕЛСТВО, MICROSOFT И/ИЛИ НЕЙНИТЕ ДОСТАВЧИЦИ ОТХВЪРЛЯТ И ИЗКЛЮЧВАТ ВСИЧКИ ДЕКЛАРАЦИИ, ГАРАНЦИИ И УСЛОВИЯ, НЕЗАВИСИМО ДАЛИ СА ИЗРИЧНИ, ПОДРАЗБИРАЩИ СЕ, ИЛИ ЗАКОНОВИ, ВКЛЮЧИТЕЛНО, НО НЕ САМО, ДЕКЛАРАЦИИ, ГАРАНЦИИ ИЛИ УСЛОВИЯ ЗА СОБСТВЕНОСТ, НЕНАРУШЕНИЕ, ЗАДОВОЛИТЕЛНО СЪСТОЯНИЕ ИЛИ КАЧЕСТВО, ПРОДАВАЕМОСТ И ПРИГОДНОСТ ЗА ОПРЕДЕЛЕНА ЦЕЛ, ПО ОТНОШЕНИЕ НА МАТЕРИАЛИТЕ.