Здравствуйте, при выполнении процесса перевода продажи в заказ вылетает ошибка на переносе продуктов
"Terrasoft.Common.DbOperationException: Конфликт инструкции INSERT с ограничением FOREIGN KEY "FKPU5pFJW1zR5qrqXfCC4TQdQNI". Конфликт произошел в базе данных "BPMonline", таблица "dbo.Pricelist", column 'Id'."
Подскажите, с чем может быть связана эта ошибка.
Спасибо!
Нравится
Ошибка значит, что в поле Pricelist некоего продукта был записан Id, которого не существует в таблице прайс-листов. Наиболее частая ситуация: попадание в поле значения пустого Guid {00000000-0000-0000-0000-000000000000}.
Исходя из того, что вы переносите продукты из продажи в заказ, скорее всего произошёл такой сценарий:
- у какого-то копируемого продукта не был проставлен прайс-лист;
- в результат выборки соответственно пришло значение {00000000-0000-0000-0000-000000000000};
- при создании нового продукта устанавливается полученное значение пустого Guid;
- при попытке сохранить запись возникает ошибка.
Чтобы избегать подобных ошибок, нужно перед установкой справочных полей проверять используемую переменную на значение Guid.Empty.
Ошибка значит, что в поле Pricelist некоего продукта был записан Id, которого не существует в таблице прайс-листов. Наиболее частая ситуация: попадание в поле значения пустого Guid {00000000-0000-0000-0000-000000000000}.
Исходя из того, что вы переносите продукты из продажи в заказ, скорее всего произошёл такой сценарий:
- у какого-то копируемого продукта не был проставлен прайс-лист;
- в результат выборки соответственно пришло значение {00000000-0000-0000-0000-000000000000};
- при создании нового продукта устанавливается полученное значение пустого Guid;
- при попытке сохранить запись возникает ошибка.
Чтобы избегать подобных ошибок, нужно перед установкой справочных полей проверять используемую переменную на значение Guid.Empty.
Vyacheslav Lipatkin,
Спасибо, разобрался. В поле была установлена константа (id теперь уже несуществующего объекта).