powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите как рассчитать средную себестоимость товара?
25 сообщений из 35, страница 1 из 2
Помогите как рассчитать средную себестоимость товара?
    #39138978
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем
Помогите как рассчитать себестоимость товара
Пример

1)Поступило ручка 10 шт по цене 20 руб Себестоимость товара 20
2)Продали ручка 4 шт по цене 30 руб

3)Поступило ручка 10 шт по цене 15 руб здесь как посчитать себестоимость?
4)Продали товар 4 шт по цене 30 руб


Как мне надо узнать себестоимость продаж?

Заранее благодарен
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39138993
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbek,

всегда отделяйте мух от котлет, т.е. себестоимость (объективную величину, независящую от воли и сознания :)) и розничную выручку (часто определяемую ценами, созревшими в головах "успешных менеджеров" по продажам :)).

Если учетной политикой предусмотрено применение метода средневзвешенной себестоимости, то:

p 1 = (C 0 + C 1 ) / (Q 0 + q 1 )

где:
p 1 = новое значение ср-взвешенной цены за 1 единицу товара, которое будет после оприходования новой партии;
C 0 = значение общей стоимости остатка товара, которое было _до_ поступления новой партии;
C 1 = значение общей стоимости товара _в_ данной партии
Q 0 = общее количество остатка товара, которое было _до_ поступления новой партии;
Q 1 = количество товара _в_ данной партии.

Значение себестоимости "X" единиц товара, которые были продано по цене p 1 (т.е. _после_ оприходования), есть: S x = p 1 * Q x

Для вашего примера будет так:

p1 = 20 / 10 = 2.0000;
s1 = 2.0000 * 4 = 8 - это себестоимость проданного товара; (30/10) * 4 = 12 - это розничная выручка;
остаток товара после продажи:
1) в количественном выражении: Q0 = 10-4 = 6 шт
2) в рублевом: S0 = 20 - 8 = 16 руб
3) новый приход: Q1=10 шт на сумму S1=15 руб - подставляем в формулу:
p1 = (S0+S1) / (Q0+Q1) = (16+15)/(6+10) = 31/16 = 1.9375 - это новое значение ср-взвешенной цены за 1 единицу товара, которое будет после оприходования новой партии; общее значение остатка на складе станет p1 * (Q0+Q1) = 31 руб - это ответ на ваш вопрос в п. "3)".
4) продали 4 штуки: s1 = 1.9375 * 4 = 7.75 руб - это себестоимость проданного товара; а ваши 30 руб - это розничная выручка.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139109
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekПомогите как рассчитать себестоимость товара
Таблоидучетной политикой предусмотреноОбратитесь к своему главбуху, как прописано в вашей учетной политике, так и считайте.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139135
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbek, в общем и целом Таблоид вам правильно ответил. Один ньюанс - то, что вы считаете, это средняя цена приобретения для складского остатка, в стоимости которого не учтены операционные расходы.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139352
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид
Спасибо за помощь
Еще один вопрос подскажите как лучше хранить эти себестоимости товаров? или селектом можно?

Таблица примерно стандартный
1)Таблица Товары
ИД
Наименование
Фото
Штрихкод



1)Таблица Шапка документ

Тип операция (приход,расход,корректировка)
номер документа
Дата
Откуда
Куда
Проведен (да/нет)


2)Таблица перечень товаров

ИД
ИД Документа
ИД Товара
Количество
Закупочная цена

Достаточно ли селектом все вытащит на любую дату из этих таблиц
Общая выручка
Общая себестоимости продаж
Прибиль?

Заранее благодарен
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139360
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделать отделную таблицу для хранение
или селектом с примененим оконные функции из Firebird 3 ки можно все это рассчитать на любую дату?
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139381
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbek,

