Ця стаття відноситься до Microsoft Dynamics NAV всі країни і всі мови.
Причини
Під час створення контракт на обслуговування (не Передплата) і змінити рахунку-фактури перед надсиланням, у Microsoft Dynamics NAV, 2009, існує неузгоджені дані служби книга записів і Головна книга. Ця проблема виникає в таких продуктів:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 пакет оновлень 1 для
Вирішення
Відомості про виправлення
Корпорація Майкрософт випустила підтримуване виправлення доступна. Однак, застосовувати лише для вирішення проблеми, описаної в цій статті. Він придатний лише для систем, які зазнають цієї конкретної проблеми. Те, що це виправлення може потребувати додаткового тестування. Таким чином, якщо ви не завдає значної, рекомендовано почекати до виходу чергового пакета оновлень Microsoft Dynamics NAV, 2009 або наступної версії Microsoft Dynamics NAV, що містить це виправлення.Примітка. В окремих випадках оплату звернення до служби підтримки може бути скасовано якщо технічної підтримки професійного для Microsoft Dynamics і пов'язані продукти визначає телефонів служби. Плата стягується на додаткові питання і проблеми, які не пов'язані з оновленням.
Відомості про інсталяцію
Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації, без гарантій – прямих або інших. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури. Проте вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів.Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що усі користувачі Microsoft Navision-клієнт відключився системи. Пакет оновлень містить служб Microsoft Navision застосунків (NAS) клієнта користувачів. Ви повинні тільки клієнт користувача, який увійшов до системи, під час виконання цього виправлення.Щоб застосувати це виправлення, потрібно мати ліцензію для розробників.Корпорація Майкрософт рекомендує, що обліковий запис користувача Windows, вхід вікна або у вікні бази даних вхід призначити "Супер" роль ID. Якщо обліковий запис користувача не призначено роль ID "Супер", необхідно переконатися, що обліковий запис користувача, має такі дозволи:
-
Змінити дозвіл об'єкт, який буде змінити.
-
Права для виконання системи об'єкт з Ідентифікатором 5210 об'єкт а також системи об'єкт з Ідентифікатором 9015 об'єкта.
Примітка. Маєте відповідних прав у сховища даних, якщо не потрібно виконати дані відновлення не потрібно.
Зміни коду
Примітка. Завжди тест код вирішення в середовищі контрольовані перед інсталяцією розглянутого виправлення виробництва комп'ютерів.Щоб вирішити цю проблему, виконайте такі дії.
-
Змін у документі розмірність (357) наступним чином:Наявний код 1
... Text005@1009 : TextConst 'ENU=Canceled.'; Text006@1010 : TextConst 'ENU=You may have changed a dimension. Some lines are already shipped. When you post the line with the changed dimension to the general ledger, amounts on the Inventory Interim account will be out of balance when reported per dimension.\\Do you want to update the lines?'; PROCEDURE UpdateGlobalDimCode@25(GlobalDimCodeNo@1000 : Integer;"Table ID"@1001 : Integer;"Document Type"@1002 : Option;"Document No."@1003 : Code[20];"Line No."@1004 : Integer;NewDimValue@1005 : Code[20]);...
Код на заміну 1
... Text005@1009 : TextConst 'ENU=Canceled.'; Text006@1010 : TextConst 'ENU=You may have changed a dimension. Some lines are already shipped. When you post the line with the changed dimension to the general ledger, amounts on the Inventory Interim account will be out of balance when reported per dimension.\\Do you want to update the lines?'; Text007@1011 : TextConst 'ENU=You cannot change the dimension because the document is based on a service contract.'; PROCEDURE UpdateGlobalDimCode@25(GlobalDimCodeNo@1000 : Integer;"Table ID"@1001 : Integer;"Document Type"@1002 : Option;"Document No."@1003 : Code[20];"Line No."@1004 : Integer;NewDimValue@1005 : Code[20]);...
Наявний код 2
... PROCEDURE VerifyLineDim@5(VAR DocDim@1000 : Record 357); VAR SalesLine@1001 : Record 37; PurchaseLine@1002 : Record 39; BEGIN CASE "Table ID" OF DATABASE::"Sales Line": BEGIN IF SalesLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN IF (SalesLine."Qty. Shipped Not Invoiced" <> 0) OR (SalesLine."Return Rcd. Not Invd." <> 0) THEN IF NOT CONFIRM(Text004,TRUE,SalesLine.TABLECAPTION) THEN ERROR(Text005) END; DATABASE::"Purchase Line": BEGIN IF PurchaseLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN IF (PurchaseLine."Qty. Rcd. Not Invoiced" <> 0) OR (PurchaseLine."Return Qty. Shipped Not Invd." <> 0) THEN IF NOT CONFIRM(Text004,TRUE,PurchaseLine.TABLECAPTION) THEN ERROR(Text005) END; END; END;...
Код на заміну 2
... PROCEDURE VerifyLineDim@5(VAR DocDim@1000 : Record 357); VAR SalesLine@1001 : Record 37; PurchaseLine@1002 : Record 39; ServiceHeader@1003 : Record 5900; ServiceLine@1004 : Record 5902; BEGIN CASE "Table ID" OF DATABASE::"Sales Line": BEGIN IF SalesLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN IF (SalesLine."Qty. Shipped Not Invoiced" <> 0) OR (SalesLine."Return Rcd. Not Invd." <> 0) THEN IF NOT CONFIRM(Text004,TRUE,SalesLine.TABLECAPTION) THEN ERROR(Text005) END; DATABASE::"Purchase Line": BEGIN IF PurchaseLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN IF (PurchaseLine."Qty. Rcd. Not Invoiced" <> 0) OR (PurchaseLine."Return Qty. Shipped Not Invd." <> 0) THEN IF NOT CONFIRM(Text004,TRUE,PurchaseLine.TABLECAPTION) THEN ERROR(Text005) END; DATABASE::"Service Header": IF ServiceHeader.GET(DocDim."Document Type",DocDim."Document No.") AND (ServiceHeader."Contract No." <> '') THEN ERROR(Text007); DATABASE::"Service Line": IF ServiceLine.GET(DocDim."Document Type",DocDim."Document No.",DocDim."Line No.") THEN IF (ServiceLine."Contract No." <> '') THEN ERROR(Text007); END; END;...
-
Змінити код з рядка таблиці (5902) наступним чином:Наявний код 1
... IF (Quantity <> 0) AND ItemExists(xRec."No.") AND (("Spare Part Action" = "Spare Part Action"::"Component Replaced") OR ("Spare Part Action" = "Spare Part Action"::"Component Installed") OR ("Spare Part Action" = "Spare Part Action"::" ")) THEN ReserveServLine.VerifyChange(Rec,xRec); END; OnDelete=VAR...
Код на заміну 1
... IF (Quantity <> 0) AND ItemExists(xRec."No.") AND (("Spare Part Action" = "Spare Part Action"::"Component Replaced") OR ("Spare Part Action" = "Spare Part Action"::"Component Installed") OR ("Spare Part Action" = "Spare Part Action"::" ")) THEN ReserveServLine.VerifyChange(Rec,xRec); IF "Document Type" = ServiceLine."Document Type"::Invoice THEN IF ("Appl.-to Service Entry" <> 0) AND ("Contract No." <> '') THEN ERROR(Text046); END; OnDelete=VAR...
Наявний код 2
... { 5 ; ;Type ;Option ;OnValidate=BEGIN GetServHeader; TESTFIELD("Qty. Shipped Not Invoiced",0);...Код на заміну 2
... { 5 ; ;Type ;Option ;OnValidate=BEGIN IF ("Appl.-to Service Entry" <> 0) AND ("Contract No." <> '') THEN ERROR(Text046); GetServHeader;...Наявний код 3
... { 6 ; ;No. ;Code20 ;TableRelation=IF (Type=CONST(" ")) "Standard Text" ELSE IF (Type=CONST(G/L Account)) "G/L Account" ELSE IF (Type=CONST(Item)) Item ELSE IF (Type=CONST(Resource)) Resource ELSE IF (Type=CONST(Cost)) "Service Cost"; OnValidate=VAR ShowLocMessage@1000 : Boolean; BEGIN TESTFIELD("Qty. Shipped Not Invoiced",0);...Код на заміну 3
... { 6 ; ;No. ;Code20 ;TableRelation=IF (Type=CONST(" ")) "Standard Text" ELSE IF (Type=CONST(G/L Account)) "G/L Account" ELSE IF (Type=CONST(Item)) Item ELSE IF (Type=CONST(Resource)) Resource ELSE IF (Type=CONST(Cost)) "Service Cost"; OnValidate=VAR ShowLocMessage@1000 : Boolean; BEGIN IF ("Appl.-to Service Entry" <> 0) AND ("Contract No." <> '') THEN ERROR(Text046); TESTFIELD("Qty. Shipped Not Invoiced",0);...Наявний код 4
... { 22 ; ;Unit Price ;Decimal ;OnValidate=BEGIN GetServHeader; IF ("Unit Price" > ServHeader."Max. Labor Unit Price") AND...Заміна з кодом 4
... { 22 ; ;Unit Price ;Decimal ;OnValidate=BEGIN GetServHeader; IF ("Appl.-to Service Entry" > 0) AND (CurrFieldNo <> 0) THEN ERROR(Text046,FIELDCAPTION("Unit Price")); IF ("Unit Price" > ServHeader."Max. Labor Unit Price") AND...Наявний код 5
... Text043@1097 : TextConst 'ENU=You cannot change the value of the %1 field manually if %2 for this line is %3'; Text044@1012 : TextConst 'ENU=Do you want to split the resource line and use it to create resource lines\for the other service items with divided amounts?'; Text045@1099 : TextConst 'ENU=You cannot delete this service line because one or more service entries exist for this line.';...
Код на заміну 5
... Text043@1097 : TextConst 'ENU=You cannot change the value of the %1 field manually if %2 for this line is %3'; Text044@1012 : TextConst 'ENU=Do you want to split the resource line and use it to create resource lines\for the other service items with divided amounts?'; Text045@1099 : TextConst 'ENU=You cannot delete this service line because one or more service entries exist for this line.'; Text046@1100 : TextConst 'ENU=You cannot modify the document because it is based on a service contract.';...
Попередні вимоги
Ви повинні мати одну з таких продуктів, щоб застосувати це виправлення:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 пакет оновлень 1 для
Відомості про видалення
Це виправлення не можна видалити.
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".
Примітка. Це "Швидка публікація" статті, надана службою підтримки корпорації Майкрософт. Відомості в цій статті надано без змін у відповідь на повідомлення про проблеми. З огляду на швидкість публікації матеріали можуть містити орфографічні помилки. Їх може бути змінено в будь-який час без повідомлення. Щоб отримати додаткові відомості, див. Умови використання.