В процессе управления торговым предприятием руководители часто запрашивают отчетность, которая объединяет в себе данные разных контуров учета: оперативного (продажи) и финансового (движение денежных средств). Классическая задача — увидеть «реальный результат», который рассчитывается как Выручка минус Себестоимость минус Прочие расходы (например, выплаты из кассы по РКО на хозяйственные нужды). В типовой конфигурации «1С:Управление торговлей» ред. 11 (УТ 11) эти данные разнесены по разным регистрам, что требует особого подхода к настройке или разработке отчета.
В данной статье мы подробно разберем, как реализовать подобную задачу, проанализируем имеющиеся типовые инструменты и выясним, как правильно спроектировать собственный отчет на системе компоновки данных (СКД).
Прежде чем приступать к разработке, давайте разберем структуру данных в УТ 11. Основная сложность заключается в том, что продажи фиксируются в регистре накопления ВыручкаИСебестоимостьПродаж, а выдача наличных из кассы — в регистре ДенежныеСредстваВКассах. Напрямую эти данные не связаны: документ РасходныйКассовыйОрдер (РКО) не «знает», к какой номенклатурной группе относятся деньги, если это не оплата поставщику за конкретный товар.
Рассмотрим ситуацию автора: есть две кассы («Аккумуляторы» и «Масла») и соответствующие группы номенклатуры. Директор хочет видеть прибыль по каждой группе, вычитая из маржи продажи конкретные расходы из соответствующей кассы. Это классический пример управленческого учета по методу P&L (Profit and Loss), но с элементами кассового метода.
Прежде чем программировать новый отчет, проанализируем возможности типового функционала. В УТ 11 заложен мощный механизм учета доходов и расходов. Чтобы расходы из кассы автоматически вычитались из прибыли по направлениям деятельности (или группам), необходимо выполнить следующие шаги:
В этом случае отчет ФинансовыеРезультаты покажет искомую «реальную прибыль». Однако, если учет ведется «вперемешку» и детальное распределение невозможно, придется прибегнуть к модификации существующих отчетов.
Для многих пользователей отчет ВаловаяПрибыльПредприятия является основным. Чтобы добавить в него колонку с расходами по РКО, мы можем пойти по пути создания внешнего отчета на основе типового. Рассмотрим основные этапы доработки запроса в СКД:
Нам необходимо объединить два набора данных. Первый — это продажи, второй — движения денежных средств. Проанализируем схему запроса:
// Пример структуры объединения данных в СКД
ВЫБРАТЬ
Продажи.Номенклатура.НоменклатурнаяГруппа КАК Категория,
Продажи.СуммаВыручкиОборот КАК Выручка,
Продажи.СебестоимостьОборот КАК Себестоимость,
0 КАК РасходИзКассы
ИЗ
РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода) КАК Продажи
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВЫБОР
КОГДА ДенежныеСредства.Касса = &КассаМасла ТОГДА "Масла"
ИНАЧЕ "Аккумуляторы"
КОНЕЦ,
0,
0,
ДенежныеСредства.СуммаПриход // Или СуммаРасход в зависимости от вида операции
ИЗ
РегистрНакопления.ДенежныеСредстваВКассах.Обороты(&НачалоПериода, &КонецПериода) КАК ДенежныеСредства
ГДЕ
ДенежныеСредства.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
В данном примере мы используем виртуальную категорию для связи. Если РКО выписан по кассе «Масла», мы принудительно относим этот расход к группе «Масла», чтобы в итоговой таблице СКД данные сгруппировались корректно.
Если типовой отчет кажется слишком сложным для модификации (в УТ 11 запрос валовой прибыли содержит тысячи строк кода), лучше создать простой внешний отчет. Разберем алгоритм создания по шагам:
ВнешнийОтчет, добавляем основную схему компоновки данных.Объединение, как показано выше. Важно убедиться, что поле связи (например, Номенклатурная группа) присутствует в обоих запросах. Поскольку в кассовых документах нет номенклатуры, мы создаем «синтетическую» связь через соответствие Касса -> Группа номенклатуры.РеальнаяПрибыль с выражением: Выручка - Себестоимость - РасходИзКассы.Выясним причину, почему такой отчет может показывать неверные данные. Главная проблема — смешанные операции. Если на предприятии один и тот же склад отгружает товары разных групп, а расходы по кассе не детализированы, точность отчета будет зависеть от дисциплины ввода документов. Рассмотрим важность аналитики СтатьиДвиженияДенежныхСредств (ДДС) — именно она должна помогать программисту отделять закупку товара (которая уже сидит в себестоимости) от прочих расходов (аренда, з/п), которые нужно вычитать дополнительно.
Проанализируем ситуацию с точки зрения бизнес-логики. Директор хочет видеть прибыль «как в старой программе». Часто это означает учет по денежному потоку (Cash Flow). Однако УТ 11 работает по методу начисления. Чтобы сблизить эти позиции, придерживайтесь следующих правил:
Во-первых, четко разделяйте в РКО операции оплаты поставщику и прочие расходы. Оплаты поставщику не должны попадать в этот отчет, так как они формируют себестоимость товара при поступлении. В отчет должны идти только статьи категории «Прочие расходы».
Во-вторых, используйте функционал НаправленияДеятельности. Это самый правильный путь в архитектуре УТ 11. Настроив направления «Масла» и «Аккумуляторы», вы сможете автоматически распределять по ним и выручку, и любые затраты, а затем пользоваться стандартным отчетом ДоходыИРасходыПредприятия.
Создание отчета по «реальной прибыли» в УТ 11 — это задача не только по написанию запроса на СКД, но и по настройке методологии учета. Для быстрого результата мы рекомендуем создать внешний отчет, объединяющий обороты по продажам и движения по кассам с жесткой привязкой касс к категориям товаров. Для долгосрочного и точного учета правильным решением будет настройка типового механизма направлений деятельности и закрытия месяца.
Помните, что данные в отчете будут «реальными» ровно настолько, насколько корректно пользователи заполняют аналитику в первичных документах. Перед внедрением отчета обязательно проведите сверку на бумаге за небольшой период, чтобы убедиться в правильности алгоритма расчета ресурсов.