на любую дату остаток посчитать по этим таблицам можно, но при их увеличении это начнёт тормозить.
Вам необходима еще таблица т.н. "опорных остатков", т.е. тех, что были, например, на некоторые промежуточные ("опорные" даты) - скажем, на начало каждого квартала или каждого месяца.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139489
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbek, если вы закрываете месяц (делаете проведение), то далее вы можете опираться на итог дебета счета, на котором у вас отражен складской остаток и далее делать подсчет от последнего закрытого месяца. Собственно, так делает большинство бухгалтерских программ.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139529
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без дополнительных таблиц можете пример селект дать как считается себестоимоисть
пока читаю новых фич Firebird 3 over partition оконные функции..
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139562
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbek, в каком смысле "без дополнительных таблиц"?
Если вы делаете проведение бухгалтерских документов за месяц (к примеру, ТТН), то в вашей базе, как минимум, должны присутствовать таблицы плана счетов бухгалтерского учета и таблицы с итогами дебетовых и кредитовых счетов проведенных документов.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139565
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbekпока читаю новых фич Firebird 3 over partition оконные функции..
оконные функции будут точно так же молотить весь результат, если он не будет храниться. Так что, улучшения производительности тут не будет.
Не знаю, откуда у вас взялась идея, что при той же структуре и объемах данных, новый sql будет "побыстрее". Есть методы доступа, и они определяют скорость выполнения запросов. А оконные функции не добавляют новых методов доступа.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139569
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Без дополнительных таблиц можете пример селект дать как считается себестоимоисть
> пока читаю новых фич Firebird 3 over partition оконные функции..

а зачем вам для подсчета остатков оконные ф-ции ? вам же агрегированные данные нужны только по ИД изделия - так или нет ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
   d.ware_id -- "ИД Товара"
  ,sum( d.qty * iif( h.optype = "+", 1, -1) ) -- для приходов суммируем, для расходов вычитаем
    as amount_remainder
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
from doc_data d  -- "перечень товаров"
join doc_list h -- "Шапка документ" 
    on d.doc_id = h.id
where 
    h.проведен = "да" 
    and h.date <= :a_interested_date -- на какую дату считаем остатки (включая операции за эту дату)
group by 
   d.ware_id;
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139570
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvА оконные функции не добавляют новых методов доступа
sliding window внутри буферизированного набора - это в некотором роде новый метод доступа
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139574
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr, не просветите в двух словах - какой принцип заложен в скользящее окно? В чем соль?
P.S. сори за офтоп.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139589
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

LR 3.0Есть ещё одно важное понятие, связанное с оконными функциями: для каждой строки
существует набор строк в её разделе, называемый рамкой окна (кадры окна). По умолчанию, с
указанием ORDER BY рамка состоит из всех строк от начала раздела до текущей строки и строк,
равных текущей по значению выражения ORDER BY. Без ORDER BY рамка по умолчанию
состоит из всех строк раздела.
Таким образом, для стандартных агрегатных функций, предложение ORDER BY заставляет
возвращать частичные результаты агрегации по мере обработки записей.

В настоящее время управлять рамкой окна в Firebird нельзя. Т.е. нельзя задавать что-то вроде
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING или другие рамки.

Если есть ORDER BY окно всегда такое
RANGE UNBOUNDED PRECEDING AND CURRENT ROW (т.е. от 1 до текущего значения в ORDER BY и всех равных ему)
если ORDER BY не указано
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (всё окно)
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139595
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

в заранее материализованном наборе можно сколько угодно дергать "курсор" туда-обратно, без повторного физического обращения к данным. Такой подход используется только в хеш-джойнах и при использовании оконных функций. Другие методы доступа все читают линейно и однократно.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139597
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, спасибо!
В общем и целом суть ясна, но полагаю, подобного эффекта можно и сейчас (на v2.5) добиться через скан курсора в
Код: plsql
1.
2.
3.
4.
5.
6.
FOR
    SELECT ...
      FROM ...
      ORDER BY ...
      INTO: ...
  DO


при скане курсора проверяя на изменение значения уточняющих полей в предложении ORDER BY и периодически выплевывая полученные данные из процедуры в результирующий набор через SUSPEND. Или я не прав?
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139598
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr, внесли окончательную ясность в вопрос. Спасибо!
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139602
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

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

Код: sql
1.
2.
3.
4.
select
  sum(t.w) over(order by t.bydate asc) as W1,
  sum(t.w) over(order by t.bydate desc) as W2
