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