Как вести учет и анализировать себестоимость продаж и заказы по сериям номенклатуры в 1С:УПП?

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

При внедрении учета по сериям в конфигурации «1С:Управление производственным предприятием» (УПП) пользователи и аналитики регулярно сталкиваются с архитектурным парадоксом: серии активно участвуют в складских движениях и производственных затратах, но полностью отсутствуют в ключевых регистрах взаиморасчетов и аналитики — в регистре накопления ЗаказыПокупателей, а также в регистрах Продажи и ПродажиСебестоимость. В результате типовой отчет «Валовая прибыль» не позволяет оценить финансовый результат отгрузки конкретной серии, а менеджеры лишены стандартной возможности контролировать обеспечение заказа определенной партией товара.

Разберем методологию разработчиков платформы, выясним причины такого поведения системы и рассмотрим рабочие способы решения этой задачи как стандартными инструментами, так и с помощью минимальных доработок.

Архитектурная логика серийного учета в УПП: почему серий нет в заказах и продажах

Проанализируем концептуальное различие между двумя похожими аналитическими разрезами номенклатуры — характеристиками и сериями:

  1. Характеристика номенклатуры — это устойчивое потребительское свойство (цвет, размер, фасон, плотность). Клиент заказывает именно это потребительское свойство, поэтому характеристика изначально включена в контур планирования потребностей и во все регистры заказов.
  2. Серия номенклатуры — это идентификатор конкретной физической партии, плавки, рулона, номера ГТД или срока годности. В типовой концепции УПП серия отражает физическое складское наличие, которое часто неизвестно в момент заключения сделки или формирования заказа поставщику.

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

Способ 1. Получение себестоимости проданных серий через регистры партий и затрат (без изменения конфигурации)

Если конфигурация находится на поддержке и менять структуру метаданных нельзя, получим финансовый результат отгрузки в разрезе серий через сопоставление данных торговых и складских регистров с помощью отчета на базе схемы компоновки данных (СКД).

В зависимости от используемого режима учета себестоимости применим соответствующий подход:

  1. При традиционном партионном учете: фактическое списание запасов с фиксацией стоимости происходит в регистре накопления ПартииТоваровНаСкладах (или ПартииТоваровНаСкладахБухгалтерскийУчет). В этом регистре измерение СерияНоменклатуры присутствует штатно. Чтобы увидеть валовую прибыль по сериям, свяжем в запросе СКД обороты регистра Продажи (для получения выручки) и расходные движения регистра ПартииТоваровНаСкладах по регистратору (документу РеализацияТоваровУслуг). В результате себестоимость каждой списанной серии подтягивается напрямую из движений партий.
  2. При режиме расширенной аналитики учета затрат (РАУЗ): расчет себестоимости выполняется по регистру накопления УчетЗатрат. Серия номенклатуры входит в состав измерений ключа аналитики учета номенклатуры. Для выгрузки себестоимости по сериям построим отчет по регистру УчетЗатрат с отбором по разделу учета «Товары» (или «Затраты на выпуск» для продукции) и коду операции реализации, сгруппировав данные по документу движения и серии.

Способ 2. Резервирование конкретных серий под заказ покупателя

Выясним, как зафиксировать нужную серию за клиентом до момента выписки отгрузочных документов, если в регистре ЗаказыПокупателей измерение СерияНоменклатуры отсутствует.

Штатный механизм УПП позволяет закрепить серию на складе следующими шагами:

  1. В договоре с контрагентом включим признак «Вести обособленный учет товаров по заказам покупателей».
  2. Для фиксации наличия воспользуемся документом РезервированиеТоваров (или табличной частью «Товары» самого заказа с указанием склада размещения). В настройках параметров учета активируем возможность указания серий при резервировании.
  3. В табличной части документа укажем конкретную серию номенклатуры, находящуюся на складском остатке. Движения сформируются по регистру ТоварыВРезервеНаСкладах с сохранением привязки «Заказ покупателя — Номенклатура — Серия».
  4. При создании документа РеализацияТоваровУслуг на основании заказа покупателя система автоматически заполнит табличную часть зарезервированными сериями по кнопке «Заполнить» — «По остаткам» или «Заполнить и провести».

Важное ограничение: зарезервировать по конкретной серии можно только тот товар, который уже поступил на склад и имеет сформированную серию. Разместить заказ покупателя в заказе поставщику с явным указанием будущей серии типовой функционал не позволяет, так как идентификатор серии поставщика становится известен только в момент фактического оформления поступления.

Способ 3. Доработка типовых регистров продаж

Если на предприятии требуется регулярный анализ маржинальности серий через стандартный отчет «Валовая прибыль» и разработка внешних отчетов по партиям не устраивает пользователей, выполним точечную доработку метаданных.

Разберем алгоритм внесения изменений:

  1. В дереве метаданных конфигурации добавим измерение СерияНоменклатуры (тип СправочникСсылка.СерииНоменклатуры) в регистры накопления:
    • Продажи
    • ПродажиСебестоимость
    • Закупки (при необходимости сквозного контроля цен поставки по сериям).
  2. В модуле документа РеализацияТоваровУслуг найдем процедуру формирования движений по регистрам продаж (для партионного учета) и дополним заполнение набора записей: при обходе строк списываемых партий передадим серию текущей строки в ресурс формирования движений по продажам.
  3. При использовании РАУЗ скорректируем модуль закрытия месяца в части проведения документа РасчетСебестоимостиВыпуска. На этапе трансляции себестоимости в регистр ПродажиСебестоимость обеспечим перенос серии из ключа аналитики списания номенклатуры в соответствующее измерение регистра продаж.

Посмотрим на пример заполнения движения регистра при проведении накладной:


Движение = Движения.ПродажиСебестоимость.ДобавитьРасход();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаПоПартиям.Номенклатура;
Движение.ХарактеристикаНоменклатуры = ВыборкаПоПартиям.ХарактеристикаНоменклатуры;
Движение.СерияНоменклатуры = ВыборкаПоПартиям.СерияНоменклатуры;
Движение.Количество = ВыборкаПоПартиям.Количество;
Движение.Стоимость = ВыборкаПоПартиям.Стоимость;

После включения серии в регистры продаж типовые отчеты «Валовая прибыль» и «Продажи» смогут выводить группировку по сериям без необходимости написания сложных запросов объединения со складскими остатками.

← На главную