10.03.2005, 17:53 | #1 |
Участник
|
В случае если по одной и той же строке закупки возврат выполняется дважды (физически, а после финансово) то его себестоимость рассчитывается неверно.
Пример: Есть закупка М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 |
Участник
|
Вообще-то она так всегда работала. Себестоимость списания считается по скользящей средней, если не определен метод учета по стандартной себестоимости. И то при закрытии пересчитает.
Бороться с этим эффектом не вижу смысла. Если же вы хотите проводки в ГК как бухгалтера привыкли, то попробуйте функциональность маркировки. |
|
11.03.2005, 12:00 | #3 |
Участник
|
Хм…
Проблема как раз в том и состоит, что система неверно рассчитывает себестоимость при использовании маркировки. Использование немедленного получения дает такой же эффект как и маркировка. Можете проверить мой пример со следующими изменениями: 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 |
Участник
|
Ошибку удалось исправить смодификацией метода 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 |
Участник
|
Цитата:
Сообщение от Sanya
6. Закрытие склада выровняет себестоимость, но остаются проблемы бухг. учета.
__________________
|
|
29.04.2005, 11:49 | #6 |
Участник
|
Пример с данными бухг. учета:
Есть закупка М1 100 кг по 4 руб на сумму 400 руб. Действия в системе: 1. Обрабатываем отборочную накладную на все количество 2. Через немедленное получение возвращаем все количество по отборочной накладной 3. Обрабатываем накладную на все количество. В результате товар приходуется на склад по цене 4 руб за 1 кг на общую сумму 400 руб. Данная операция отражается в бухгалтерском учете следующим образом Дебет Товары на складе Кредит Расчеты с поставщиками Сумма 400 Данная проводка формируется корректно 4. Через немедленное получение возвращаем весь товар со склада. В результате получаем себестоимость возврата 200 руб, что не верно должно быть 400. Данная операция отражается в бухгалтерском учете следующим образом 1-ая проводка: Дебет Расчеты с поставщиками Кредит Товары на складе Сумма 400 2-ая проводка: Дебет Товары на складе Кредит Счет себестоимости по закупке Сумма 200 Вторая проводка не является верной, так как при регистрации возврата известно, какой товар возвращается, и его себестоимость не может быть изменена. В результате на счете «Товары на складе» остается сумма, не соответствующая активам предприятия. 5. Закрытие склада приведет к коррекции складской проводки на сумму 200, что отразиться в бухгалтерском учете: Дебет Счет себестоимости по закупке Кредит Товары на складе Сумма 200 Т.е. сальдо на счете «Товары на складе» будет корректным только после выполнения закрытия склада. Выводы: В некоторых случаях действительно приходиться мериться с тем, что себестоимость, бухгалтерский учет будут корректироваться закрытием склада. Но в данном случае в этом нет необходимости. На момент закрытия система не учитывает проводки по физическим возвратам, и получаем верную себестоимость. А вот на момент расчета суммы возврата эти проводки принимают участие в расчетах, что и приводит к некорректным результатам. |
|