AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2005, 11:02   #1  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Такая ситуация:

1) 30.06.2004 приход на склад в количесве 590 шт. себестоимостью 106,44
2) в течении 2004 года расход 578 шт. на себестоимость 104,27
3) проведено закрытие по 31.12.2004
по этой партии товара, закрытие никаких коррекций не сделало. т.е. просто сопоставило без изменения себестоимости.
В проводке прихода ()пункт 1 записано:
финансовой закрытие - пусто
закрытое количество - 578
расчитанная сумма - 104,27
4) в январе 2005 прошел расход двумя проводками на оставшиеся 12 шт на себестоимость 2,17
5) проведен пересчет за январь 2005
В результате пересчета, скорректировалась себестоимость одной из продаж на 1 копеку (наверно из-за округления) и... САМОЕ ИНТЕРЕСНОЕ - скорректировался приход (пункт 1) на туже копейку только с другим знаком!!!!
Понятно что: 104,27 (2004) +2,17 (2005) = 106,44 (общий приход)
и понятно что раз расход на одну копейку скорректировался то мы уже не выходим на нулевую сумму, но тогда вопрос почему скорректировался приход, а не еще один расход.

Итак господа, вопрос: ПОЧЕМУ СКОРРЕКТИРОВАЛСЯ ПРИХОД!!!!
Старый 22.02.2005, 19:59   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
интересный вопрос.
Какая версия? какой сервис-пак? Двухвалютный склад? Физическая разноска установлена?

Я правильно понимаю, что фраза "578 шт. на себестоимость 104,27" означает, что аксапта выполнила проводку с общей суммой 104.27?

Теперь общие соображения.
Аксапта может корректировать приходы. Например, проводки перемещения будут корректироваться, если сумма в исходом приходе имзенилась (например, накладными расходами). Т.е. теоретически такая ситуация возможна.

Вы можете протестировать на демобазе и дать пример по демобазе? Заведите новую номенклатуру. Скажите какую группу номенклатуру, группу моделей и складской аналитики вы делаете. Желательно не трогать курсы. Заведите нового поставщика и клиента для чистоты эксперимента. Заведите новую закупку. Скажите какой датой вы делаете закупки и продажи. Тогда и мы постараемся воспроизвести данный эффект.
__________________
полезное на axForum, github, vk, coub.
Старый 23.02.2005, 11:36   #3  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Договорились. Я сделаю чистейший эксперемент. Все настройки Вам выложу. Все результаты подробно зафиксирую.
Старый 23.02.2005, 11:42   #4  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Да. И еще: скорректировались некоторые расходы!!!
Старый 23.02.2005, 15:49   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
спасибо.
__________________
полезное на axForum, github, vk, coub.
Старый 23.02.2005, 18:48   #6  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Уважаемый Mazzy, я подготовил пример как и договаривались. Но мне неохота было выписывать настройки, поэтому я сделал вырезки форм и оформил все в вордовском документе. Базу взял с нуля. Воспроизвел пример, результат получился ожидаемым - проблема осталась. Ох, будет обидно, если это из-за какой-нибудь галочки Убил пол рабочего дня на этот пример Одно но - файл получился 300 кил, поэтому отправляю его Вам на е-мэйл. Очень хотелось бы чтобы Вы посмотрели...
Старый 24.02.2005, 08:16   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Спасибо.
Вот этот пример. Постараюсь посмотреть ближе к вечеру.
Вложения
Тип файла: zip Primer.zip (309.6 Кб, 104 просмотров)
__________________
полезное на axForum, github, vk, coub.
Старый 24.02.2005, 13:47   #8  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Вобщем-то разобрались где, что и как считается.
Итак есть класс InventCostItemDim и у него есть метод метод CreateErrorAdjustment. Этот метод исполняется до пересчета расходных проводок. И делает проводку по сопоставлению, на проводку прихода. Сумму для проводки он получает так:

сначала пересчет вычисляет следующую дельту для складского прихода (из примера в ворде):

дельта = (1009,33/101)*39 - 389,7
дельта = 0,04

