Показать сообщение отдельно
Старый 10.02.2023, 20:00   #1  
DaniilT is offline
DaniilT
Участник
 
68 / 12 (1) ++
Регистрация: 28.04.2020
Невозможно создать запись в Элементы (InventTable). Код номенклатуры: 1T898f9. Запись уже существует.
Подскажите, кто сталкивался с данной ошибкой.

Невозможно создать запись в Элементы (InventTable). Код номенклатуры: 1T898f9.
Запись уже существует.


Данная ошибка явно глюк. В таблице InventTable есть всего один индекс, который запрещает дублирование номера номенклатуры - ItemId. Строки в inventTable со значением "1T898f9" нету.

Немного предыстории. Я делал доработку по созданию номенклатуры и продукта из файла excel. Моя доработка работала - номенклатура и продукт создавались. После тестирования доработки с ролью пользователя обнаружилась ошибка - у пользователя не хватало прав для таблицы EcoResProduct и еще пару таблиц, связанных с продуктом. Дать доступ к роли на эти таблицы не получалось - не давала axapta "Абстрактные таблицы и сопоставления таблиц недопустимы"

Я принял решение перенести выполнение моего класса на сервер. У меня не получилось. После одного запуска на сервере появилась ошибка
"Невозможно создать запись в Элементы (InventTable). Код номенклатуры: 1T898f9. Запись уже существует." Я откатил все обратно до рабочей версии, но все равно ошибка осталась.

Я перенес свою доработку в другую базу - 63 база. Сначала проверил вот этот джоб:
X++:
InventTable  it;

    ttsBegin;
        it.ItemId = '1T898f9';
        it.doInsert();
    ttsCommit;
Джоб работал. Затем я еще раз попробовал переписать класс, что бы он работал на сервере. И после одного неудачного выполнения класса, снова появилась эта ошибка. Джоб выше перестал работать и стал выдавать точно такую же ошибку. Тогда снова откатил свою доработку до рабочего варианта, но ошибка снова осталась.

Последний раз редактировалось DaniilT; 10.02.2023 в 20:13.