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

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

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

Давайте разберемся, почему такое поведение является типовым для 1С:КА 2 и 1С:ERP и как правильно интерпретировать данные до полного расчета себестоимости.

Временная оценка себестоимости до закрытия месяца

Важнейшее отличие 1С:КА 2 и 1С:ERP от предыдущих поколений (например, УТ 10.3 или УПП 1.3) заключается в том, что окончательная себестоимость никогда не определяется в момент проведения документа. Это касается большинства методов оценки запасов, таких как «FIFO (скользящая)» или «Средняя за месяц», которые используются в современных конфигурациях.

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

Особенности регистра «Себестоимость товаров» и реквизит КорСтоимость

Автор темы отметил, что данные пишутся в реквизит КорСтоимость, а основные ресурсы не трогаются. Это действительно важный нюанс, отражающий внутреннюю логику системы.

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

Причины подстановки «Суммы продажи» при заполнении себестоимости

Если при нажатии кнопки «Заполнить себестоимость» в документе возврата подставляется сумма продажи, это может быть связано с несколькими факторами или настройками:

  1. Сценарий «Возврат как покупка» (редкий случай): Если документ возврата оформлен без указания документа реализации-основания (что не наш случай, автор указал документ реализации), система может расценить это как новое поступление товара. В таком случае себестоимость может быть равна цене, указанной в самом документе возврата (т.е. цене, по которой мы «выкупаем» товар обратно у клиента), или оценочной цене.
  2. Настройка «Способ определения себестоимости»: В документе «Возврат товаров от клиента» на вкладке «Товары» поле «Способ определения себестоимости» по умолчанию часто принимает значение «По реализации». Это означает, что система будет стремиться связать возврат с конкретной отгрузкой. Однако до закрытия месяца эта связь может быть только логической, а фактические стоимостные показатели берутся из доступных на момент проведения документа источников – а это может быть именно сумма реализации, как некая базовая величина.
  3. Временные данные: Самая частая причина. В 1С:КА 2 и ERP в оперативных регистрах часто записываются временные данные, включая цены продажи, до тех пор, пока не будет выполнен полный расчет себестоимости. Программа «знает», что эти значения будут скорректированы позднее.

Механизм «Сторно» и распределение партий в управленческом учете

В отличие от более ранних конфигураций, где возврат товара мог формировать «красное сторно» напрямую в момент проведения, в КА 2/ERP этот механизм работает иначе:

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

Ресурсы для программистов и глубокого понимания

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

Для разработчиков, желающих глубоко понять механизм работы себестоимости в 1С:КА 2 и ERP, наиболее полезными будут следующие источники и подходы:

  1. Состав и движения регистров накопления:
    • СебестоимостьТоваров: основной регистр для учета стоимостных остатков товаров.
    • ДвиженияСебестоимостьТоваров: регистр для отражения детальных движений и корректировок себестоимости.
    • ВыручкаИСебестоимостьПродаж: регистр, где агрегируются данные о выручке и себестоимости продаж для расчета валовой прибыли.
    • ПартииТоваровОрганизаций (или схожие регистры, в зависимости от версии): регистры, содержащие информацию о партиях поступления товаров.
  2. Общий модуль СистемаСебестоимости: Этот модуль является "сердцем" расчета себестоимости в КА 2 и ERP. Именно здесь сосредоточена основная логика, которая выполняется в рамках регламентных операций закрытия месяца. Анализ этого модуля позволит понять, как система собирает данные, как распределяет затраты и как формирует окончательную себестоимость.
  3. Принцип «Математического решателя»: В современных конфигурациях 1С для расчета себестоимости реализован так называемый «математический решатель» (решение систем линейных уравнений). Это означает, что себестоимость определяется не простым последовательным списанием партий, а сложным алгоритмом, который учитывает все движения за период, распределяет косвенные затраты и только затем формирует окончательные стоимостные оценки. Именно поэтому искать прямую запись окончательной себестоимости в коде при проведении документа возврата бесполезно — её там нет, она появляется после работы фоновых заданий расчета.
  4. Отладка и анализ движений: Самый надежный способ для программиста — это отладка проведения документов и, что более важно, отладка выполнения регламентных операций закрытия месяца. Пошаговый анализ движений по регистрам до и после закрытия месяца поможет увидеть, как именно формируются окончательные цифры.

Как убедиться в корректности данных

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

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

← На главную