12.05.2004, 11:38 | #1 |
Участник
|
Распределение накладных расходов при отрицательных строках закупки
Добрых суток All!
Помогите разобраться с распределением накладных расходов. Создаю закупку, со статусом закупка, создаю строку закупки с номенклатурой «прибыль/убыток» с количеством -1, создаю накладную, хочу провести коррекцию накладных расходов, аксапта падает в отладчик с ошибкой: Трассировка стека: \Classes\LedgerBondTransObject_RU\ledgerTransObject \Classes\MarkupAdjustment\adjustCreditNote - line 62 \Classes\MarkupAdjustment\run - line 58 \Classes\MarkupAdjustment\main - line 9 \Classes\FormFunctionButtonControl\Clicked \Classes\FormMenuButtonControl\Clicked Смотрю в коде: \Classes\MarkupAdjustment Метод adjustCreditNote … // EGLA, Correspondence II --> if (ledgerBondClient) { currencyBondLog = conNull(); bondLog = ledgerBondClient.currentLog(); for (i = 1; i <= conlen(bondLog); i++) { /* ******************************* */ if (ledgerBondClient.bondTransObject(conPeek(currencyBondLog, i)).ledgerTransObject().parmCurrencyCode() == currencyCode) { currencyBondLog += conPeek(currencyBondLog, i); } /* ******************************* */ } ledgerBondClient.bondVRef2Log(ledgerBondClient.lastVrefId(), bondLog); } // EGLA, Correspondence II <-- … Заменил код между комментариями на такой LedgerBondTransObject_RU = ledgerBondClient.bondTransObject(conPeek(currencyBondLog, i)); if (LedgerBondTransObject_RU && LedgerBondTransObject_RU.ledgerTransObject().parmCurrencyCode() == currencyCode) { currencyBondLog += conPeek(currencyBondLog, i); } Работает, но терзают сомнения, почему в МБС не учли очевидное? Ведь код в комментариях не будет выполняться никогда, поскольку контейнер currencyBondLog всегда пустой. Может, я чего не понимаю. Заранее благодарен, Валерий Бондаренко |
|
30.06.2004, 13:03 | #2 |
Участник
|
Axapta 3.0 SP3 HF1
Аналогичная ошибка возникает в случае, когда по закупке создается кредит-нота с накладными расходами: 1. Создаем закупку с типом "Возврат", с использованием функции "Создать кредит-ноту" создаем строки. Здесь необходимо уточнить, что если в "неправильной" закупке были накладные расходы, то они также копируются в закупку (со знком минус). Причем, коды накладных расходов должны быть настроены следующим образом: Тип дебетования – "Номенклатура", Тип кредитования – "Бухг. счет". 2. Обрабатываем накладную и... получаем трассировку стека, см. выше. Для других настроек накладных расходов ошибок не возникало (может не все протестировал?!) и сторно-закупка обрабатывалась. Для решения возникающих ситуаций можно попробовать использовать стандартный функционал системы, если конечно таких ситуаций не так много. Возможный метод обхода ошибки: 1. В параметрах модуля "Главная книга" отключается параметр, отвечающий за механизм корреспонденции счетов (необходимый для формирования двойной записи). 2. Обрабатывается накладная по закупке (при этом формируются много однострочных проводок). 3. Восстанавливаются настройки корреспонденции счетов. 4. С помощью периодической функции ручной корреспонденции в модуле "Главная книга" выполняется корреспонденция счетов (при тестировании проводки правильно корреспондировались). 5. Проверяются проводки по закупке (при просмотре документа ГК по закупке проводки отражаются правильно). Данный метод имеет ряд недостатков, поскольку требует отсутствия пользователей в системе на момент отключения механизма корреспонденции (чтобы не пришлось корреспондировать вручную проводки, которые пользователь может успеть создать). P.S. Извиняюсь, что сообщение не касается программирования. |
|