Документация/Себестоимость и цены
РУКОВОДСТВО VYRAB

Себестоимость и цены

Материальные и трудовые затраты, коэффициенты и история цен.

Назначение

Раздел отвечает на два связанных, но разных вопроса про одну и ту же номенклатурную позицию: сколько она реально стоит сегодня (себестоимость — материалы по действующим ценам плюс труд по нормам техпроцесса) и по какой цене её продавать, чтобы покрыть не только прямые затраты, но и накладные расходы/плановую прибыль (расчёт цены). Первое — фактический разрез затрат по дереву состава изделия, второе — плановая надстройка над ним с выбором одной из трёх методик разнесения наценки. Оба расчёта не требуют предварительного создания производственного заказа — считаются по любой позиции номенклатуры и количеству "что если".

Раздел (в меню — группа Учёт) состоит из двух экранов: Себестоимость (/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 сегментов остаток сворачивается в «Прочее») и таблица с теми же группами — Группа / Материал / Труд / Итого.
  • Таблица по строкам состава — одна строка на каждую позицию, участвующую в составе (включая саму родительскую позицию), с колонками Номенклатура, Ед., Потребность, Цена за ед. (или «—», если действующей записи о цене нет), Материал, Труд.

Типовые сценарии

  1. Разовый расчёт себестоимости. Выбрать позицию → указать количество и дату → «Рассчитать». Появляются суммарные Материал/Труд/Итого и таблица по всем позициям состава с ценой каждого материала и трудом по каждой сборочной единице.
  2. Посмотреть, из чего складываются затраты. Переключить группировку в «Распределении затрат» на нужный разрез (например, «По цехам», чтобы увидеть, какой участок вносит основной вклад в трудоёмкость, или «По поставщикам», чтобы увидеть зависимость от одного поставщика материала).
  3. Себестоимость на прошлую/будущую дату. Изменить дату расчёта — для каждой материальной позиции подставится не текущая, а действовавшая на эту дату запись о цене (последняя с valid_from ≤ указанная дата); позиции, у которых на эту дату ещё не было ни одной цены, попадут в таблицу с «—» и не добавят ничего к сумме материалов.
  4. Выгрузить расчёт. Кнопка выгрузки в Excel — книга с листом «Состав» (те же строки, что в таблице на экране), по одному листу на каждую из четырёх группировок и листом «Итого» с тремя суммами.

Особенности и ограничения

  • Позиция без действующей записи о цене на выбранную дату не считается ошибкой — просто не добавляет ничего к себестоимости материалов (столбец «Цена за ед.» = «—», «Материал» = 0 по этой строке); при расчёте по позициям без единой введённой цены итоговая себестоимость может оказаться заметно занижена, это стоит проверять по таблице построчно, а не только по итоговой сумме.
  • Труд считается только по операциям, привязанным напрямую к позиции (has_operation) — у материалов и покупных изделий таких операций нет, их «Труд» всегда 0, это ожидаемо, а не пропуск данных.
  • В отличие от исходного VOGBIT (support/584), где цену для расчёта можно было взять одним из трёх способов — по прайс-листам с историей дат, по цене последнего поступления или по средней стоимости текущих складских остатков, — здесь используется только первый способ: последняя запись о цене (PriceRecord) с датой не позже даты расчёта. Способов «по последнему поступлению» и «по среднему складскому остатку» в Vyrab нет.
  • Аналогично трудоёмкость здесь не делится на «пооперационное» и «укрупнённое» нормирование с раздельным временем на партию и на единицу (Тпз/Тшт из support/584) — используется одна нормативная величина на операцию (Тман) из техпроцесса, умноженная на ставку и количество.
  • Группировка «По цехам» и «По операциям» строится по полям операции (участок, название), которые снимаются с фактического техпроцесса позиции на момент расчёта, а не с зафиксированного на момент запуска заказа в производство — если техпроцесс поменяли, повторный расчёт себестоимости это сразу отразит.
  • Расчёт разворачивает состав на всю глубину дерева (до 20 уровней вложенности) за один запрос — на очень глубоких/широких структурах это может занимать заметное время.

Прайс-лист (Расчёт цены)

Что видно

Экран /price-calc (в меню — «Прайс-лист»), три блока сверху вниз плюс список сохранённых расчётов:

  • Изделия — подбор нескольких позиций номенклатуры через PartPicker (каждая добавляется в список один раз, повторное добавление игнорируется), удаление позиции из списка — крестиком; дата расчёта рядом с полем подбора.

  • Метод расчёта — переключатель из трёх методик с полями коэффициентов, которые меняются в зависимости от выбранного метода:

    • Упрощённый — одно поле K;
    • С коэффициентами — два поля, K материал и K труд;
    • Усреднение добавочной стоимости — одно поле «Целевая прибыль, ₽».

    Рядом — кнопка «Сохранить как настройки по умолчанию» (пишет текущие значения всех четырёх коэффициентов в PriceCalcSettings, они подставятся при следующем открытии экрана) и кнопка «Рассчитать».

  • Результат расчёта (после нажатия «Рассчитать»): строка итогов — Прямые затраты / Наценка / Итого — и таблица по позициям: Номенклатура, Ед., Материал, Труд, Прямые затраты, Наценка, Цена. Под таблицей — поле «Действует с» (дата) и кнопка «Сохранить как прайс-лист».

  • Сохранённые прайс-листы — таблица прежде сохранённых расчётов: Действует с / Метод / Позиций, у каждой строки — кнопка «Показать»/«Скрыть» (разворачивает список Номенклатура/Цена под строкой) и кнопка выгрузки этого конкретного прайс-листа в Excel.

Типовые сценарии

  1. Рассчитать цену по списку изделий. Добавить несколько позиций через подбор → выбрать метод и задать коэффициенты (или оставить значения, подставленные из сохранённых настроек) → «Рассчитать». Появляется таблица с ценой по каждой позиции и разбивкой на прямые затраты и наценку.
  2. Сохранить методику по умолчанию. Подобрать коэффициенты, которые обычно используются в компании → «Сохранить как настройки по умолчанию» — при следующем открытии экрана (в том числе другим пользователем) поля метода уже будут заполнены этими значениями.
  3. Зафиксировать результат как прайс-лист. После расчёта указать дату «Действует с» → «Сохранить как прайс-лист». Список изделий и результат расчёта на экране очищаются, новый прайс-лист появляется в таблице «Сохранённые прайс-листы»; для каждой позиции создаётся отдельная запись о цене (PriceRecord) с этой датой, которую подхватит последующий расчёт себестоимости любой сборки, включающей эту позицию, и складской приход без явно указанной цены (Склад и снабжение).
  4. Посмотреть/выгрузить старый прайс-лист. В таблице сохранённых прайс-листов — «Показать» разворачивает список позиций с ценами, кнопка выгрузки строит 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, Тман.