Показать сообщение отдельно
Старый 26.04.2002, 14:32   #1  
Роман Кошелев is offline
Роман Кошелев
Продавец игрушек
Аватар для Роман Кошелев
 
433 / 73 (3) ++++
Регистрация: 22.11.2001
Адрес: Москва
Переименование номенклатуры
По материалам:
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
Вложения
Тип файла: xpo hb_p017_inventtablerename.xpo (67.2 Кб, 721 просмотров)
__________________
С уважением, Роман Кошелев.