В процессе работы с современными конфигурациями на платформе 1С:Предприятие 8.3, такими как BAS Управление торговлей или 1С:Управление торговлей 11, пользователи часто сталкиваются с ситуацией, когда после проведения документа Сборка (разборка) товаров и успешного закрытия месяца себестоимость полученных комплектов или комплектующих остается нулевой. В отчетах мы видим количественный приход, но стоимостная оценка отсутствует. Проанализируем причины этой проблемы и разберем по шагам, как добиться корректного расчета партий.
Прежде всего, разберем архитектуру системы. В современных версиях программ используется метод партионного учета версии 2.2. В отличие от старых конфигураций, здесь движения по регистрам ПартииТоваровОрганизаций и СебестоимостьТоваров формируются не в момент проведения первичного документа, а в процессе выполнения регламентного задания Закрытие месяца. Рассмотрим подробнее, почему это важно.
Когда мы проводим документ СборкаТоваров, система фиксирует лишь факт изменения остатков. Стоимостная оценка «откладывается». Если при закрытии месяца суммы не появились, значит, алгоритм распределения затрат столкнулся с препятствием. Выясним основные причины такого поведения системы.
Часто программисты пытаются найти ошибку, устанавливая точки останова в модулях проведения. Однако при закрытии месяца стандартная отладка может не сработать. Это происходит потому, что расчет выполняется в фоновом задании. Проанализируем, как правильно настроить отладку в этой ситуации.
Для того чтобы точка останова сработала в файловом режиме или на сервере, необходимо выполнить следующие действия:
ПартииТоваровОрганизаций, попробуйте перепровести один из документов, влияющих на этот регистр, или запустить процедуру закрытия месяца повторно.Загрузить(), что иногда требует установки точек останова в местах формирования таблицы значений для набора.Рассмотрим пример кода, который часто используется для инициации расчета в тестовых целях через внешнюю обработку:
ПараметрыРасчета = ПроцедурыЗакрытияМесяца.ПараметрыРасчетаСебестоимости();
ПараметрыРасчета.Организация = Объект.Организация;
ПараметрыРасчета.Период = Объект.Период;
ПроцедурыЗакрытияМесяца.РассчитатьСебестоимость(ПараметрыРасчета);
Если мы рассматриваем операцию Разборка на комплектующие, то наиболее частой причиной отсутствия сумм является незаполненная колонка Доля стоимости. Система не знает, какую часть стоимости исходного комплекта нужно перенести на каждое полученное изделие. Если сумма долей будет равна нулю, себестоимость выхода также будет нулевой.
Проверим вкладку «Комплектующие» в документе. Даже если позиция одна, доля стоимости должна быть указана (например, «1»). Если позиций несколько, распределим доли пропорционально их рыночной стоимости. Только после этого перезапустим закрытие месяца.
Проанализируем состояние склада. Одной из критических ошибок, блокирующих расчет себестоимости, является наличие отрицательных остатков (в том числе в разрезе организаций или ГТД). Если на момент сборки комплекта одного из ингредиентов по данным системы «не хватает», программа не может определить, из какой партии его списать и по какой цене.
Рекомендуем выполнить следующие шаги для диагностики:
Ведомость по товарам на складах с детализацией до организации и склада.Intercompany, убедитесь, что между организациями оформлены документы Передача товаров. Без них стоимость не «перетечет» от организации-владельца к организации-сборщику, и документ сборки останется пустым в части стоимости.Иногда стоимость комплектующих состоит не только из цены закупки, но и из транспортно-заготовительных расходов (ТЗР). Если документ Приобретение услуг и прочих активов был оформлен, но распределение этих расходов на партии еще не произошло, система может «ждать» этого этапа. Посмотрим на последовательность в помощнике закрытия месяца: этап Распределение дополнительных расходов должен предшествовать окончательному расчету себестоимости.
В конфигурациях BAS и ERP расчет партий тесно связан с аналитикой учета НДС. Если организация ведет раздельный учет, проверьте заполнение реквизита Направление деятельности в документе сборки. Если комплектующие были куплены под одно направление, а сборка производится для другого, и при этом не настроены правила передачи между ними, стоимость может не рассчитаться.
Также выясним, какой Вид деятельности НДС указан в табличной части. Если там указано «Продажа облагается НДС», а комплектующие закупались с другим признаком, может возникнуть конфликт партий. Система не сможет сопоставить источник списания с объектом прихода.
Если вы проверили все вышеперечисленное, но суммы по-прежнему не считаются, выполним процедуру «полного сброса» расчета за месяц:
Регламентные операции по закрытию месяца.Распределение затрат и расчет себестоимости.Помните, что расчет партий — это итерационный процесс. Система может делать несколько проходов по документам, чтобы устранить временные разрывы. Использование кода ФоновыеЗадания.ПолучитьФоновыеЗадания() в консоли запросов поможет вам убедиться, что процесс действительно завершился, а не «завис» из-за нехватки ресурсов сервера.
Таким образом, решение проблемы отсутствия сумм в сборках требует комплексного подхода: от проверки корректности заполнения долей стоимости в первичных документах до глубокого технического анализа работы фоновых заданий и механизмов Intercompany.