(т.е. вычисляется стоимость прихода за единицу, умножается на уже сопоставленное количество, из этого всего вычитается уже сопоставленная сумма)

затем вычисляется такая же дельта для каждого складского сопоставления отдельно и суммируется.

затем находится разница этих дельт и делается:
CreateErrorAdjustment(разница дельт).

Говоря по простому, пересчет сравнивает два параметра:
1. Ошибку округления общим скопом (проводка прихода)
2. Суммарную ошибку округления отдельно по проводкам
И если они не равны то делает коррекцию прихода.

В чем проблема с нашим примером:
Вычисляя ошибку округления по проводкам, он каждое полученное значение, перед суммирование округляет, а так как значения там очень маленькие то суммируется каждый раз 0.
Сейчас мы "убрали" это округление и пытаемся пересчитать заново.
Ждем результата.
Если че не понятно - спрашивайте.
Старый 24.02.2005, 19:26   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Спасибо.
"Убрали округление" - это наверное неправильно.

Еще не взялся за разбор. Можно вопросы?
Я правильно понимаю, что ошибка округления возможна только до тех пор, пока все количество не будет списано? А при списании всего, что оприходовано, будет еще одна коррекция на -1 копейку?

Возникнет ли коррекция, если сразу спишется все оприходованное количество?
__________________
полезное на axForum, github, vk, coub.
Старый 24.02.2005, 19:56   #10  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Так. Разгрести эту проблему "с наскоку" не получилось. Вы были правы - "убрать округление" не правильно. Хотя это я так просто выразился туманно. Но всетаки - результат получился не тот который ожидался.

Ошибка, очевидно, будет возникать ВСЕГДА!!!

Если списать оставшиеся количество и склад не закрывать, он все равно скорректирует приход (так как останется вся таже формула (1009,33/101)*39 - 389,7). Но еще он и скорректирует на туже сумму с другим знаком и последний расход.

И даже при закрытии склада он опять споткнется на этом приходе... т.к. я уже говорил что эту процедуру дооценки проходов он делает до!!! сопоставления!!! А следовательно всегда будет выходить сначала на формулу (1009,33/101)*39 - 389,7 !!!

Естественно, что он перестанет делать коррекцию, когда все сопоставит )

Ваш вопрос: "Возникнет ли коррекция, если сразу спишется все оприходованное количество?", вроде бы имеет очевидный ответ - "нет". Но я проверил на всякий случай. Если вы имели ввиду сделать такой же приход, и потом сделать расход одной проводкой, то в этом случае ничего не корректируется.
Старый 24.02.2005, 20:29   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Да.
Странно.
Источник странного поведения - понятен. Вроде бы.

Непонятно только зачем этот "источник" сделали? В чем его сермяжный смысл? Может чего-то не до конца понимаем?
__________________
полезное на axForum, github, vk, coub.
Старый 24.02.2005, 20:30   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от slava09
Естественно, что он перестанет делать коррекцию, когда все сопоставит )
Перестанет делать коррекицю или скорректирует обратно?
__________________
полезное на axForum, github, vk, coub.
Старый 24.02.2005, 20:41   #13  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
"Перестанет делать коррекицю или скорректирует обратно?" - ничего назад не скорректирует!!! Просто перестанет делать коррекцию!!!
Я вообще не понимаю, как это люди живут с такой аксаптой!!! Почему ни у кого не возникло еще таких проблем!!! Почему все молчат!!!

Да, я забыл указать Аксапта 3.0 СП 2 билд 9.1 25.12.2003
чтобы это не значило

Да... да... да... нужно этот смысл устранить
Старый 24.02.2005, 20:44   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от slava09
Да... да... да... нужно этот смысл устранить
Разъяснить.
__________________
полезное на axForum, github, vk, coub.
Старый 24.02.2005, 20:45   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от slava09
Да, я забыл указать Аксапта 3.0 СП 2 билд 9.1 25.12.2003
чтобы это не значило
Сп2 был не очень удачным релизом.
Про билды здесь Версии и билды Аксапты
а где у вас пишется "9.1 25.12.2003"?
__________________
полезное на axForum, github, vk, coub.
Старый 24.02.2005, 20:50   #16  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
"а где у вас пишется "9.1 25.12.2003"?" в смысле где?
Справка\О системе Navision Axapta

