В практике работы с конфигурацией 1С:Управление производственным предприятием 1.3 (УПП) часто возникает потребность в использовании скользящей средней для оценки списания материально-производственных запасов (МПЗ). Особенно это актуально для компаний с высокой волатильностью закупочных цен, где важно фиксировать себестоимость на момент отгрузки, чтобы не «уйти в минус» после итогового закрытия месяца. Однако при использовании режима РАУЗ (Расширенная аналитика учета затрат) пользователи сталкиваются с тем, что система упорно пересчитывает все движения в средневзвешенную оценку. Рассмотрим подробнее, почему так происходит, и разберем способы решения этой задачи.
Проанализируем механику работы подсистемы. РАУЗ — это мощный математический аппарат, который строит систему линейных уравнений для расчета себестоимости. В отличие от традиционного партионного учета, который обрабатывает каждый документ последовательно и знает остаток на конкретную секунду, РАУЗ оперирует итогами периода (месяца).
Выясним причину пересчета: в течение месяца документы списания в РАУЗ действительно могут формировать проводки по оперативной скользящей средней (исходя из текущих остатков в базе). Но в конце месяца документ Расчет себестоимости выпуска неизбежно выполняет корректировку. Он суммирует все поступления за месяц и все затраты, вычисляя единую средневзвешенную цену за период. Если вы купили сырье 1-го числа по 50 рублей, продали готовую продукцию 5-го числа, а затем 25-го числа закупили то же сырье по 150 рублей, РСВ «размажет» общую стоимость на все расходы месяца. В итоге себестоимость проданного 5-го числа товара вырастет, и ваша прибыль может превратиться в убыток.
Это самый методически верный путь для производственного предприятия. Вместо того чтобы пытаться заставить РАУЗ работать как партионный учет, мы можем изменить подход к ценообразованию и учету выпуска. Рассмотрим по шагам:
Установка цен номенклатуры зафиксируем плановую себестоимость на основе текущих закупочных цен и спецификаций.Плановая цена + % наценки.Расчет себестоимости выпуска в конце месяца рассчитает фактическую себестоимость и покажет отклонение от плана.Важный момент: это позволит обосновать цену продажи перед клиентом. Даже если в конце месяца «факт» окажется выше «плана» из-за скачка цен, ваша сделка на момент совершения была экономически обоснована актуальными данными.
Если руководству принципиально видеть «точную» себестоимость конкретного поступления в рамках РАУЗ, мы можем добавить дополнительный разрез учета. РАУЗ усредняет стоимость внутри одного ключа аналитики. Если мы разделим поступления по разным ключам, усреднения не произойдет.
Проанализируем ситуацию: мы можем включить учет по Характеристикам или Сериям номенклатуры.
Серию 1.Серию 2.Отчет производства за смену указываем конкретную серию сырья.
В этом случае Расчет себестоимости выпуска рассчитает среднюю отдельно для Серии 1 и отдельно для Серии 2. Таким образом, дорогое сырье, купленное в конце месяца, никак не повлияет на стоимость продукции, выпущенной из дешевого сырья в начале месяца.
Разберем еще один технический вариант. Если использование серий слишком трудозатратно для кладовщиков, можно использовать складской учет. Поскольку склад является разрезом аналитики учета затрат, средняя цена считается в разрезе склада. Если приходовать «дорогое» сырье на отдельный склад (или в отдельную ячейку, если настроены места хранения), то до момента его перемещения в производство или на основной склад оно не будет участвовать в усреднении стоимости списанных ранее позиций.
Если вам нужно знать точную цену для выставления документов клиенту в середине месяца, попробуем реализовать механизм «предварительного расчета». Поскольку полноценный РСВ делать долго, можно использовать отчеты по регистру УчетЗатрат (или УчетЗатратРег), фильтруя данные по конкретным приходам.
Посмотрим на пример логики, которую можно реализовать в обработке для менеджеров:
// Пример логики получения "текущей" себестоимости в РАУЗ
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СУММА(УчетЗатратОстатки.КоличествоОстаток) КАК Кол,
| СУММА(УчетЗатратОстатки.СтоимостьОстаток) КАК Стоим
|ИЗ
| РегистрНакопления.УчетЗатрат.Остатки(&ДатаСреза, АналитикаВидаУчета = &ВашаАналитика) КАК УчетЗатратОстатки";
// Далее расчет: Цена = Стоим / Кол;
Подведем итоги нашего анализа. Попытка заставить РАУЗ работать по скользящей средней «напрямую» противоречит его математической природе. Если ваша компания работает в условиях резких ценовых колебаний, мы рекомендуем следующие действия:
Помните, что РАУЗ был создан для повышения производительности системы при расчете сложной себестоимости в крупных холдингах. Для небольших производств с жестким контролем маржинальности каждой сделки партионный учет зачастую оказывается более прозрачным и понятным инструментом.