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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.03.2005, 17:53   #1  
Sanya is offline
Sanya
Участник
 
172 / 11 (1) +
Регистрация: 24.04.2003
Адрес: Киев
В случае если по одной и той же строке закупки возврат выполняется дважды (физически, а после финансово) то его себестоимость рассчитывается неверно.
Пример:
Есть закупка М1 100 кг по 4 руб на сумму 400 руб.
Действия в системе:
1. Обрабатываем отборочную накладную на все количество
2. Через немедленное получение возвращаем все количество по отборочной накладной
3. Обрабатываем накладную на все количество. В результате товар приходуется на склад по цене 4 руб за 1 кг на общую сумму 400 руб.
4. Через немедленное получение (или кредит-ноту) возвращаем весь товар со склада. В результате получаем себестоимость возврата 200 руб, что не верно должно быть 400.
5. В случае если возврат был зарегистрирован через немедленное получение, то закрытие склада себестоимость возврата откорректирует верно. Для кредит-ноты себестоимость возврата будет сопоставлена по методу заданному в группе складской модели. Однако в обоих случаях остаются проблемы в бухгалтерском учете, так как на момент выполнения возврата сумма по бухг. счетам пойдет неверная и закрытие склада эту проблему не решает.
Предположительно проблема возникает в результате того, что на момент расчета себестоимости возврата в ней участвует складская проводка по отборочной накладной (п.1), которая была отсторнированы в п. 2. Эта проводка числиться в системе как финансово обработанная, но себестоимость по ней равна 0. В результате себестоимость возврата считается как 400/(100+100) = 2 грн за 1 кг.
Есть какие-то идеи?
Старый 10.03.2005, 22:51   #2  
glibs_imported is offline
glibs_imported
Участник
 
202 / 10 (1) +
Регистрация: 04.11.2003
Вообще-то она так всегда работала. Себестоимость списания считается по скользящей средней, если не определен метод учета по стандартной себестоимости. И то при закрытии пересчитает.

Бороться с этим эффектом не вижу смысла.

Если же вы хотите проводки в ГК как бухгалтера привыкли, то попробуйте функциональность маркировки.
Старый 11.03.2005, 12:00   #3  
Sanya is offline
Sanya
Участник
 
172 / 11 (1) +
Регистрация: 24.04.2003
Адрес: Киев
Хм…
Проблема как раз в том и состоит, что система неверно рассчитывает себестоимость при использовании маркировки. Использование немедленного получения дает такой же эффект как и маркировка.
Можете проверить мой пример со следующими изменениями:
1. Обрабатываем отборочную накладную на все количество
2. Через немедленное получение возвращаем все количество по отборочной накладной
3. Обрабатываем накладную на все количество. В результате товар приходуется на склад по цене 4 руб за 1 кг на общую сумму 400 руб.
4. Создаем кредит-ноту и маркируем ее с исходным лотом.
5. Разносим накладную и получаем себестоимость 200 грн, вместо 400.
6. Закрытие склада выровняет себестоимость, но остаются проблемы бухг. учета.

На мой взгляд это происходит так как на момент расчета себестоимости внутри лота система задействует проводку по отборочной накладной (созданную в п1. и сторнированную в п.2). Эта проводка числиться в системе как фин. проведанная с кол-вом 100 и суммой 0, поле «Возврат по отборочной накладной» активно.
Т.е. в рамках это лота у нас 2 продовки:
1-ая по п.1: сумма 0 кол-во 100
2-ая по п. 3: сумма 400 кол-во 100.
Есть еще сторнирующая по п.2, но ее система похоже игнорирует.
Поучаем себестоимость 1 кг в рамках лота равную (400+0)/(100+100) = 2 руб. Ну для 100 кг М1 получаем 200 руб (вместо нужных 400).

Так что ошибка все таки есть, и как мне кажется, состоит она в том, что при расчете себестоимости лота необходимо анализировать только те проводки, у которых поле «Возврат по отборочной накладной» не активно.
Что скажете?
Старый 27.04.2005, 19:24   #4  
Sanya is offline
Sanya
Участник
 