from t
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139603
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тем не менее, я считаю, что мысль автора топика "а вот я сейчас заюзаю оконные функции из 3.0, и все станет хорошо", развеяна.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139604
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оконные функции автору однозначно не помогут.
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139640
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBConstructormr.Ulugbek, в каком смысле "без дополнительных таблиц"?
Если вы делаете проведение бухгалтерских документов за месяц (к примеру, ТТН), то в вашей базе, как минимум, должны присутствовать таблицы плана счетов бухгалтерского учета и таблицы с итогами дебетовых и кредитовых счетов проведенных документов.

Дебет кредит мне не надо
У меня простой маленький учет товаров Закупка,Продажа

Для хранение себестоимость как я понял подойдет ли такая структура таблиц оно будет заполнятся и обновляется за день?

ИД
Дата
ИДТовара
Себестоимость товар
ИДСклад (магазин итд)
Начал Остаток
Приход
Уход
КонецОстаток
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139642
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да по ИД товара мне надо узнать себестоимость товара
Здесь я не вижу вашу формулу который вы дали..




Таблоид> Без дополнительных таблиц можете пример селект дать как считается себестоимоисть
> пока читаю новых фич Firebird 3 over partition оконные функции..

а зачем вам для подсчета остатков оконные ф-ции ? вам же агрегированные данные нужны только по ИД изделия - так или нет ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
   d.ware_id -- "ИД Товара"
  ,sum( d.qty * iif( h.optype = "+", 1, -1) ) -- для приходов суммируем, для расходов вычитаем
    as amount_remainder
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
from doc_data d  -- "перечень товаров"
join doc_list h -- "Шапка документ" 
    on d.doc_id = h.id
where 
    h.проведен = "да" 
    and h.date <= :a_interested_date -- на какую дату считаем остатки (включая операции за эту дату)
group by 
   d.ware_id;
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139655
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekДа по ИД товара мне надо узнать себестоимость товара
Здесь я не вижу вашу формулу который вы дали..Себестоимость имеющегося остатка на интересующую дату - вот она:...
Код: plaintext
1.
2.
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
...
А формулу надо впихивать в after-update триггер на вашу таблицу "Шапка документа": если новое значение в поле "Проведен" этой таблицы стало равным "Да", то курсором пройтись по таблице "Перечень товаров" (с отбором строк только для данного документа) и для каждого изделия уже рассчитывать новое значение средневзвешенной цены. С записью в поле "Цена средняя" вашей "Таблицы товаров" (вы это поле не указали, но оно вам понадобится, т.к. при оформлении списаний из него надо будет брать это значение для расчета стоимости расхода в закупочных ценах).
...
Рейтинг: 0 / 0
Помогите как рассчитать средную себестоимость товара?
    #39139667
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоидmr.UlugbekДа по ИД товара мне надо узнать себестоимость товара
Здесь я не вижу вашу формулу который вы дали..Себестоимость имеющегося остатка на интересующую дату - вот она:...
Код: plaintext
1.
2.
  ,sum (d.price_purchase -- закупочная цена (здесь это должна быть СТОИМОСТЬ ЗА ВСЁ количество по строке)
     * iif( h.optype = "+", 1, -1) -- для приходов суммируем, для расходов вычитаем
    ) as cost_remainder_in_purchasing_price
...
А формулу надо впихивать в after-update триггер на вашу таблицу "Шапка документа": если новое значение в поле "Проведен" этой таблицы стало равным "Да", то курсором пройтись по таблице "Перечень товаров" (с отбором строк только для данного документа) и для каждого изделия уже рассчитывать новое значение средневзвешенной цены. С записью в поле "Цена средняя" вашей "Таблицы товаров" (вы это поле не указали, но оно вам понадобится, т.к. при оформлении списаний из него надо будет брать это значение для расчета стоимости расхода в закупочных ценах).

Понятно спасибо вам
Добавлю тогда в таблицу товара несколько полей (цена средняя),продажная цена по умолчанию,закупочная цена по умолчанию, скидка
Создам для таблицу товаров аудит лог через IBExpert для учета лога что было что стало итд

Попробую спасибо вам огромное
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите как рассчитать средную себестоимость товара?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]