Эта статья относится к Microsoft Dynamics NAV для следующих стран и языковых стандартов.
- Английский (Канада) (en-ca)
- Английский (США) (en-us)
- Испанский (Мексика) (es-mx)
- Французский (Канада) (fr-ca)
Проблема
Предположим, что вы публикуете журнал получения наличных денег, в котором используется банковский счет в иностранной валюте в североамериканской версии Microsoft Dynamics 2009. Вы создаете корректировку для журнала поступления денежных средств, выполнив функцию "Изменение валютных ставок валюты... ". В этой ситуации при создании выверки банка на банковском счете в иностранной валюте общий баланс реестра в предложенной строке вычисляется неправильно. Расчет выверки банка не включает в себя реализованную выгоду или реализованную потерю банковского счета.
Эта проблема возникает в следующих продуктах:
- Североамериканская версия Microsoft Dynamics NAV 2009 R2
- Североамериканская версия Microsoft Dynamics NAV 2009 с пакетом обновления 1 (SP1)
Решение
Важно! Исправление (2548309) было возвращено к исходному коду и должно быть удалено из всех баз данных, в которых было применено это изменение. Если вы внесли изменения кода, описанные в разделе "Изменения кода", можно изменить код обратно, чтобы код соответствовал разделу "Существующий код". Если код не будет отменен, на вкладке Общие выверки банка может возникнуть разница, и вы не сможете сделать запись.
Проблема с дисбалансом общего реестра (G/L) на сверке банка североамериканской базы данных в первоначальном сценарии повторного создания для этой статьи была пересмотрена и рассмотрена. В результате дальнейшего анализа управление продуктами и разработка определили, что проблема, о которую было сообщено с дисбалансом, не является результатом неправильного стандартного кода для расчета выверки банка, а проблемой данных, вызванной первоначальной настройкой банковского счета. Неправильная начальная настройка банковского счета состояла в разрыве связи между записью реестра банковского счета и записью реестра G/L счета. Неправильные шаги по настройке банковского счета в иностранной валюте могут включать следующие действия:
Разместите журнал G/L на счет G/L банковского счета для первоначального остатка, например счет G/L 11650.
Примечание. Эта транзакция обычно включается в начальную настройку пробного баланса G/L.
Опубликуйте запись журнала наличных квитанций на банковский счет, в котором группе отправки банковского счета назначен временный счет G/L, например 11000, и все открытые незаверяемые транзакции, такие как открытые чеки и наличные квитанции, на банковский счет. Для учетной записи балансировки также задана та же учетная запись, например 11000, чтобы создать запись стирки.
Затем учетная запись группы размещения банковского счета изменяется с временной учетной записи G/L на учетную запись G/L 11650. Таким образом, исходная запись, которая была размещена для установления подробной настройки банковского счета на шаге 2, была на другой G/L счет. Поэтому ссылка на записи G/L больше не устанавливается.
Дополнительная неправильная настройка для банковского счета в иностранной валюте будет выглядеть следующим образом:
- Разместите журнал G/L на счет G/L банковского счета для первоначального остатка, например счет G/L 11650.
- Затем опубликуйте общий журнал на банковский счет, а балансирующий счет установлен на тот же счет G/L, как указано в группе размещения банковских счетов, как в данном случае G/L Account 11650.
Опять же, нет никакой связи между записью G/L, размещенной на шаге 1, и записью реестра банковских счетов, размещенной на шаге 2.
Эти шаги являются неправильным способом обработки запуска нового счета в иностранном банке. При неправильном выполнении этого процесса может возникнуть проблема, описанная в этой статье (2548309). Это исправление (2548309) было добавлено для исправления определенного сценария, вызванного установкой, которая похожа на предыдущий сценарий. Однако различные сценарии размещения приводили к проблемам с продолжающимися дисбалансами, если вы настроили банковский счет, но затем не сохранить счет G/L в группе банковских проводок или если нет прямой связи между записями банковского счета и записями G/L.
РЕКОМЕНДАЦИЯ. Рекомендуемый процесс создания банка в иностранной валюте будет аналогичен следующему (при условии, что сумма в местной валюте для GL составляет 10 000 долл. США).
Примечание. Следующее основано на обменном курсе валюты 1:1. Суммы G/L обновляются в местной валюте. Таким образом, для банковского счета необходимы ручные расчеты, поэтому gl обновляется с правильной суммой в местной валюте.
При публикации начальных пробных остатков в GL, поместите баланс GL банка на временный G/L счет, такой как G/L Счет 11000, за 10 000 долл. США.
Опубликуйте общий журнал на банковский счет, для которого для группы размещения банковского счета задана желаемая учетная запись G/L, в данном случае G/L Account 11650. Здесь для балансировочной учетной записи задано значение G/L Account 11000, которое является первоначальным временным денежным счетом, который был первоначально размещен в рамках настройки начального пробного остатка.
-Размещение этой записи в размере 10 000 долларов обновит как зарубежный банковский счет, так и G/L счет 11650 за $ 10000. Это также сократит временный счет G/L 11000 до $0 из-за смещения балансировки счета от транзакции. При публикации таким образом существует прямая связь между записью банковского реестра и записью реестра G/L счета. Это правильный способ обработки и обработки настройки иностранного банковского счета.
Сведения об исправлении
Поддерживаемое исправление теперь доступно в корпорации Майкрософт. Однако он предназначен только для устранения проблемы, описанной в этой статье. Применяйте его только к системам, в которых возникла эта конкретная проблема. Это исправление может пройти дополнительное тестирование. Поэтому, если вы не пострадали от этой проблемы, рекомендуется дождаться следующего пакета обновления Microsoft Dynamics NAV или следующей версии Microsoft Dynamics NAV, содержащей это исправление.
Примечание. В особых случаях плата, которая обычно взимается за звонки в службу поддержки, может быть отменена, если специалист по технической поддержке Microsoft Dynamics и связанных продуктов определит, что конкретное обновление поможет устранить вашу проблему. Обычные расходы на поддержку будут применяться к дополнительным вопросам и проблемам поддержки, которые не относятся к конкретному обновлению.
Сведения об установке
Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, без явных или подразумеваемых гарантий. Это включает подразумеваемые гарантии товарного состояния или пригодности для конкретной цели, но не ограничивается ими. В этой статье предполагается, что вы знакомы с демонстрируемым языком программирования и инструментами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональность конкретной процедуры, но они не будут изменять эти примеры, чтобы предоставить дополнительные функциональные возможности или создать процедуры в соответствии с вашими конкретными требованиями.
Примечание. Перед установкой этого исправления убедитесь, что все пользователи клиента Microsoft Navision вышли из системы. Сюда входят пользователи клиентов Служб приложений Microsoft Navision (NAS). Вы должны быть единственным пользователем клиента, который вошел в систему при реализации этого исправления.
Чтобы реализовать это исправление, у вас должна быть лицензия разработчика.
Рекомендуется назначить учетной записи пользователя в окне Входа Windows или в окне Входа базы данных идентификатор роли SUPER. Если учетной записи пользователя не удается назначить идентификатор роли SUPER, необходимо убедиться, что учетная запись пользователя имеет следующие разрешения:
- Разрешение Изменить для объекта, который вы будете изменять.
- Разрешение Execute для объекта System Object ID 5210 и для объекта System Object ID 9015.
Примечание. Вы не должны иметь права на хранилища данных, если только вам не нужно выполнить восстановление данных.
Изменения кода
Примечание. Перед применением исправлений на рабочих компьютерах всегда тестируйте исправления кода в управляемой среде.
Чтобы устранить эту проблему, измените код в функции CalculateBalance в таблице Bank Rec. Header (10120) следующим образом:
Существующий код
...
REPEAT
IF BankAccLedgEntry.GET(GLEntry."Entry No.") THEN BEGIN
IF "Currency Code" <> BankAccLedgEntry."Currency Code" THEN BEGIN
IF BankAccLedgEntry."Currency Code" <> '' THEN
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtFCYToFCY("Statement Date",
BankAccLedgEntry."Currency Code",
"Currency Code",
BankAccLedgEntry.Amount),
Currency."Amount Rounding Precision")
ELSE
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtLCYToFCY("Statement Date",
"Currency Code",
BankAccLedgEntry.Amount,
"Currency Factor"),
Currency."Amount Rounding Precision");
END ELSE BEGIN
// Delete the folloiwng line.
"G/L Balance" += BankAccLedgEntry.Amount;
END;
END ELSE BEGIN
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtLCYToFCY("Statement Date",
"Currency Code",
GLEntry.Amount,
"Currency Factor"),
Currency."Amount Rounding Precision");
END;
UNTIL GLEntry.NEXT = 0;
...
Код замены
...
REPEAT
IF BankAccLedgEntry.GET(GLEntry."Entry No.") THEN BEGIN
IF "Currency Code" <> BankAccLedgEntry."Currency Code" THEN BEGIN
IF BankAccLedgEntry."Currency Code" <> '' THEN
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtFCYToFCY("Statement Date",
BankAccLedgEntry."Currency Code",
"Currency Code",
BankAccLedgEntry.Amount),
Currency."Amount Rounding Precision")
ELSE
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtLCYToFCY("Statement Date",
"Currency Code",
BankAccLedgEntry.Amount,
"Currency Factor"),
Currency."Amount Rounding Precision");
END ELSE BEGIN
// Add the following lines.
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtLCYToFCY("Statement Date",
"Currency Code",
GLEntry.Amount,
"Currency Factor"),
Currency."Amount Rounding Precision");
// End of the lines.
END;
END ELSE BEGIN
"G/L Balance" += ROUND(CurrExchRate.ExchangeAmtLCYToFCY("Statement Date",
"Currency Code",
GLEntry.Amount,
"Currency Factor"),
Currency."Amount Rounding Precision");
END;
UNTIL GLEntry.NEXT = 0;
...
Необходимые условия
Для применения этого исправления необходимо установить один из следующих продуктов:
- Североамериканская версия Microsoft Dynamics NAV 2009 R2
- Североамериканская версия Microsoft Dynamics NAV 2009 с пакетом обновления 1 (SP1)
Сведения об удалении
Удалить это исправление невозможно.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Примечание. Это статья "FAST PUBLISH", созданная непосредственно в организации поддержки Майкрософт. Информация, содержащаяся в настоящем документе, предоставляется как есть в ответ на возникающие проблемы. В результате быстрой доступности материалы могут содержать опечатки и могут быть пересмотрены в любое время без уведомления. Дополнительные рекомендации см. в разделе Условия использования .