При работе в связке 1С и Битрикс часто возникает вопрос корректности отображения данных в управленческих отчетах. Одним из самых востребованных является отчет «Валовая прибыль». Основная сложность для пользователей заключается в понимании того, по какому именно полю (дата создания, дата отгрузки или дата оплаты) система фильтрует данные при задании периода. Рассмотрим детально техническую логику работы этого механизма в типовых конфигурациях (УТ 11, ERP, КА).
Для начала проанализируем, откуда отчет берет данные. В системе 1С за финансовые результаты отвечает регистр накопления ВыручкаИСебестоимостьПродаж. Именно в этот регистр попадают записи в момент проведения документа РеализацияТоваровУслуг.
В большинстве стандартных вариантов отчета «Валовая прибыль» основным критерием попадания в период является дата документа отгрузки (реализации). Когда мы устанавливаем период, например, с 01.07.2019 по 31.07.2019, система ищет все документы продажи, дата которых входит в этот интервал.
Важный нюанс: Дата создания заказа (ЗаказКлиента) в этом случае практически никогда не является ключевой для отчета по прибыли, так как сам по себе заказ не формирует финансового результата (выручки и себестоимости), а является лишь намерением совершить сделку.
Рассмотрим ситуацию, описанную пользователем: желание строить отчет именно по полностью оплаченным заказам. В 1С существует специализированный вариант этого отчета — «Валовая прибыль по оплаченным отгрузкам». Его логика в корне отличается от стандартной:
ПоступлениеБезналичныхДенежныхСредств, ПриходныйКассовыйОрдер).Проанализируем ситуацию с «прыгающей» датой. Если вы отгрузили товар 1 июля, а клиент произвел финальный платеж, закрывающий долг, только 24 июля, то в отчете «Валовая прибыль по оплаченным отгрузкам» эта продажа появится только 24 июля. Если в начале месяца оплата еще не была разнесена, заказ мог не попадать в отчет или висеть на «старой» дате аванса, а после регламентных операций «перепрыгнуть» на дату окончательного расчета.
Выясним причину, по которой данные могут внезапно меняться через несколько дней после совершения сделки. В связке с Битрикс этот процесс часто автоматизирован, но имеет свои «подводные камни»:
Во-первых, это Распределение расчетов. В современных конфигурациях 1С расчеты между документами (какой платеж какую отгрузку закрыл) часто выполняются не в момент проведения документа, а фоновым регламентным заданием. Пока задание не выполнено, система «не знает», что заказ оплачен полностью. После того как регламентное задание ВыполнениеДвухуровневогоРаспределенияРасчетов отработало, связи устанавливаются, и отчет перестраивается.
Во-вторых, это Закрытие месяца. Полная и достоверная себестоимость (а значит, и валовая прибыль) рассчитывается только после запуска процедуры ЗакрытиеМесяца. До этого момента отчет может показывать предварительные данные, рассчитанные по средним значениям или ценам номенклатуры, а после финализации периода цифры и даже даты (в части признания расходов) могут скорректироваться.
Если вы заметили, что заказ ведет себя странно, рекомендуем выполнить следующие шаги для анализа ситуации:
Распределению расчетов в разделе «Финансовый результат и контроллинг».Для понимания того, как это реализовано в коде и структуре базы данных, стоит обратить внимание на следующие объекты:
Проанализируем работу регистра РасчетыСКлиентамиПоДокументам. Именно в нем хранится информация о том, как связаны конкретные оплаты с конкретными отгрузками. Если вы используете программную доработку отчета, вам необходимо обращаться к виртуальным таблицам этого регистра для получения даты фактического закрытия долга.
В типовых конфигурациях за логику отчета отвечает компоновка данных (СКД), где в параметрах запроса можно увидеть использование функции КонецПериода для различных типов дат. Посмотрите, не включены ли в настройках отчета фильтры по «Хозяйственным операциям», так как возвраты товаров могут значительно искажать картину, сторнируя прибыль прошлых периодов текущей датой.
Таким образом, мы выяснили, что «период» в отчете по прибыли — понятие гибкое и зависит от выбранной методики (по отгрузке или по оплате). Для получения стабильных данных всегда дожидайтесь выполнения регламентных операций по распределению расчетов и закрытию финансового периода.