Войти с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Select a different account.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой вы хотите войти.

Данная статья относится к Microsoft Dynamics NAV для всех стран и всех языковых стандартов.

Симптомы

Предположим, повторно применить операции элемент, использующий метод расчета средней себестоимости, используя журнал приложений в Microsoft Dynamics NAV 2009. При запуске отчета оценки запасов, количество равно нулю, а значение не равно нулю. Эта проблема возникает в следующих продуктах:

  • Microsoft Dynamics NAV 2009 R2

  • 2009 г. Пакет обновления 1 для Microsoft Dynamics NAV

Решение

Сведения об исправлении

Исправление от корпорации Майкрософт доступно. Однако оно предназначено только для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление может проходить дополнительное тестирование. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета обновления для Microsoft Dynamics NAV 2009 или следующей версии Microsoft Dynamics NAV, содержащего это исправление.

Примечание. В особых случаях оплата, предусмотренная в службу поддержки может быть отменена Если специалист службы технической поддержки Microsoft Dynamics и связанных продуктов определит, что решения проблемы является специально выпущенное. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.


Сведения об установке

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без явных или подразумеваемых гарантий. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры. Тем не менее они не изменит примеров для обеспечения функциональных возможностей или создания процедур для определенных требований.

Примечание. Перед установкой данного исправления убедитесь, что все пользователи Microsoft Navision вошли выход из системы. Это включает в себя пользователей клиентских служб приложений Microsoft Navision (NAS). Должен быть только клиент пользователя, который вошел в систему, при реализации данного исправления.

Чтобы реализовать это исправление, необходимо иметь лицензию разработчика.

Рекомендуется, чтобы учетной записи пользователя в окне Логины Windows или в окне Логины базы данных был присвоен идентификатор роли «SUPER» Если учетная запись пользователя не может быть назначена роль «SUPER» идентификатор, необходимо убедиться, что учетная запись пользователя имеет следующие разрешения.

  • Изменение разрешений для объекта, подлежащий изменению.

  • Разрешение Execute для объекта идентификатор объекта системы 5210 и 9015 идентификатор объекта системного объекта.



Примечание. Необходимо иметь права к хранилищам данных, если необходимо выполнить восстановление данных.

Изменения кода

Примечание. Всегда тестовый код исправления в контролируемой среде, прежде чем применить исправления на производственных компьютерах.
Чтобы устранить эту проблему, выполните следующие действия:

  1. Добавить новый логический параметр FixedApplication в функцию SetValuationDateAllValueEntrie элемента Фин.-учет строки функции (22) следующим образом:

    PROCEDURE SetValuationDateAllValueEntrie@95(ItemLedgerEntryNo@1000 : Integer;ValuationDate@1001 : Date;FixedApplication@1003 : Boolean);
  2. Измените код в функцию SetValuationDateAllValueEntrie в элемент Фин.-учет строки функции (22) следующим образом:
    Существующий код

    ...        IF FINDSET THEN
    REPEAT
    IF ("Valuation Date" <> "Posting Date") OR

    // Delete the following line.
    ("Valuation Date" < ValuationDate)

    THEN BEGIN
    "Valuation Date" := ValuationDate;
    MODIFY;
    END;
    UNTIL NEXT = 0;
    ...

    Код для замены

    ...        IF FINDSET THEN
    REPEAT
    IF ("Valuation Date" <> "Posting Date") OR

    // Add the following lines.
    ("Valuation Date" < ValuationDate) OR // Add an OR in this condition.
    (("Valuation Date" > ValuationDate) AND FixedApplication) // Add a new condition.
    // End of the lines.

    THEN BEGIN
    "Valuation Date" := ValuationDate;
    MODIFY;
    END;
    UNTIL NEXT = 0;
    ...

  3. Измените код в функции отмены в элемент Фин.-учет строки функции (22) следующим образом:
    Существующий код

    ...// Delete the following line.
    SetValuationDateAllValueEntrie(CostItemLedgEntry."Entry No.",Valuationdate);
    ...

    Код для замены

    ...// Add the following line.
    SetValuationDateAllValueEntrie(CostItemLedgEntry."Entry No.",Valuationdate,FALSE);
    ...

  4. Измените код в функцию CostApply в элемент Фин.-учет строки функции (22) следующим образом:
    Существующий код

    ...// Delete the following line.
    SetValuationDateAllValueEntrie(GlobalItemLedgEntry."Entry No.",ValueEntry."Valuation Date");
    ...

    Код для замены

    ...// Add the following line.
    SetValuationDateAllValueEntrie(GlobalItemLedgEntry."Entry No.",ValueEntry."Valuation Date",FALSE);
    ...

  5. Измените код в функцию GetValuationDate в элемент Фин.-учет строки функции (22) следующим образом:
    Существующий код

    ...        IF Positive THEN BEGIN
    IF (ValueEntry."Posting Date" < OldValueEntry."Valuation Date") OR
    (ItemJnlLine."Applies-to Entry" <> 0)

    // Delete the following lines.
    THEN BEGIN
    ValueEntry."Valuation Date" := OldValueEntry."Valuation Date";
    SetValuationDateAllValueEntrie(ValueEntry."Item Ledger Entry No.",OldValueEntry."Valuation Date");
    END ELSE
    BEGIN
    ValueEntry."Valuation Date" := ValueEntry."Posting Date";
    SetValuationDateAllValueEntrie(ValueEntry."Item Ledger Entry No.",ValueEntry."Posting Date");
    END
    // End of the lines.
    ...

    Код для замены

    ...        IF Positive THEN BEGIN
    IF (ValueEntry."Posting Date" < OldValueEntry."Valuation Date") OR
    (ItemJnlLine."Applies-to Entry" <> 0)

    // Add the following lines.
    THEN BEGIN
    ValueEntry."Valuation Date" := OldValueEntry."Valuation Date";
    SetValuationDateAllValueEntrie(
    ValueEntry."Item Ledger Entry No.",
    OldValueEntry."Valuation Date",
    ItemJnlLine."Applies-to Entry" <> 0)
    END ELSE BEGIN
    ValueEntry."Valuation Date" := ValueEntry."Posting Date";
    SetValuationDateAllValueEntrie(
    ValueEntry."Item Ledger Entry No.",
    ValueEntry."Posting Date",
    ItemJnlLine."Applies-to Entry" <> 0)
    END
    // End of the lines.
    ...

Предварительные условия

Необходимы следующие продукты для установки данного исправления.

  • Microsoft Dynamics NAV 2009 R2

  • 2009 г. Пакет обновления 1 для Microsoft Dynamics NAV

Сведения об удалении

Установленное обновление удалить нельзя.

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Примечание. Это статья «БЫСТРАЯ ПУБЛИКАЦИЯ», созданная непосредственно из технической поддержки корпорации Майкрософт. Сведения, содержащиеся в настоящем документе, предоставляются "как есть" в ответ на возникающие проблемы. В результате скорости предоставления материалов они могут включать опечаток и быть изменены в любое время без предварительного уведомления. Другие вопросы, связанные с Условиями использования см.

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×