Как построить отчет Валовая прибыль в УПП 1.3 на основе данных бухгалтерского учета

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

В конфигурации 1С:Управление производственным предприятием (УПП) 1.3 стандартный отчет «Валовая прибыль» строится по регистрам накопления Продажи и ПродажиСебестоимость. Однако на практике часто возникает задача сверить эти данные с бухгалтерской отчетностью или построить отчет строго по данным счетов 90 «Продажи» и 91 «Прочие доходы и расходы». Проблема заключается в том, что управленческий и бухгалтерский учет в УПП могут расходиться из-за особенностей отражения документов или специфики регламентных операций.

В рамках этой статьи мы разберем, как реализовать отчет по валовой прибыли, который будет брать данные из плана счетов хозрасчетный, проанализируем технические сложности и предложим варианты решения через систему компоновки данных (СКД).

Основные сложности при использовании бухгалтерских данных

Прежде чем приступать к написанию запроса, проанализируем структуру данных бухгалтерского учета в УПП. Мы столкнемся с двумя критическими проблемами:

  1. Отсутствие аналитики «Номенклатура» на 90-х счетах: В типовом плане счетов УПП на счетах 90.01 (Выручка) и 90.02 (Себестоимость) основным разрезом является НоменклатурныеГруппы. Конкретные позиции номенклатуры там не хранятся.
  2. Регламентные операции: Себестоимость на счет 90.02 окончательно «прилетает» только после проведения документа РасчетСебестоимостиВыпуска (РСВ). При этом РСВ часто делает сводные проводки по номенклатурным группам, что затрудняет детализацию отчета до конкретного товара.

Разберем пути решения этих проблем.

Метод 1: Получение данных через корреспондирующие счета

Чтобы вытащить номенклатуру из бухгалтерских проводок, мы можем использовать виртуальную таблицу ОборотыДтКт регистра хозрасчетный. Посмотрим на логику:

Рассмотрим пример запроса, который собирает себестоимость в разрезе номенклатуры из регистра хозрасчетный:


ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
    ХозрасчетныйОборотыДтКт.Организация,
    ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Себестоимость,
    ХозрасчетныйОборотыДтКт.Регистратор
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНачала, &ДатаОкончания, Регистратор, СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_Себестоимость), , СчетКт В (&СчетаТМЦ), , ) КАК ХозрасчетныйОборотыДтКт

Метод 2: Использование специализированных бухгалтерских регистров накопления

В УПП существует параллельный учет в регистрах накопления. Для бухгалтерских целей используются регистры с постфиксом «Бухгалтерский учет». Это наиболее оптимальный путь, так как в этих регистрах сохраняется аналитика по номенклатуре, и при этом суммы соответствуют проводкам.

Для построения отчета нам понадобятся следующие источники:

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

Рассмотрим структуру комплексного запроса, предложенного для решения задачи в СКД. Мы будем объединять данные по выручке и себестоимости, используя Регистратор и Номенклатуру как ключи связи.


ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Контрагент КАК Контрагент,
    Продажи.Количество КАК Количество,
    Продажи.Стоимость КАК ВыручкаСНДС,
    Продажи.НДС КАК СуммаНДС,
    Продажи.Стоимость - Продажи.НДС КАК ВыручкаБезНДС,
    0 КАК Себестоимость,
    Продажи.Регистратор
ПОМЕСТИТЬ ВТ_Данные
ИЗ
    РегистрНакопления.Продажи КАК Продажи
ГДЕ
    Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    Партии.Номенклатура,
    ВЫРАЗИТЬ(Партии.Регистратор КАК Документ.РеализацияТоваровУслуг).Контрагент,
    0,
    0,
    0,
    0,
    Партии.Стоимость,
    Партии.Регистратор
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК Партии
ГДЕ
    Партии.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И Партии.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Т.Номенклатура,
    Т.Контрагент,
    СУММА(Т.Количество) КАК Количество,
    СУММА(Т.ВыручкаБезНДС) КАК Выручка,
    СУММА(Т.Себестоимость) КАК Себестоимость,
    СУММА(Т.ВыручкаБезНДС - Т.Себестоимость) КАК ВаловаяПрибыль,
    ВЫБОР
        КОГДА СУММА(Т.ВыручкаБезНДС) <> 0
            ТОГДА СУММА(Т.ВыручкаБезНДС - Т.Себестоимость) / СУММА(Т.ВыручкаБезНДС) * 100
        ИНАЧЕ 0
    КОНЕЦ КАК Рентабельность
ИЗ
    ВТ_Данные КАК Т
СГРУППИРОВАТЬ ПО
    Т.Номенклатура,
    Т.Контрагент

Борьба с дублированием записей

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

Чтобы избежать этой ошибки, придерживаемся следующих правил:

Реализация отчета по счету 91 (Прочие доходы и расходы)

Зачастую реализация материалов или основных средств проходит по счету 91.01. В этом случае данные не попадают в регистр Продажи. Для охвата этих операций проанализируем следующие шаги:

  1. Выясним, какими документами оформляется такая реализация (обычно это РеализацияТоваровУслуг с видом операции «реализация материалов» или ПродажаИмущества).
  2. Добавим в запрос выборку по счету 91.01 из РегистраБухгалтерии.Хозрасчетный.Обороты.
  3. Поскольку на 91 счете нет субконто «Номенклатура», мы можем получить название позиции только из корреспондирующего счета (например, 10.01 при списании материалов).

Проанализируем пример получения выручки со счета 91:


ВЫБРАТЬ
    ХозрасчетныйОбороты.Субконто1 КАК ПрочиеДоходыРасходы,
    ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаВыручки,
    ХозрасчетныйОбороты.Регистратор
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПрочиеДоходы), , , , ) КАК ХозрасчетныйОбороты

Итоговые рекомендации по настройке СКД

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

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

Построение такого отчета — трудоемкий процесс, требующий понимания того, как УПП транслирует первичные документы в проводки. Однако использование комбинации регистров накопления с бухгалтерским видом учета и данных регистра хозрасчетный позволяет получить максимально точный результат, который будет совпадать с оборотно-сальдовой ведомостью.

← На главную