По материалам:
http://www.axforum.info/forums/showt...=&threadid=683
Ошибка при переименование номенклатуры и не только
Есть в Аксапте такая возможность: переименование ключевых полей.
При этом возникает обновление всех ссылок.
Например, при переименовании номенклатуры вызывается метод InventTable::renamePrimaryKey,
который по умолчанию обновляет все связанные ссылки и может сделать что-то ещё (у нас он обновляет связи в классификаторе).
Проблема и ошибка (как мне кажется) Аксапты в том, что:
Обновление ссылок происходит в пределах одной компании.
Т.е., если у нас есть две компании с общей номенклатурой (InventTable), но разными проводками по номенклатуре (InventTrans), то, переименовывая номенклату, находясь в одной компании, мы получаем оборванные ссылки Номенклатура-Проводки в другой компании, поскольку там проводки не обновились.
<hr>
Данный проект содержит пример обхода этой ошибки.
У нас есть две компании, мы переименовываем номенклатуру, убирая из неё всё, что находится до символа "минус": "abc-123" - "123"
Метод исправления ошибки:
1. Переименовываем номенклатуру, находясь в одной компании. При этом теряются связи в другой компании.
2. Переходим в эту несчастную компанию, переименовываем номенклатуру в старое значение (при этом подцепляются связи в новой и отцепляются в старой компаниях).
3. Завершающим шагом в третий раз переименовываем (в новое название). Все связи во всех коомпаниях сохранены.
Очевидно, что этот метод подходит и для N>2 компаний.
Аккуратнее используйте этот пример.
Для корректной работы потребуется проект "Работа с длительными операциями":
http://www.axforum.info/forums/showt...=&threadid=182