Показать сообщение отдельно
Старый 01.09.2010, 11:51   #1  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
619 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Обнаружен дефект работы создания кредит-нот и вообще копирования строк в Заказах на покупку
Не нашел подходящей темы, потому напишу тут (модераторы, перенесите в более правильное место).

Обнаружен дефект работы создания кредит-нот и вообще копирования строк в Заказах на покупку.
Верно для АХ4, Ах2009 и скорее всего Ах3 и Ах2.5

Если в закупке стоит галка включая налог, то копирование строки делает сумму без него, потом такой возврат пытается сделать коррекцию на дельту сумм и не разносится или разносится неверно.

В Заказах на продажу все ок. Код симметричный, но там есть if, а в Закупках нет.
Так же на форме (и в Закупках и Заказах) отображается неверная сумма к копированию.
В случае Заказов на продажу видим одно, а создаст другое (но верно).

Итого, смотрим места
\Forms\PurchCopying\Designs\Design\[Group:GroupLines]\[Tab:Tables]\[TabPage:TabPageInvoice]\[Grid:InvoiceLinesGrid]\RealEdit:VendInvoiceTrans_LineAmount
\Forms\SalesCopying\Designs\Design\[Group:GroupLines]\[Tab:Tables]\[TabPage:TabPageInvoice]\[Grid:Invoice_Lines]\RealEdit:CustInvoiceTrans_LineAmount

Эти поля заменить на дисплей метод
lineAmountInclTax, тогда визуально строки копированию будут совпадать со строками накладной

\Data Dictionary\Tables\PurchLine\Methods\initFromVendInvoiceTrans
строку
this.LineAmount = vendInvoiceTrans.LineAmount;
нужно обернуть ифом на подобии, как в
\Classes\SalesLineType\initFromCustConfirmTrans
Код там не на таблице, что уже несколько не симметрично, но суть одна
Итого, у нас вышло
X++:
if (vendInvoiceTrans.vendInvoiceJour().InclTax)
        {
            this.LineAmount         = vendInvoiceTrans.lineAmountInclTax();
        }
        else
        {
            this.LineAmount         = vendInvoiceTrans.LineAmount;
        }