dax2012
Таблица AgreementLineQuantityCommitment наследник от AgreementLine
Вызывается метод
AgreementLineQuantityCommitment.validateWrite()
В этой таблице этого метода нет, поэтому вызывается метод таблицы-родителя. Там идет вызов
avl = PdsApprovedVendorListCheck::newFromTable(this);
Ну, и внутри этого метода идентифицируется таблица через обычный switch
X++:
switch (_buffer.TableId)
{
case tableNum(AgreementLine):
default :
throw error(strfmt("@PRO1805",tableid2name(_buffer.TableId)));
}
Это все нормально работало, но неожиданно, при запуске в пакетном режиме (и только там!) _buffer.TableId стал возвращать идентификатор AgreementLineQuantityCommitment и пошли ошибки
При этом при работе "вручную" (на клиенте, на сервере, с CIL, без CIL) - никаких проблем. Только и исключительно при пакетной обработке. CIL пересобирал, AOS перезагружал
В данном конкретном случае понятно, что можно просто дописать нужный case. Вопрос в том, "почему"? Т.е. в каких случаях, какой именно TableId будет идентифицироваться? В чем причина проблемы? Что могло спровоцировать такое поведение?