Что означает "Выручка" в отчете "Валовая прибыль" и как построить отчет по оплаченным товарам в 1С:УНФ

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

Каждый начинающий специалист или пользователь программы 1С:УНФ (Управление нашей фирмой) рано или поздно сталкивается с методологическими вопросами учета. Один из самых частых вопросов: почему показатели в отчете по выручке не совпадают с фактически поступившими в кассу или на расчетный счет деньгами?

В этой статье мы подробно разберем, как формируется показатель «Выручка» в стандартном отчете «Валовая прибыль по номенклатуре», почему классическое понимание выручки в 1С отличается от «кассового метода» и каким образом можно решить задачу руководства, если требуется видеть продажи только по оплаченным товарам.

Метод начисления vs Кассовый метод: определяем понятия

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

Это означает следующее:

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

Таким образом, колонка «Выручка» в отчете «Валовая прибыль по номенклатуре» — это сумма, на которую была произведена отгрузка товаров (минус возвраты) за выбранный период, независимо от факта оплаты.

Сложность задачи: почему тяжело связать оплату с номенклатурой?

Часто руководство ставит задачу: «Мне нужен отчет по видам номенклатуры, но учитывать мы должны только фактически оплаченный товар!»

Давайте посмотрим на ситуацию глазами программиста и логики базы данных. Представим пример:

Клиент оформляет заказ на 5 позиций общей стоимостью 100 000 рублей:

Клиент производит частичную оплату (аванс) в размере 40 000 рублей. Позже мы отгружаем ему все товары одной накладной. Возникает вопрос: какой именно товар из трех оплачен этими сорока тысячами рублей?

Без четко заданных правил распределения программа не может угадать, за что именно пришли деньги — за дорогой Товар А или за Товар Б и Товар В вместе взятые. Именно поэтому в простых учетных системах, таких как 1С:УНФ, штатный отчет по оплаченным товарам в разрезе номенклатуры отсутствует «из коробки».

Решение проблемы в различных конфигурациях 1С

Выясним, как обстоят дела с решением этой задачи в семействе программных продуктов 1С.

В крупных ERP-системах (таких как 1С:Управление торговлей 11, 1С:Комплексная автоматизация или 1С:ERP) присутствует штатный отчет «Продажи по оплате». В этих конфигурациях на уровне регистров накопления реализован сложный механизм партионного учета и расчетов с клиентами, который в фоновом режиме распределяет каждый платеж до конкретной номенклатурной позиции в закрываемой накладной.

В программе 1С:Управление нашей фирмой (УНФ) такого глубокого распределения расчетов до уровня строк накладной по умолчанию нет. Взаиморасчеты ведутся в разрезе договоров и заказов покупателей.

Как реализовать отчет «Продажи по оплате» в 1С:УНФ

Если вам крайне необходим подобный функционал в 1С:УНФ, рассмотрим основные пути решения этой задачи.

Способ 1. Использование механизма «Кассовый метод учета доходов и расходов»

В 1С:УНФ можно включить ведение доходов и расходов по кассовому методу (по оплате). Для этого необходимо выполнить следующие действия:

  1. Перейдем в раздел Компания — Настройки — Еще больше возможностей.
  2. В подразделе «Компания» установим флаг «Кассовый метод учета доходов и расходов».
  3. После этого в системе появится возможность формировать отчет «Доходы и расходы (по оплате)».

Важное ограничение: данный отчет строится по направлениям деятельности и статьям движения денежных средств (ДДС), но он не даст вам детализацию до конкретной номенклатуры товара.

Способ 2. Пропорциональное распределение оплат (Разработка на СКД)

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

  1. Запросом собираются данные по отгрузкам (документы отгрузки, номенклатура, количество, сумма отгрузки).
  2. Собираются данные по оплатам этих документов (связка через регистр «Расчеты с покупателями» по документам расчетов).
  3. В запросе или при выводе рассчитывается коэффициент оплаты документа: КоэффициентОплаты = СуммаОплаты / СуммаДокумента.
  4. Сумма оплаты по каждой номенклатуре рассчитывается как: ОплаченоНоменклатуры = СуммаНоменклатурыВДокументе * КоэффициентОплаты.

Рассмотрим пример реализации такого запроса на СКД. Нам потребуется связать таблицу оборотов продаж и таблицу расчетов:


ВЫБРАТЬ
    ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.СуммаОбороты КАК СуммаОтгрузки,
    ЕСТЬNULL(Взаиморасчеты.СуммаОплаты, 0) КАК ОбщаяСуммаОплатыПоДокументу,
    ЕСТЬNULL(Взаиморасчеты.СуммаДокумента, 0) КАК ОбщаяСуммаДокумента
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода) КАК ПродажиОбороты
    // Здесь настраивается левое соединение с таблицей оплат по документу расчетов
;

ВЫБРАТЬ
    ВТ.ДокументПродажи,
    ВТ.Номенклатура,
    ВТ.СуммаОтгрузки,
    ВЫБОР
        КОГДА ВТ.ОбщаяСуммаДокумента = 0 ТОГДА 0
        ИНАЧЕ ВТ.СуммаОтгрузки * (ВТ.ОбщаяСуммаОплатыПоДокументу / ВТ.ОбщаяСуммаДокумента)
    КОНЕЦ КАК СуммаОплачено
ИЗ
    ВременнаяТаблица КАК ВТ

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

Способ 3. Распределение по ФИФО (последовательное закрытие строк)

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

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

Способ 4. Использование готовых внешних отчетов и расширений

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

Резюме

Мы выяснили, что стандартная «Выручка» в отчете «Валовая прибыль» отражает объем продаж по методу начисления и не привязана к фактическому получению денег. Требование руководства видеть продажи «по оплате» в разрезе номенклатуры в 1С:УНФ — это не каприз, а стандартная задача управленческого учета, которая, однако, требует привлечения программиста 1С или использования готовых внешних разработок для реализации корректного алгоритма распределения платежей.

← На главную