Поделиться через


Ошибка "Нарушение ограничения PRIMARY KEY "PK##0671112"" при выполнении процедуры закрытия в конце года в общем реестре

В этой статье описывается решение проблемы, из-за чего невозможно выполнить процедуру закрытия на конец года в общем реестре в Microsoft Dynamics GP из-за ошибки Нарушения ограничения PRIMARY KEY "PK##0671112".

Применимо к: Microsoft Dynamics GP
Исходный номер базы знаний: 950019

Симптомы

При попытке выполнить процедуру закрытия на конец года в общем реестре в Microsoft Dynamics GP появляется следующее сообщение об ошибке:

[Майкрософт] [Драйвер ODBC SQL Server][SQL Server]Нарушение ограничения PRIMARY KEY 'PK##0671112'. Не удается вставить повторяющийся ключ в объект "##0671112"

Причина

Транзакции по закрытию на конец года содержат валюту, которая не назначена счету.

Разрешение

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

  1. Все пользователи должны выйти из Microsoft Dynamics GP.

  2. Восстановите резервную копию базы данных компании, созданную до того, как вы попытались выполнить процедуру закрытия general ledger в конце года.

  3. Запустите консоль администрирования поддержки, анализатор запросов Microsoft SQL или SQL Server Management Studio. Для этого используйте один из следующих методов в зависимости от используемой программы.

    Способ 1. Для ядра настольных систем SQL Server

    Если вы используете SQL Server ядро настольных систем (также известное как MSDE 2000), запустите консоль администрирования поддержки. Для этого нажмите кнопку Пуск, выберите Пункт Все программы, Консоль администрирования Майкрософт, а затем — Консоль администрирования поддержки.

    Способ 2. Для SQL Server 2000

    Если вы используете SQL Server 2000, запустите анализатор запросов SQL. Для этого выберите Пуск, Все программы, Microsoft SQL Server, а затем — Анализатор запросов.

    Способ 3. Для SQL Server 2005 г.

    Если вы используете SQL Server 2005, начните SQL Server Management Studio. Для этого нажмите кнопку Пуск, выберите Пункт Все программы, Microsoft SQL Server 2005, а затем выберите SQL Server Management Studio.

  4. Выполните следующий скрипт в базе данных компании:

    Select CURNCYID FROM GL20000
    
  5. Запишите все валюты, отображаемые в столбце CURNCYID .

  6. Запустите Microsoft Dynamics GP и войдите от имени пользователя 'sa'.

  7. В меню Карточки наведите указатель мыши на пункт Финансовые, а затем выберите Пункт Учетная запись.

  8. В поле Учетная запись введите номер счета для нераспределаемой прибыли.

  9. Выберите Валюта.

  10. В окне Выбор валют счета выберите поля Идентификатор валюты проверка, которые вы записали на шаге 5.

  11. Выполните процедуру закрытия на конец года в общем реестре.