172 / 11 (1) +
Регистрация: 24.04.2003
Адрес: Киев
Ошибку удалось исправить смодификацией метода calcMarkedCostValue таблицы InventTrans
<div class='XPPtop'>X++</div><div class='XPP'>
[color=:blue]static[/color] [color=:blue]container[/color]  calcMarkedCostValue(
   InventRefTransId    _refTransId,
   ItemId              _itemId,
   InventDimId         _inventDimId,
   Boolean             _inclPhysicalCostValue
   )
{
   InventTrans     inventTrans;

   InventQty       qty;
   CostAmount      value;

   [color=:blue]select[/color] [color=:blue]sum[/color](qty),[color=:blue]sum[/color](costAmountPosted),[color=:blue]sum[/color](costAmountAdjustment) [color=:blue]from[/color] inventTrans
       [color=:blue]index[/color] hint TransIdIdx
       [color=:blue]where[/color] inventTrans.inventTransId         [color=:blue]==[/color] _refTransId              &&
             inventTrans.statusIssue           [color=:blue]==[/color] StatusIssue::None        &&
             inventTrans.statusReceipt         [color=:blue]==[/color] StatusReceipt::Purchased &&
             [color=:green]//добавил проверку -->
[/color]              inventTrans.PackingSlipReturned   [color=:blue]==[/color] NoYes::No                &&
             [color=:green]//добавил проверку <--
[/color]              inventTrans.ItemId                [color=:blue]==[/color] _itemId;

   qty   += inventTrans.qty;
   value += inventTrans.costValue();

   [color=:blue]if[/color] (_inclPhysicalCostValue)
   {
       [color=:blue]select[/color] [color=:blue]sum[/color](qty),[color=:blue]sum[/color](costAmountPhysical) [color=:blue]from[/color] inventTrans
           [color=:blue]index[/color] hint TransIdIdx
           [color=:blue]where[/color] inventTrans.inventTransId         [color=:blue]==[/color] _refTransId              &&
                 inventTrans.statusIssue           [color=:blue]==[/color] StatusIssue::None        &&
                 inventTrans.statusReceipt         [color=:blue]==[/color] StatusReceipt::Received  &&
                 inventTrans.ItemId                [color=:blue]==[/color] _itemId;

       qty   += inventTrans.qty;
       value += inventTrans.CostAmountPhysical;
   }

   [color=:blue]return[/color] [qty,value];
}</div>
Вопрос - на сколько это корректно?
Старый 28.04.2005, 16:54   #5  
ppson is offline
ppson
Участник
Аватар для ppson
Ex AND Project
1C
 
2,102 / 114 (8) +++++
Регистрация: 25.06.2002
Адрес: SPb, Msk
Цитата:
Сообщение от Sanya
6. Закрытие склада выровняет себестоимость, но остаются проблемы бухг. учета.
Поясните этот пункт?
__________________
Старый 29.04.2005, 11:49   #6  
Sanya is offline
Sanya
Участник
 
172 / 11 (1) +
Регистрация: 24.04.2003
Адрес: Киев
Пример с данными бухг. учета:
Есть закупка М1 100 кг по 4 руб на сумму 400 руб.
Действия в системе:
1. Обрабатываем отборочную накладную на все количество
2. Через немедленное получение возвращаем все количество по отборочной накладной
3. Обрабатываем накладную на все количество. В результате товар приходуется на склад по цене 4 руб за 1 кг на общую сумму 400 руб.
Данная операция отражается в бухгалтерском учете следующим образом
Дебет
Товары на складе
Кредит
Расчеты с поставщиками
Сумма
400
Данная проводка формируется корректно

4. Через немедленное получение возвращаем весь товар со склада. В результате получаем себестоимость возврата 200 руб, что не верно должно быть 400.
Данная операция отражается в бухгалтерском учете следующим образом
1-ая проводка:
Дебет
Расчеты с поставщиками
Кредит
Товары на складе
Сумма
400
2-ая проводка:
Дебет
Товары на складе
Кредит
Счет себестоимости по закупке
Сумма
200
Вторая проводка не является верной, так как при регистрации возврата известно, какой товар возвращается, и его себестоимость не может быть изменена. В результате на счете «Товары на складе» остается сумма, не соответствующая активам предприятия.
5. Закрытие склада приведет к коррекции складской проводки на сумму 200, что отразиться в бухгалтерском учете:
Дебет
Счет себестоимости по закупке
Кредит
Товары на складе
Сумма
200
Т.е. сальдо на счете «Товары на складе» будет корректным только после выполнения закрытия склада.
Выводы: В некоторых случаях действительно приходиться мериться с тем, что себестоимость, бухгалтерский учет будут корректироваться закрытием склада. Но в данном случае в этом нет необходимости. На момент закрытия система не учитывает проводки по физическим возвратам, и получаем верную себестоимость. А вот на момент расчета суммы возврата эти проводки принимают участие в расчетах, что и приводит к некорректным результатам.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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