увидел:

Российская версия продукта
Navision Axapta 3.0 CIS SP2 Build #9.1 on 25.12.2003

Системная версия продукта
Navision Axapta 3.0 Build #1951.2410/514-90 SP2/OP023-19

Да... и не скопируешь же...
Старый 24.02.2005, 20:54   #17  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
На сегодня я думаю достаточно. Поехал домой. Надеюсь до завтра что-то умное придет в голову
Желаю и Вам того же
Старый 24.02.2005, 21:00   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
А... ну да. Понял. Спасибо.
Надо попробовать сделать тоже самое на #1951.2410/514-90 SP3/OP023-71 CIS SP3 Build #9.2 on 28.04.2004
__________________
полезное на axForum, github, vk, coub.
Старый 25.02.2005, 14:51   #19  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
А есть в классе InventCostItemDim такой метод updateReceiptAdjustmentTrans
в котором есть следующий код:
<div class='XPPtop'>X++</div><div class='XPP'>
               [color=:blue]if[/color] (settleValue != 0)
               {
                   [color=:blue]if[/color] (mapInventTrans && mapInventTrans.[color=:blue]exists[/color](settlementIssue.TransRecId))
                      issue = mapInventTrans.lookup(settlementIssue.TransRecId);
                   [color=:blue]else[/color]
                      issue = settlementIssue.inventTrans([color=:blue]true[/color]);

                   [color=:blue]if[/color] (! issue.recId)
                   {
                       this.createErrorAdjustment(_receipt,-settleValue);
                   }
                   [color=:blue]else[/color]
                   {
                       [color=:blue]if[/color] (issue.costValue() - settleValue > 0)
                       {
                           errorAmount = issue.costValue() - settleValue;
                           this.createErrorAdjustment(_receipt,errorAmount);
                           settleValue -= errorAmount;
                       }

                       _receipt.costAmountSettled             += settleValue;

                       issue.costAmountSettled                -= settleValue;
                       issue.costAmountAdjustment             -= settleValue;

                       this.updateInventTrans(issue);

                       [color=:blue]if[/color] (settlementReceipt.transDate [color=:blue]==[/color] inventClosing.transDate &&
                           settlementReceipt.voucher   [color=:blue]==[/color] inventClosing.voucher)
                       {
                           settlementReceipt.costAmountSettled    += settleValue;
                           settlementReceipt.update();

                           settlementIssue.costAmountSettled      -= settleValue;
                           settlementIssue.costAmountAdjustment   -= settleValue;
                           settlementIssue.update();
                       }
                       [color=:blue]else[/color]
                       {
                           this.updateSettlementReceipt(settlementReceipt,settleValue);
                           this.updateSettlementIssue(settlementIssue,settleValue);
                       }
                       this.updateTrans(issue,-settleValue);
                   }
               }</div>
так в чем же сермяжная правда этих:

_receipt.costAmountSettled += settleValue;
issue.costAmountSettled -= settleValue;
issue.costAmountAdjustment -= settleValue;

или этих строк:

settlementReceipt.costAmountSettled += settleValue;
settlementReceipt.update();
settlementIssue.costAmountSettled -= settleValue;
settlementIssue.costAmountAdjustment -= settleValue;
settlementIssue.update();

как мы видим, пара проводок по сопоставлению обновняется, но... приходные проводки не обновляют коррекцию, а расходные обновляют!
Где он смысл то? Для меня это еще одна загадка.
Старый 25.02.2005, 14:56   #20  
slava09_imported is offline
slava09_imported
Участник
 
67 / 10 (1) +
Регистрация: 01.06.2004
Цитата:
Сообщение от mazzy
А... ну да. Понял. Спасибо.
Надо попробовать сделать тоже самое на #1951.2410/514-90 SP3/OP023-71 CIS SP3 Build #9.2 on 28.04.2004
Вы советуете мне накатить третий сервис пак и потестировать? На основании каких соображений? Там что-то изменилось по алгоритму пересчета?
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:32.