Показать сообщение отдельно
Старый 29.06.2018, 11:10   #1  
Brave is offline
Brave
Участник
 
26 / 14 (1) ++
Регистрация: 13.09.2010
Адрес: Санкт-Петербург
Опасный метод PurchLine в VendInvoiceTrans
Здравствуйте! Axapta 3.0
Недавно накололся на методе в таблице VendInvoiceTrans.PurchLine()

Ожидалось, что данный метод вернёт мне строку закупки по накладной, но в некоторых случаях этого не происходило.

Некоторым случаем оказалась ситуация, когда по накладной от поставщика попадалась строчка из другой закупки. Ситуация не очень частая, но функцианал такое позволяет.
X++:
PurchLine purchLine()
{
  PurchLine purchLine;
  ;
  select purchLine
    where purchLine.purchId == this.purchID &&
               purchLine.inventTransId == this.inventTransId;
  return purchLine;
}
Собственно в методе VendInvoiceTrans.PurchLine() осуществляется выборка по PurchId и InventTransId. Зачем?! Достаточно одного InventTransId, так как он является первичным ключиком в строках закупки.
Глянул этот метод в Ax2009 - аналогичный код.
В 2012 глянуть возможности нет.

Как вы считаете? Старый баг? Или специальный метод?
Как выглядит метод в Ax2012?