Эта статья относится к Microsoft Dynamics NAV для языкового языка на испанском языке (es).
Проблемы
Предположим, что в диалоговом окне "Настройка публикации НДС" в испанской версии Microsoft Dynamics NAV установлено поле "Служба ЕС". При указании 349-го файла объявления в экспортируемом файле указана неправильная сумма.
Эта проблема возникает в следующих продуктах:
-
Версия Microsoft Dynamics NAV 2009 для испанского языка Пакет обновления 1 (SP1)
-
Испанский вариант Microsoft Dynamics NAV 5.0 Пакет обновления 1 (SP1)
Решение
Сведения о hotfix
Теперь поддерживаемый hotfix доступен от Майкрософт. Однако оно предназначено только для устранения проблемы, описанной в этой статье. Применяте его только к системам, в которые возникла эта проблема. Этот префикс может получить дополнительное тестирование. Поэтому, если вы не затронуты этой проблемой в значительной степени, мы рекомендуем дождаться следующего пакета обновления Microsoft Dynamics NAV 2009 или следующей версии Microsoft Dynamics NAV, которая содержит этот hotfix.
Обратите внимание на то, что в особых случаях плата за вызовы в службу поддержки может быть отменена, если специалист службы технической поддержки Microsoft Dynamics и связанных с ней продуктов определит, что для устранения вашей проблемы будет связано определенное обновление. Обычные затраты на поддержку будут применяться к дополнительным вопросам и вопросам поддержки, которые не относятся к определенному обновлению.
Сведения об установке
Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации без каких-либо гарантий, как выраженных, так и подразумеваемых. При этом подразумеваемые гарантии пригодности для определенной цели включают, но не ограничив эту возможность. В этой статье предполагается, что вы знакомы с демонстрировать язык программирования и инструментами, которые используются для создания и отлагки процедур. Инженеры службы поддержки Майкрософт могут объяснить функциональные возможности конкретной процедуры, но не будут изменять эти примеры, чтобы предоставить дополнительные функции или процедуры создания с учетом ваших требований.
Перед установкой этого префикса убедитесь, что все пользователи клиента Microsoft Navision выключили систему. В том числе пользователи клиентов Microsoft Navision Application Services (NAS). При внедрении этого префикса вы должны выполнять вход только в систему.
Для внедрения этого префикса у вас должна быть лицензия разработчика.
Учетной записи пользователя в окне "Вход в Windows" или в окне "Вход в базу данных" рекомендуется на должно быть назначено значение роля SUPER. Если учетной записи не может быть назначен ИД роли SUPER, необходимо проверить, есть ли у учетной записи следующие разрешения:
-
Разрешение на изменение объекта, который вы хотите изменить.
-
Разрешение на выполнение для объекта System Object ID 5210 и для объекта System Object ID 9015.
Обратите внимание, что вам не нужно иметь права на хранилища данных, если только вам не придется восстанавливать их.
Изменения кода
Примечание. Всегда проверяйте исправления кода в управляемой среде перед их применением к производственным компьютерам.
Чтобы устранить эту неполадку, выполните следующие действия:
-
Измените код в разделах номера 5 элемента данных в отчете объявления "Сделать 349" (88) следующим образом:
существующий код 1BEGIN
REPEAT
//Delete the following line.
VATInvSales.RESET;
VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);
VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);Код замены 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);Существующий код 2
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';Код замены 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';Существующий код 3
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvSales.Base;
UNTIL VATInvSales.NEXT = 0;
END;Код замены 3
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvSales.Base;
//Add the following line.
LastTransactionNo := VATInvSales."Transaction No.";
UNTIL VATInvSales.NEXT = 0;
END;Существующий код 4
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);Код замены 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);Существующий код 5
((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 ELSEКод замены 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 ELSEСуществующий код 6
END;
// NormalAmount := NormalAmount + VATInvSales.Base;
UNTIL VATInvSales.NEXT = 0;
END;Заменный код 6
END;
// NormalAmount := NormalAmount + VATInvSales.Base;
//Add the following line.
LastTransactionNo := VATInvSales."Transaction No.";
UNTIL VATInvSales.NEXT = 0;
END;Существующий код 7
END;
//Delete the following line.
VATInvSales.RESET;
VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale);
VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);Код замены 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);Существующий код 8
((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 ELSEЗаменный код 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 ELSEСуществующий код 9
END;
END;
UNTIL VATInvSales.NEXT = 0;Код замены 9
END;
END;
//Add the following line.
LastTransactionNo := VATInvSales."Transaction No.";
UNTIL VATInvSales.NEXT = 0; -
Измените код в разделах элемента данных No 6 в отчете объявления 349 (88) следующим
образом: существующий код 1BEGIN
REPEAT
//Delete the following line.
VATInvPurch.RESET;
VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);
VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);Код замены 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);Существующий код 2
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';Код замены 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';Существующий код 3
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvPurch.Base;
UNTIL VATInvPurch.NEXT = 0;
END;Код замены 3
// OpTriang := 'X';
// AmountOpTri := AmountOpTri + VATInvPurch.Base;
//Add the following line.
LastTransactionNo := VATInvPurch."Transaction No.";
UNTIL VATInvPurch.NEXT = 0;
END;Существующий код 4
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);Код замены 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);Существующий код 5
((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 ELSEКод замены 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 ELSEСуществующий код 6
END;
// NormalAmount := NormalAmount + VATInvPurch.Base;
UNTIL VATInvPurch.NEXT = 0;
END;Заменный код 6
END;
// NormalAmount := NormalAmount + VATInvPurch.Base;
//Add the following line.
LastTransactionNo := VATInvPurch."Transaction No.";
UNTIL VATInvPurch.NEXT = 0;
END;Существующий код 7
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);Код замены 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);Существующий код 8
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 ELSEЗаменный код 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 ELSEСуществующий код 9
END;
END;
UNTIL VATInvPurch.NEXT = 0;Код замены 9
END;
END;
//Add the following line.
LastTransactionNo := VATInvPurch."Transaction No.";
UNTIL VATInvPurch.NEXT = 0; -
Добавьте новую глобальную переменную в отчет объявления Make 349 (88) и укажите ее следующим образом:
-
Имя:LastTransactionNo@1100072
-
DataType: Integer
-
Предварительные условия
Для применения этого префикса необходимо установить один из следующих продуктов:
-
Версия Microsoft Dynamics NAV 2009 для испанского языка Пакет обновления 1 (SP1)
-
Испанский вариант Microsoft Dynamics NAV 5.0 Пакет обновления 1 (SP1)
Для применения этого префикса необходимо иметь отчет по испанскому языку 349.
Дополнительные сведения можно найти на следующем веб-сайте Корпорации Майкрософт: отчет по испанскому
языку 349.Кроме того, для применения этого префикса необходимо установить пакет НДС
2010.
Дополнительные сведения можно получить на следующем веб-сайте Корпорации
Майкрософт: поддержка Microsoft Dynamics NAV для НДС 2010
Сведения об удалении
Этот префикс удалить невозможно.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Обратите внимание на то, что это статья fast PUBLISH, созданная непосредственно в организации поддержки Майкрософт. Информация в ней приводятся "как есть" для устранения возникших проблем. Из-за спешки при подготовке материалов они могут содержать опечатки и периодически подвергаться изменениям без предупреждения. Другие аспекты см. в условиях использования.