Себестоимость и цены
Материальные и трудовые затраты, коэффициенты и история цен.
Назначение
Раздел отвечает на два связанных, но разных вопроса про одну и ту же номенклатурную позицию: сколько она реально стоит сегодня (себестоимость — материалы по действующим ценам плюс труд по нормам техпроцесса) и по какой цене её продавать, чтобы покрыть не только прямые затраты, но и накладные расходы/плановую прибыль (расчёт цены). Первое — фактический разрез затрат по дереву состава изделия, второе — плановая надстройка над ним с выбором одной из трёх методик разнесения наценки. Оба расчёта не требуют предварительного создания производственного заказа — считаются по любой позиции номенклатуры и количеству "что если".
Раздел (в меню — группа Учёт) состоит из двух экранов: Себестоимость
(/cost, один расчёт по одной позиции) и Прайс-лист (/price-calc,
расчёт цены по нескольким позициям сразу, с сохранением результата).
Кто использует (роли)
| Роль | Что делает здесь |
|---|---|
| Экономист | Основной пользователь раздела — считает себестоимость, ведёт настройки методики расчёта цены, сохраняет прайс-листы |
| Администратор | Имеет доступ ко всем действиям раздела наравне с Экономистом |
Оба экрана закрыты одним правом cost.view — отдельного права на
сохранение прайс-листа, на изменение настроек коэффициентов или на выгрузку
в Excel нет: кто видит раздел, тот может выполнять в нём всё (см. Начало работы).
Ни Мастер участка, ни Диспетчер, ни другие производственные роли доступа к
разделу не имеют.
Основные понятия
- Себестоимость (прямые затраты) — сумма затрат на материалы
(
material_cost) и на труд (labor_cost) по всему дереву состава изделия на заданное количество;total_cost = material_cost + labor_cost. Труд в Vyrab никогда не отключается флажком — это часть себестоимости всегда, а не опциональная надстройка. - PriceRecord (запись о цене) — цена материала/покупного изделия
на конкретную дату (
price,valid_from, коэффициентK3, поставщик). У одной позиции может быть несколько записей с разными датами; расчёт всегда берёт последнюю сvalid_from ≤дата расчёта — то есть "цену на дату" в прошлом можно посчитать так же, как на сегодня. Записи вводятся либо вручную на карточке номенклатуры (вкладка Цена,PriceTab, см. Номенклатура и заказы), либо пакетом при сохранении прайс-листа на этом экране — и то, и другое пишет одну и ту же сущность через связьprice_of. - K3 — коэффициент, на который делится цена из записи о цене, чтобы
получить цену за единицу расчёта (
unit_price = price / K3); K1/K2 (см. глоссарий Начало работы) в себестоимости участвуют не напрямую, а через ту же норму расхода материала, что и в MRP (Склад и снабжение) — количество материала на единицу изделия, а не его цена. - Потребность (requirement) — количество материала/детали, нужное на
весь пересчитанный состав, с учётом коэффициентов нормы расхода и
привязки нормы к операции (
OperationQuantity) или к партии целиком (ForBatch) — тот же расчёт, что использует MRP при подсчёте потребности в закупке (Склад и снабжение), здесь он просто умножается на цену, а не сравнивается с остатком на складе. - PriceCalcSettings (настройки методики) — общие на весь тенант
значения коэффициентов K по умолчанию (
k_simple,k_material,k_labor, целевая прибыльtarget_profit); не привязаны к оператору — их меняет любой, у кого есть доступ к разделу, и это меняет значения по умолчанию для всех. - Метод расчёта цены — одна из трёх методик разнесения наценки поверх прямых затрат, выбирается на экране Прайс-лист (см. ниже).
- Прайс-лист (batch) — сохранённый результат расчёта цены: пакет
PriceRecord, созданных за один клик по кнопке «Сохранить как прайс-лист», с общимbatch_id, методом иsource="price_list"— ровно те же записи о цене, что использует последующая себестоимость сборок, включающих эту позицию, и складской приход без явно указанной цены (Склад и снабжение).
Себестоимость
Что видно
Экран /cost — форма расчёта над результатом:
- Форма запроса: выбор позиции номенклатуры (
PartPicker), количество (QuantityInput, по умолчанию 1), дата расчёта (по умолчанию сегодня), кнопки Рассчитать и выгрузки в Excel (кнопка появляется активной только когда позиция выбрана). - Строка итогов: Материал / Труд / Итого — суммы по всему дереву состава на введённое количество.
- Распределение затрат — переключатель группировки (По типу изделия / По цехам / По операциям / По поставщикам), под ним одновременно: горизонтальная 100%-ная составная полоса с долями каждой группы (наведение показывает сумму и процент; после 8 сегментов остаток сворачивается в «Прочее») и таблица с теми же группами — Группа / Материал / Труд / Итого.
- Таблица по строкам состава — одна строка на каждую позицию, участвующую в составе (включая саму родительскую позицию), с колонками Номенклатура, Ед., Потребность, Цена за ед. (или «—», если действующей записи о цене нет), Материал, Труд.
Типовые сценарии
- Разовый расчёт себестоимости. Выбрать позицию → указать количество и дату → «Рассчитать». Появляются суммарные Материал/Труд/Итого и таблица по всем позициям состава с ценой каждого материала и трудом по каждой сборочной единице.
- Посмотреть, из чего складываются затраты. Переключить группировку в «Распределении затрат» на нужный разрез (например, «По цехам», чтобы увидеть, какой участок вносит основной вклад в трудоёмкость, или «По поставщикам», чтобы увидеть зависимость от одного поставщика материала).
- Себестоимость на прошлую/будущую дату. Изменить дату расчёта —
для каждой материальной позиции подставится не текущая, а действовавшая
на эту дату запись о цене (последняя с
valid_from ≤указанная дата); позиции, у которых на эту дату ещё не было ни одной цены, попадут в таблицу с «—» и не добавят ничего к сумме материалов. - Выгрузить расчёт. Кнопка выгрузки в Excel — книга с листом «Состав» (те же строки, что в таблице на экране), по одному листу на каждую из четырёх группировок и листом «Итого» с тремя суммами.
Особенности и ограничения
- Позиция без действующей записи о цене на выбранную дату не считается ошибкой — просто не добавляет ничего к себестоимости материалов (столбец «Цена за ед.» = «—», «Материал» = 0 по этой строке); при расчёте по позициям без единой введённой цены итоговая себестоимость может оказаться заметно занижена, это стоит проверять по таблице построчно, а не только по итоговой сумме.
- Труд считается только по операциям, привязанным напрямую к позиции
(
has_operation) — у материалов и покупных изделий таких операций нет, их «Труд» всегда 0, это ожидаемо, а не пропуск данных. - В отличие от исходного VOGBIT (support/584), где цену для расчёта можно
было взять одним из трёх способов — по прайс-листам с историей дат, по
цене последнего поступления или по средней стоимости текущих складских
остатков, — здесь используется только первый способ: последняя запись
о цене (
PriceRecord) с датой не позже даты расчёта. Способов «по последнему поступлению» и «по среднему складскому остатку» в Vyrab нет. - Аналогично трудоёмкость здесь не делится на «пооперационное» и «укрупнённое» нормирование с раздельным временем на партию и на единицу (Тпз/Тшт из support/584) — используется одна нормативная величина на операцию (Тман) из техпроцесса, умноженная на ставку и количество.
- Группировка «По цехам» и «По операциям» строится по полям операции (участок, название), которые снимаются с фактического техпроцесса позиции на момент расчёта, а не с зафиксированного на момент запуска заказа в производство — если техпроцесс поменяли, повторный расчёт себестоимости это сразу отразит.
- Расчёт разворачивает состав на всю глубину дерева (до 20 уровней вложенности) за один запрос — на очень глубоких/широких структурах это может занимать заметное время.
Прайс-лист (Расчёт цены)
Что видно
Экран /price-calc (в меню — «Прайс-лист»), три блока сверху вниз плюс
список сохранённых расчётов:
Изделия — подбор нескольких позиций номенклатуры через
PartPicker(каждая добавляется в список один раз, повторное добавление игнорируется), удаление позиции из списка — крестиком; дата расчёта рядом с полем подбора.Метод расчёта — переключатель из трёх методик с полями коэффициентов, которые меняются в зависимости от выбранного метода:
- Упрощённый — одно поле
K; - С коэффициентами — два поля,
K материалиK труд; - Усреднение добавочной стоимости — одно поле «Целевая прибыль, ₽».
Рядом — кнопка «Сохранить как настройки по умолчанию» (пишет текущие значения всех четырёх коэффициентов в
PriceCalcSettings, они подставятся при следующем открытии экрана) и кнопка «Рассчитать».- Упрощённый — одно поле
Результат расчёта (после нажатия «Рассчитать»): строка итогов — Прямые затраты / Наценка / Итого — и таблица по позициям: Номенклатура, Ед., Материал, Труд, Прямые затраты, Наценка, Цена. Под таблицей — поле «Действует с» (дата) и кнопка «Сохранить как прайс-лист».
Сохранённые прайс-листы — таблица прежде сохранённых расчётов: Действует с / Метод / Позиций, у каждой строки — кнопка «Показать»/«Скрыть» (разворачивает список Номенклатура/Цена под строкой) и кнопка выгрузки этого конкретного прайс-листа в Excel.
Типовые сценарии
- Рассчитать цену по списку изделий. Добавить несколько позиций через подбор → выбрать метод и задать коэффициенты (или оставить значения, подставленные из сохранённых настроек) → «Рассчитать». Появляется таблица с ценой по каждой позиции и разбивкой на прямые затраты и наценку.
- Сохранить методику по умолчанию. Подобрать коэффициенты, которые обычно используются в компании → «Сохранить как настройки по умолчанию» — при следующем открытии экрана (в том числе другим пользователем) поля метода уже будут заполнены этими значениями.
- Зафиксировать результат как прайс-лист. После расчёта указать дату
«Действует с» → «Сохранить как прайс-лист». Список изделий и результат
расчёта на экране очищаются, новый прайс-лист появляется в таблице
«Сохранённые прайс-листы»; для каждой позиции создаётся отдельная
запись о цене (
PriceRecord) с этой датой, которую подхватит последующий расчёт себестоимости любой сборки, включающей эту позицию, и складской приход без явно указанной цены (Склад и снабжение). - Посмотреть/выгрузить старый прайс-лист. В таблице сохранённых прайс-листов — «Показать» разворачивает список позиций с ценами, кнопка выгрузки строит Excel-файл с шапкой (дата действия, метод) и таблицей Номенклатура/Цена.
Особенности и ограничения
- Расчёт цены всегда идёт с количеством 1 на позицию — прайс-лист даёт цену за единицу, а не за партию; чтобы посчитать себестоимость на конкретное количество, нужен отдельный расчёт на экране Себестоимость.
- Формулы трёх методов:
- Упрощённый:
Цена = Прямые_затраты × K; - С коэффициентами:
Цена = Материал × K_материал + Труд × K_труд; - Усреднение добавочной стоимости: фиксированная сумма «Целевая
прибыль» делится между позициями списка пропорционально доле их
трудозатрат в общей сумме труда по списку (
Наценка_i = Целевая_прибыль × Труд_i / ΣТруд); если труд равен нулю у всех позиций списка — прибыль делится поровну. Во всех трёх методах «Наценка» в таблице — это разница между итоговой ценой и прямыми затратами. - Это отличается от методик оригинального VOGBIT (support/784): там «метод с коэффициентами» — цепочка из нескольких множителей и надбавок на материал и на труд, задаваемых через отдельный справочник Параметры, а «усреднение добавочной стоимости» строится через месячный фонд рабочего времени, загрузку персонала, среднюю зарплату и фиксированные накладные расходы. В Vyrab обе методики упрощены до одного коэффициента (или пары коэффициентов) и одной суммы целевой прибыли на весь расчёт.
- Метод «Усреднение добавочной стоимости» имеет смысл только для группы из нескольких позиций (наценка одной позиции считается относительно труда остальных в том же списке) — поэтому это отдельный экран с несколькими изделиями, а не кнопка на Себестоимости для одной детали.
- Упрощённый:
- Настройки коэффициентов (
PriceCalcSettings) — одна запись на весь тенант, не персональная: сохранение здесь меняет значения по умолчанию для всех пользователей раздела, а не только для того, кто нажал кнопку. - Сохранение прайс-листа поддерживает только один вариант — пакет записей о цене с названием "прайс-лист". Отдельного «произвольного документа» со снимком экрана, как в support/784, в Vyrab нет.
- Расчёт цены для каждой позиции внутри списка полностью повторяет расчёт себестоимости этой позиции (включая обход всего её состава) — с большим списком позиций пересчёт может занимать заметное время, так как каждая позиция считается независимо.
Связанные разделы
- Номенклатура и заказы. Номенклатура** — вкладка Цена на карточке позиции
(
PriceTab) — то же место хранения записей о цене (price_of), только ручной ввод одной записи за раз вместо пакетного сохранения прайс-листа. - Склад и снабжение. Склад и снабжение** — расчёт потребности в материалах (MRP)
использует ту же норму расхода и свёртку количества по составу, что и
строка «Потребность» на экране Себестоимости; складской приход без
явно указанной цены берёт текущую цену из тех же записей
PriceRecord. - Начало работы. Обзор и начало работы** — роли и права (
cost.view), глоссарий терминов K1/K2/K3, Тман.