23.03.2010, 21:20 | #1 |
Участник
|
Переписались значения поле Поставщик во всех заказах на закупку
Второй уже раз произошло событие, сравнимое с пролётом кометы Галлея около Земли: после того, как один из пользователей сменил поставщика во вновь созданном заказе на закупку, он почему-то лихо проставился и во всех (!!!) остальных существующих заказах.
Небольшой эксперимент показал, что такой же эффект наблюдался при изменении значения ключевого поля кода поставщика (VendTable.AccountNum). Но к сожалению эффект неустойчив. Несмотря на изменение всех значений поля PurchTable.OrderNum и PurchTable.InvoiceNum, значения, например, PurchTable.Name на этой таблице не изменились. Что интересно, несмотря на то, что данный поставщик фигурирует лишь в трёх документах, и в первый и второй раз, именно его значение прописалось во всех заказы. Никаких "подозрительных" изменений стандартных методов на этих двух таблицах нет. Какие будут соображения?
__________________
Felix nihil admirari Последний раз редактировалось wojzeh; 27.10.2019 в 19:35. |
|
23.03.2010, 21:57 | #2 |
Мрачный тип
|
Бред какой-то ...
Либо "веселый" триггер живет на серваке, либо таки что-то кастомизировано в таком же "веселом" ключе - кроме таблиц (renamePrimaryKey() переопределен в VendTable ? ), которые вроде как вне подозрений, форму и ее датасорсы с полями инспектировали ? Там ничего в методах перегруженного/дописанного нет ? P.S. Никого в последнее время не увольняли по-жесткому, кто мог такое оставить в наследство ? ;-)
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
23.03.2010, 22:09 | #3 |
MCTS
|
а случайно компиляция таблиц не производилась?
|
|
23.03.2010, 22:22 | #4 |
Участник
|
автоматическое открытие в методе run формы VendTable и PurchTable может влиять?
"веселый триггер" - отличное название для кабака! - мне два по сто "дебаггера" и кружку "чёрной транзакции"!
__________________
Felix nihil admirari Последний раз редактировалось wojzeh; 27.10.2019 в 19:35. |
|
23.03.2010, 22:23 | #5 |
Участник
|
поясни, как это?
__________________
Felix nihil admirari |
|
24.03.2010, 07:18 | #6 |
Мрачный тип
|
Часом Ваш сотрудник не этим воспользовался ?
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
24.03.2010, 09:03 | #7 |
NavAx
|
|
|
|
За это сообщение автора поблагодарили: wojzeh (1). |
24.03.2010, 09:09 | #8 |
Участник
|
Цитата:
PS. Коллега накатил проект с очень полезной модификацией: возможность настройки того, писать ли в SysDatabaseLog еще и стек вызовов. В подобных "странных" случаях эта модификация не раз уже помогала выйти на соответствующий код. Последний раз редактировалось gl00mie; 24.03.2010 в 09:13. |
|
|
За это сообщение автора поблагодарили: wojzeh (1). |
24.03.2010, 10:53 | #9 |
Участник
|
Был аналогичный случай, когда пользователь переименовал Клиента - в результате переименовались поля в InventTrans и некоторых настроечных таблицах (например, профили разноски), заказы не были изменены. Во время переименования все намертво подвисло, перегружали сервер БД - видимо, поэтому никаких следов переименования в логе не осталось
Воспроизвести не удалось... Все что удалось выяснить - это почти наверняка переименование первичного ключа, делается стандартным методом таблицы renamePrimaryKey, который нигде не был перекрыт. Все испорченные данные восстанавливали из бэкапа... З.Ы. Ах, да! Пробовали переименовать с включенным профайлером - очень интересные запросы идут... По идее должны переименовываться поля во всех (!) таблицах с типом CustVendAC, но естественно с условием по старому значению. Последний раз редактировалось vanokh; 24.03.2010 в 11:05. |
|
24.03.2010, 15:55 | #10 |
Участник
|
Цитата:
Сообщение от TasmanianDevil
Часом Ваш сотрудник не этим воспользовался ?
проблема в том, что я даже не могу наверняка узнать, кто и что именно сделал в этой ситуации.
__________________
Felix nihil admirari |
|
24.03.2010, 16:10 | #11 |
Участник
|
да, я уже тоже задумался о включении лога на определённых таблицах. но тут есть два момента:
1) непонятна природа происхождения этого явления (какие именно таблицы отслеживать); 2) как повлияет логгирование на производительность рабочей базы. что можете по опыту сказать-посоветовать?
__________________
Felix nihil admirari |
|
24.03.2010, 16:11 | #12 |
Участник
|
Цитата:
Сообщение от gl00mie
А какие-нить update_recordset'ы в кастомизациях используются? Или временные таблицы на базе PurchTable? С временными таблицами на базе постоянных бывают иногда "недоразумения".
PS. Коллега накатил проект с очень полезной модификацией: возможность настройки того, писать ли в SysDatabaseLog еще и стек вызовов. В подобных "странных" случаях эта модификация не раз уже помогала выйти на соответствующий код.
__________________
Felix nihil admirari |
|
24.03.2010, 16:15 | #13 |
Участник
|
очень похоже на мою ситуацию. так что же выходит, что это какой-то невоспроизводимый баг аксапты?
что-то мне это совсем не нравится... если такая "блуждающая" пуля может прибить многолетнюю работу многих людей, такая система ненадёжна. закрыть функциональность переименования первичного ключа?
__________________
Felix nihil admirari |
|
12.05.2010, 10:06 | #14 |
Участник
|
В очередной раз повторилось - после переименования Клиента все (!) складские проводки переименовались во всех компаниях... Уже известно, что это переименование первичного ключа, но всплывает изредка и не воспроизводится. Аудит не помогает, поскольку показывает только вставку и изменение - переименование первичного ключа видимо идет в обход аудита. По аудиту можно только косвенно выяснить время - обычно изменяют и полное наименование.
Воистину баг аксапты... Может кто видел что-нибудь подобное в хотфиксах-роллапах? |
|
12.05.2010, 10:12 | #15 |
Участник
|
|
|
13.05.2010, 02:58 | #16 |
Участник
|
Цитата:
Пробовал создавать некорректные условия запуска переименования, максимум что удалось - это замена всех пустых ссылок на таблицу клиентов переименованным значением. Алгоритм следующий: 1. создать запись в таблице Клиенты 2. ввести Счет клиента 3. сохранить (запись не сохраняется, требует ввести адрес) 4. теперь появляется Переименовать в Паспорте записи 5. переименовать Аудит показывает изменение 0 -> введенное значение. Результат - во всех таблицах, где есть ссылка на таблица Клиенты и ссылка пустая, она заменится введенным значением (например, пустой Счет на во всех клиентах, Счет и Корр.счет в Наименованиях журналов ГК). Но это все равно не объясняет почему могут заменится все (!) значения в таблице... |
|
|
За это сообщение автора поблагодарили: wojzeh (1). |
Теги |
renameprimarykey |
|
|