Как получить актуальную себестоимость "здесь и сейчас" в 1С:УТ 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Почему в УТ 11 нет "готовой" себестоимости онлайн?

Архитектура современных конфигураций, таких как 1С:УТ 11, 1С:КА и 1С:ERP, построена таким образом, что точная и окончательная фактическая себестоимость формируется только процедурой закрытия месяца. Если мы попытаемся получить ее "здесь и сейчас", мы столкнемся с рядом объективных трудностей:

  1. Дополнительные расходы: Услуги транспортных компаний, таможенные пошлины и прочие затраты, которые распределяются на себестоимость товаров, часто поступают в учетную систему с задержкой в несколько дней или недель.
  2. Сложные цепочки: Постоянные перемещения между складами, сборки/разборки и передачи между организациями (Интеркампани) меняют стоимость партий.
  3. Пересчеты прошлым числом: Если менеджер введет документ задним числом, вся цепочка партий "поедет", и себестоимость изменится.

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

Способ 1: Использование предварительной стоимости товаров

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

В конфигурации существуют два ключевых регистра:

  1. СтоимостьТоваров — используется для хранения предварительной стоимости.
  2. СебестоимостьТоваров — используется для хранения точных данных после закрытия месяца.

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

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

Способ 2: Включение фонового расчета партий (Партионный учет 2.2)

Рассмотрим механизм партионного учета версии 2.2, который используется в современных версиях УТ (начиная с 11.4). Если в учетной политике организации установлен метод оценки ФИФО (скользящая оценка), система старается определять партии в момент проведения документа выбытия.

Если мощностей сервера достаточно, мы можем максимально приблизить систему к режиму реального времени. Для этого нужно:

  1. Включить настройку Рассчитывать партии при записи документов или использовать фоновый расчет.
  2. Настроить регламентное задание по расчету партий на максимально частое выполнение (например, каждую минуту).

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

Способ 3: Программный расчет "на лету" через временные таблицы

Если мы не можем менять регламентные задания или нам нужно узнать себестоимость еще не проведенного документа, проанализируем возможность использования общих модулей. Разработчики могут программно вызывать методы из модуля ПартионныйУчет.

Существуют механизмы, которые собирают данные о текущих остатках и формируют виртуальные таблицы распределения партий без записи их в базу. Таким образом, алгоритм обработки может "предсказать" себестоимость для текущей сделки, проанализировав свободные партии ФИФО на данный момент. Это сложно в реализации, но дает наиболее точный оперативный результат в высоконагруженных системах.

Способ 4: Использование динамических (виртуальных) типов цен

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

Мы можем создать новый вид цены, назовем его, например, "Текущая оперативная себестоимость". В настройках укажем, что это динамическая цена, базой для которой выступает "Цена поступления". При каждом проведении документа "Приобретение товаров и услуг" эта цена будет обновляться актуальным значением.

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

Способ 5: Плановая себестоимость

В некоторых компаниях проблему решают административным путем — введением понятия "Плановая себестоимость". Финансовый директор или экономист раз в период (месяц/квартал) рассчитывает плановую себестоимость продукции или товаров с учетом прогнозируемых доп. расходов и фиксирует ее документом УстановкаЦенНоменклатуры.

Вся оперативная работа, создание документов выбытия и расчеты рентабельности "здесь и сейчас" строятся от этой плановой цифры. А в конце месяца, после формирования фактической себестоимости, анализируется план-фактное отклонение.

Особенности учета Интеркампани (Передачи товаров)

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

  1. Убедитесь, что включена настройка "Оформлять передачи товаров по мере необходимости".
  2. Вместо нетиповых документов генерации расходов и приходов лучше использовать стандартные документы ПередачаТоваров, которые типовой функционал умеет корректно обсчитывать в предварительном расчете.

Подводя итоги, получить абсолютную фактическую себестоимость в режиме реального времени в 1С:УТ 11 архитектурно невозможно без закрытия месяца. Однако, комбинируя фоновый расчет партий по ФИФО, обращение к регистру предварительной стоимости и грамотное использование видов цен, мы можем предоставить бизнесу максимально приближенные к реальности цифры для оперативного управления.

← На главную