Показать сообщение отдельно
Старый 20.08.2003, 11:44   #15  
LCh is offline
LCh
Участник
 
104 / 10 (1) +
Регистрация: 13.11.2002
Адрес: Санкт-Петербург
Lightbulb Решение
Я ошибся - Axapta стоит с SP2, а не SP3, поэтому кнопки обработать->счёт-фактура в журнале накладных нет. =\

Вот решение.
Задача была следующая (давайте по порядку):

В отделе бухгалтерии Х счёт-фаткура (InvoiceId) выписывается на основе накладной (PackingSlipId). И накладные и счёт-фактуры формируются суммарной обработкой - это не так важно.

Есть форма, в которой выводится список накладных (на подобие журнала накладных), где бухгалтер выбирает в строках накладной количество, которое надо отфактурировать.

Проблема в том, что стандартная обработка счёт-фактуры делает выборку строк из InventTrans только по статусу и закупке, не учитывая PackingSlipId (и это нормально).

Зачем нам это надо - нам надо соответсвие, сколько по закупке оприходовано, и сколько в разрезе накладной отфактурировано (и цена, и количество). Такую возможность даёт только InventTrans, где есть соответствие InvoiceId - PackingSlipId (которое, правда, не поддерживается).

macklakov посоветовал совершенно верно - берём за рога PFL_Invoice, и меняем. Но оказалось, что всё сводится к работе на пару минут - в классе InventUpd_Invoice в методе updateFinancialReceipt в строках while select InventTrans добавляем условие && InventTrans.PackingSlipId == _нашPackingSlipId. Остаётся только донести _нашPackingSlipId до метода (всего три вызова).

Способ безопасный, везде в методах, куда передаётся PackingSlipId, навешено значение по умолчанию. Сторно, кредит-ноты и т.п. не взбунтуют.

Всем спасибо!