|
20.08.2003, 11:44 | #1 |
Участник
|
Решение
Я ошибся - Axapta стоит с SP2, а не SP3, поэтому кнопки обработать->счёт-фактура в журнале накладных нет. =\
Вот решение. Задача была следующая (давайте по порядку): В отделе бухгалтерии Х счёт-фаткура (InvoiceId) выписывается на основе накладной (PackingSlipId). И накладные и счёт-фактуры формируются суммарной обработкой - это не так важно. Есть форма, в которой выводится список накладных (на подобие журнала накладных), где бухгалтер выбирает в строках накладной количество, которое надо отфактурировать. Проблема в том, что стандартная обработка счёт-фактуры делает выборку строк из InventTrans только по статусу и закупке, не учитывая PackingSlipId (и это нормально). Зачем нам это надо - нам надо соответсвие, сколько по закупке оприходовано, и сколько в разрезе накладной отфактурировано (и цена, и количество). Такую возможность даёт только InventTrans, где есть соответствие InvoiceId - PackingSlipId (которое, правда, не поддерживается). macklakov посоветовал совершенно верно - берём за рога PFL_Invoice, и меняем. Но оказалось, что всё сводится к работе на пару минут - в классе InventUpd_Invoice в методе updateFinancialReceipt в строках while select InventTrans добавляем условие && InventTrans.PackingSlipId == _нашPackingSlipId. Остаётся только донести _нашPackingSlipId до метода (всего три вызова). Способ безопасный, везде в методах, куда передаётся PackingSlipId, навешено значение по умолчанию. Сторно, кредит-ноты и т.п. не взбунтуют. Всем спасибо! |
|