24.01.2007, 11:51 | #1 |
Участник
|
Пересчет себестоимости по модели "Средняя"
Разбираюсь с методами расчета себестоимости по разным моделям. Модель "Средняя стоимость" просто в тупик ставит.
Настроила простейший пример. У номенклатуры в группе складских аналитик активирован склад, первичная аналитика, флажок "финансовая склад" включен. В группе складских модель складская модель - "Средняя стоимость". Включены "Отрицательный финансовый склад", "Разносить финансовые операции". В карточке товара проставила "минимальное среднее кол-во" = 1, т.к. дока рекомендует именно такое значение в случае работы со штуками, т.е. с целыми кол-вами. Версия Ахарта SP4. Вот и все вроде. Дальше провела несколько закупок и продаж. С переносами, возвратами даже не связывалась пока. Вот набор проводок по товару Дата | Кол-во | Цена | Сумма 01.01.2007 | 10 | 100 | 1000 02.01.2007 | 5 | 110 | 550 03.01.2007 | -2 | 120 | -240 04.01.2007 | 50 | 95 | 4750 05.01.2007 | -25 | 120 | -3000 05.01.2007 | 100 | 90 | 9000 06.01.2007 | -15 | 120 | -1800 07.01.2007 | 10 | 115 | 1150 У меня средняя себестоимость получается: (1000+550+4750+9000+1150)/(10+5+50+100+10) = 16450/175= 94 Т.е. получилось целое число, без знаков после запятой. Система же мне предлагает самые разнообразные значения в дробной части. То 94.147, то 94.28. Я пробовала менять значение "минимальное среднее количество". Какой же все-таки алгоритм расчета себестоимости по средней? Я подозреваю, что не совсем такой, как в документации пишут: мол, сложите все суммы, разделите на суммарное количество - и вот оно, ваше счастье. Откуда берутся знаки после запятой? Я бы подумала, что все из-за округления какого-то, если бы и у меня знаки какие-то были, а так мне повезло такой пример набрать, что целое число получилось. Кто сталкивался с такой проблемой и решил ее, кто может подсказать, как работает алгоритм пересчета себестоимости расходов по средней? На всякий случай выкладываю файл Ecxel, в котором я делала расчет прогнозируемой себестоимости по введенным проводкам |
|
24.01.2007, 12:00 | #2 |
Member
|
Алгоритм простой. Сначала делаются сопоставления приходов и расходов. Потом считаются коррекции.
Из-за параметров закрытия сопоставление расхода может произойти не поровну между всеми проводками, а с перекосами в большую или меньшую сторону. За счет этого и происходит отклонение в цифрах. Чем меньше количество в расходе, тем больше м.б. отклонение (в относительных величинах).
__________________
С уважением, glibs® |
|
24.01.2007, 12:13 | #3 |
Участник
|
Вроде бы в документации так не пишут. В любом учебнике действительно пишут так, но из-за того, что в Аксе при любом методе делаются сопоставления проводок расхода с приходами, то средняя вычисляется не от "кучи", а от каждой проводки берется часть суммы (впрочем и количества). В результате и получаются цифры не круглые. Только когда полностью будет списана номенклатура (точнее номенклатура плюс аналитики, заданные в качестве финансовых) тогда спишутся все остатки сумм.
|
|
24.01.2007, 12:19 | #4 |
Участник
|
вот здесь лежит хороший документ "Расчет себестоимости. Теория и практика" http://forum.mazzy.ru/index.php?act=...pe=post&id=256
просмотреть >> Последний раз редактировалось belugin; 24.01.2007 в 12:39. |
|
24.01.2007, 12:38 | #5 |
Участник
|
Наверное, придется по коду посмотреть, что и как там происходит, потому что из объяснений все равно не сильно понятно.
Спасибо за быструю реакцию и помощь. |
|
24.01.2007, 12:43 | #6 |
Участник
|
Спасибо, почитаю, надеюсь, это не "Белая книга себестоимости":-)
|
|
24.01.2007, 13:06 | #7 |
Участник
|
|
|
24.01.2007, 13:07 | #8 |
Участник
|
Цитата:
Все просто: Аксапта считает не статистическую средневзвешенную. У Аксапты "взвесь" зависит от того насколько "сильно" отгружаемое количество входит в приход с которым она в данный момент сопоставляет. Т.е. если вы списывате 100 из 110, то это больше влияет на среднюю, чем когда вы списываете 1 из 110. Блин. Попытался объяснить русским языком, что-то не очень получилось |
|
24.01.2007, 13:21 | #9 |
Участник
|
Обязательно посмотрите это Видео с разъяснениями механизма расчета себестоимости
|
|
24.01.2007, 13:22 | #10 |
Участник
|
|
|
24.01.2007, 14:09 | #11 |
Участник
|
в принципе я по коду разобралась уже. Изначально думала, что усреднение происходит по всем проводкам прихода. А оно выполняется только по тем, которые сопоставились с текущей расходной проводкой. Причем на количество, пропорциональное вкладу конкретного прихода в суммарное приходное количество, а не просто на доступное открытое количество. Удивило только, что проводки для сопоставления берутся в произвольном порядке. Думала, все же система будет брать по ФИФО приходы, а у меня первым делом взялась приходная проводка за 5.01.2007, потом за 01.01.2007.
Видео только скачалось, посмотрю сейчас. Большое всем спасибо |
|
24.01.2007, 15:58 | #12 |
Member
|
Цитата:
Сообщение от mazzy
...
Злой ты. ... Цитата:
Сообщение от vey
...
в принципе я по коду разобралась уже. Изначально думала, что усреднение происходит по всем проводкам прихода. А оно выполняется только по тем, которые сопоставились с текущей расходной проводкой... Не качайте тогда методические рекомендации по себестоимости
__________________
С уважением, glibs® |
|
24.01.2007, 16:10 | #13 |
Участник
|
Просто столько раз уже наталкивалась на ситуации, когда в документации пишут одно, а на самом деле система совсем по-другому работает (к примеру, как работает компонент спецификации с типом "виртуальный", сколько на самом деле уровней вложенности у спецификации, как отлично работают фьючерсы и т.д., и т.п.). Вот поэтому как-то коду больше доверяю, честно говоря, чем таким-сяким методичкам. Но с себестоимостью я тоже добросовестно пыталась сначала по доке разобраться. А она пишет:"При закрытии склада по методу средней себестоимости система суммирует все проводки прихода и делит их на общее количество прихода, вычисляя единую себестоимость для всех расходов. В нашем примере за все время на складе было оприходовано товара на сумму (300 + 700 + 200) = 1200 р., при этом суммарный объем прихода составил 250 штук. Тогда товар списывается по себестоимости
1200/250 р. = 4,8 р." А разве так оно на самом деле? |
|
24.01.2007, 16:21 | #14 |
Member
|
Параметры закрытия тоже описаны подробно, но в другой документации. По-моему она шла с сп3 или сп4, и была на английском. Там все правильно написано.
__________________
С уважением, glibs® |
|
24.01.2007, 16:24 | #15 |
Участник
|
спасибо , поищу сейчас документ. Потому что в принципе еще некоторые вопросы остались.
|
|
25.05.2010, 09:59 | #16 |
Участник
|
Уважаемые коллеги!
Подскажите какие параметры установить, чтобы расчет себестоимости по модели "средней" приводил к результату равному (Сумма на начало + Сумма приходов) / (Кол-во на начало + кол-во приходов) ? Дело в том, что по некоторым номенклатурам (лесное сырье) возникает достаточно сильное расхождение. Причина скорее всего в том, что стоимость приходов может существенно отличаться. Т.к. часть сырья мы покупаем на стороне, часть заготавливаем сами, при этом стоимость собственного заготовленного сырья отличается за разные периоды. Таких номенклатур всего около 10, по остальным на первый взгляд проблем не нашел. Статью Дениса читал, сейчас ставлю различные эксперименты с параметрами. Тем не менее задаю вопрос к тем, кто уже разбирался с подобной проблемой и может дать полезные советы. |
|
25.05.2010, 14:23 | #17 |
Участник
|
В качестве примера:
Ост.нач.(кол-во) | Сумма | Прих (кол-во) | Сумма | Расх (кол-во) | Сумма 16 683,61 | 11 710 306,28 | 8 602,05 | 4 917 393,53 | 7 027,09 | 4 082 838,58 Сс (расчетная)=657,59 Сс (факт)=581,01 Для расчетных номенклатур установил параметр "Минимальное среднее значение" равное 0.0001 (точность учета до 4-го знака) - эффекта никакого. Последний раз редактировалось ena_ax; 25.05.2010 в 14:32. |
|
25.05.2010, 14:54 | #18 |
Moderator
|
Цитата:
X++: settleMin = this.settleMinAverageValue(receipt,settleQty); if (settleQty < settleMin) settleQty = settleMin; settleMin = this.settleMinAverageQty(issue); if (settleQty < settleMin) settleQty = settleMin; Так что я бы посоветовал поставить в минимальную сумму сопоставления 1 копейку,а в минимальный процент сопоставления поставить чего-нить совсем мелкое - скажем 0,000001. Тогда у тебя пойдет разумная отсечка по сумме,а отсечка по проценту просто не сыграет. Вообще - без перехода на 2009ую, задача получения истино средней себестоимости - не решаемая. |
|
|
За это сообщение автора поблагодарили: ena_ax (1). |
25.05.2010, 15:38 | #19 |
Участник
|
Цитата:
Сообщение от fed
Так что я бы посоветовал поставить в минимальную сумму сопоставления 1 копейку,а в минимальный процент сопоставления поставить чего-нить совсем мелкое - скажем 0,000001. Тогда у тебя пойдет разумная отсечка по сумме,а отсечка по проценту просто не сыграет.
Вообще - без перехода на 2009ую, задача получения истино средней себестоимости - не решаемая. Если я правильно понимаю, то параметр "Минимальный процент сопоставления" указывается при запуске процедуры "Закрытие склада" в группе полей "Взвешенное ср." Система не дает изменение меньше 2.5 У меня Аксапта 4.0 СП2 X++: if (minSettlePct && minSettlePct < 2.5) result = checkFailed(strfmt("@SYS78803",minSettlePct) + '\n' + strfmt("@SYS83597", 2.5)); |
|
25.05.2010, 15:44 | #20 |
Moderator
|
Цитата:
Сообщение от ena_ax
Спасибо за разъяснение. Получить истинную среднюю стоимость не мечтаю, достаточно получить результат близкий в разумных пределах.
Если я правильно понимаю, то параметр "Минимальный процент сопоставления" указывается при запуске процедуры "Закрытие склада" в группе полей "Взвешенное ср." Система не дает изменение меньше 2.5 У меня Аксапта 4.0 СП2 X++: if (minSettlePct && minSettlePct < 2.5) result = checkFailed(strfmt("@SYS78803",minSettlePct) + '\n' + strfmt("@SYS83597", 2.5)); |
|
Теги |
закрытие склада, себестоимость |
|
|