03.03.2005, 17:32 | #1 |
Участник
|
Ошибка при переименовании номенклатурной аналитики
Пусть есть номенклатура "Карандаш" для неё активна номенклатурная аналитика "Цвет" и существует значение номенклатурной аналитики "Красный". Создаём любой складской журнал и в строке указываем номенклатуру "Карандаш" и скл. аналитику цвет "Красный". Создаём Job со следующим текстом:
InventColor inventColor; ; inventColor = InventColor::find( "Красный", "Карандаш", true ); inventColor.InventColorId = "Розовый"; inventColor.renamePrimaryKey(); После его выполнения получаем, что в строке скл. журнала аналитика цвет изменилась на значение "Розовый", а в справочнике цветов осталось значение "Красный" и нет значения "Розовый". Таким образом нарушена целостность данных, что не приемлемо. Проверено только для аналитики "Цвет", но думаю, что аналогичная ситуация с другими номенклатурными аналитиками. Ошибка зарегистрирована в службе поддержки Microsoft. |
|
03.03.2005, 18:22 | #2 |
Модератор
|
Думаю, не настолько серьезная ошибка, если то ошибка... после RenamePrKey ghjcnj просто update делали?
С Уважением, Георгий. |
|
03.03.2005, 18:39 | #3 |
Участник
|
В том то и дело, что при вызове renamePrimaryKey update вызывать не надо, по крайней мере на таблице CustTable, а на таблице InventColor метод перекрыт и в нём вообще довольно сложный алгоритм.
|
|
03.03.2005, 18:43 | #4 |
Модератор
|
Поторяю вопрос: вызывали?
Ну, признайтесь? Или просто doInsert, если не хотите "запуска довольно сложного алгоритма"? А? |
|
03.03.2005, 18:59 | #5 |
Участник
|
Не вызывал. Как я уже написал это не нужно, всё равно как после update ещё и doUpdate вызывать, т.к. метод renamePrimaryKey должен обеспечивать изменение записи. Причём в остальных случаях он имено так и работает, в качестве примера попробуйте таблицу CustTable.
|
|
03.03.2005, 19:04 | #6 |
Модератор
|
Ну, ради интереса - попробуй, что будет?
С Уважением, Георгий. |
|
03.03.2005, 19:11 | #7 |
Участник
|
Попробовал. Получаем сообщение:
Невозможно отредактировать запись в 'Номенклатурные аналитики' ('InventDimCombination'). Номенклатура: Карандаш, . Запись уже существует Причём тот же результат, если использовать doUpdate. |
|