Показать сообщение отдельно
Старый 15.09.2008, 23:22   #3  
evv is offline
evv
Участник
 
18 / 10 (1) +
Регистрация: 01.08.2003
Адрес: Санкт-Петербург
Цитата:
Сообщение от Logger Посмотреть сообщение
Сразу оговорюсь что у меня Ax3.0 SP5
Поэтому у вас возможны отличия. Но если в 4-ке код несильно поменялся, то

скорее всего работают методы
\Classes\InventUpd_Physical\updatePhysicalReturnedReceipt
или
\Classes\InventUpd_Physical\updatePhysicalReturnedIssue

тут может произойти "перескок" аналитик.
Спасибо за дельный совет, в четверке действительно все несильно поменялось. Я самостоятельно вышел на эти методы по точкам останова, как Вы и предположили. А поняв эту логику, я понял и то, что информация о строке отборочной накладной, вернее, об использованной в ней аналитике, формируется методом самой таблицы InventJournalBOM. там есть такой метод
X++:
InventMovement inventMovementChild(Common _buffer)
{
//    if (!this.InventReturnFlag && _buffer.TableId == tablenum(ProdBOM))
    if (_buffer.TableId == tablenum(ProdBOM))
    {
        return new InventMov_ProdLine_JournalBOM(_buffer,this);
    }

    return null;
}
который собственно выдает курсор с текущей аналитикой. В случае, если речь идет о возврате (количество < 0), метод возвращает null, и указанные Вами методы выбирают последнюю отгруженную номенклатуру для возврата. После того, как я закомментировал анализ InventReturnFlag, стала возвращаться на склад именно та номенклатура, которая указана в строках отгрузочной накладной на возврат.