Как сделать отчет "Анализ продаж" по конкретному складу в 1С 7.7 "Торговля и склад"?

Пользователь 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

Довольно часто при работе с программой 1С 7.7 «Торговля и склад» (ТиС) возникает специфическая, но очень жизненная задача: необходимо вычленить продажи товаров по строго определенному розничному складу или маленькому филиалу внутри большой торговой сети. Пользователи хотят знать, какая конкретно номенклатура проходит по документам ОтчетККМ за выбранный период на выбранной точке.

Если мы попытаемся найти такую настройку в типовом отчете «Анализ продаж», то столкнемся с проблемой — фильтра или группировки по складу там просто нет. Выясним причину: дело в том, что с точки зрения типовой методологии 1С 7.7, продажи осуществляет Фирма (юридическое лицо), а не физический склад. Соответственно, оборотный регистр Продажи, на основе которого строятся отчеты о выручке и прибыли, не содержит измерения по складам.

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

Способ 1: Использование «Универсального отчета по документам»

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

Разберем по шагам, как настроить этот инструмент:

  1. Откройте главное меню программы. Перейдите по пути: Сервис -> Дополнительные возможности.
  2. В открывшемся списке найдите пункт Универсальный отчет: Печать документов (физически это файл внешней обработки DOCPRINT.ert). Запустите его.
  3. В поле выбора вида документа укажите нужный нам класс документов — ОтчетККМ (или другой документ розничных продаж, если вы используете нестандартные).
  4. Перейдите к настройке группировок. В качестве основной группировки выберите реквизит табличной части Номенклатура. Это позволит свернуть одинаковые товары из разных чеков в одну строку.
  5. Самое важное — настройка фильтра. Перейдите на вкладку или в блок «Условия» (Отбор) и добавьте условие по реквизиту шапки документа Склад. Укажите ваш конкретный розничный филиал.
  6. Сформируйте отчет.

В результате вы получите «простыню» данных — сводную таблицу по всем проведенным отчетам ККМ, отфильтрованную по нужному складу, с указанием проданной номенклатуры и количества. При необходимости эти данные можно легко сохранить в Excel и дополнительно сгруппировать.

Способ 2: Анализ через товарные регистры (движения партий)

Поскольку типовой регистр продаж не имеет нужной нам аналитики, мы можем подойти к задаче с другой стороны. Будем отталкиваться не от зафиксированной выручки, а от факта физического списания товаров с конкретного склада.

Рассмотрим подробнее использование стандартных товарных отчетов:

  1. Откройте отчет Ведомость по партиям ТМЦ или Ведомость по остаткам ТМЦ (в зависимости от настроек вашей учетной политики).
  2. В настройках отчета установите жесткий фильтр по нужному розничному складу.
  3. В параметрах группировок обязательно добавьте детализацию до Документа движения.
  4. Сформируйте отчет за нужный период.

Нас будет интересовать колонка Расход. В ней отображается физическое убытие товара. Визуально или с помощью дополнительных фильтров (например, выгрузив в Excel) отсеките все внутренние перемещения и списания по инвентаризации, оставив только документы вида ОтчетККМ. Таким образом, вы получите предельно точный список номенклатуры, которая была продана именно с этой точки.

Способ 3: Доработка типового отчета или использование внешних (.ert)

Если стандартный универсальный отчет кажется недостаточно удобным или красивым, можно адаптировать под себя типовой «Анализ продаж».

Посмотрим на пример того, как это можно реализовать силами разработчика или опытного пользователя:

  1. Откройте Конфигуратор и найдите типовой отчет АнализПродаж.
  2. Сохраните его как внешнюю обработку (Файл -> Сохранить как). Это обезопасит основную конфигурацию от случайных поломок.
  3. В схеме отчета или в модуле нужно развернуть группировку по документам-регистраторам продаж.
  4. Так как каждый документ (Расходная накладная, Отчет ККМ) имеет реквизит Склад, программист может вытащить это значение прямо из документа при обходе группировок и вывести в отдельную колонку или использовать для фильтрации. В коде это выглядит как обращение к реквизиту регистратора:

// Примерный алгоритм получения склада из документа при обходе запроса
Пока Запрос.Группировка("Документ") = 1 Цикл
    ТекДокумент = Запрос.Документ;
    Если ТекДокумент.Вид() = "ОтчетККМ" Тогда
        ТекСклад = ТекДокумент.Склад;
        Если ТекСклад = НужныйСклад Тогда
            // Обработка данных
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

Кроме того, в сети интернет на профильных ресурсах существует множество уже готовых внешних отчетов, например, «Расширенный анализ продаж (по складам, менеджерам)». Вы можете просто скачать такой файл (с расширением .ert) и подключить его через дополнительные возможности.

Способ 4: Изменение архитектуры учета (Сложные методы)

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

Вариант А: Выделение склада в отдельную Фирму

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

Минусы подхода: Это серьезно усложнит внутреннее товародвижение. Чтобы передать товар с центрального оптового склада на розничную точку, обычный документ ПеремещениеТМЦ больше не подойдет. Придется использовать механизмы передачи товаров между фирмами компании (купля-продажа), что добавит рутины бухгалтерам и операторам.

Вариант Б: Добавление измерения в регистр продаж

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

  1. В Конфигураторе к регистру оборотов Продажи (или ПродажиТоваров) добавляется новое измерение Склад (тип данных: Справочник.Склады).
  2. Изменяются модули проведения всех документов, делающих движения по этому регистру (Реализация, Отчет ККМ, Возвраты). В код проведения добавляется запись склада в новое измерение.

// Пример модификации проведения в модуле документа ОтчетККМ
Регистр.Продажи.Фирма = Фирма;
Регистр.Продажи.Номенклатура = ТекущаяСтрока().Номенклатура;
// Добавленная строка:
Регистр.Продажи.Склад = Склад; 
// ...
Регистр.Продажи.ДвижениеВыполнить();

КРИТИЧЕСКИЙ НЮАНС: Внесение такого изменения в конфигурацию 1С 7.7 требует глобального перепроведения всей базы данных за прошлые периоды. Только после полного перепроведения старые документы запишут данные о складах в новое измерение регистра. Если ваша база данных ведется много лет и весит десятки гигабайт, перепроведение может парализовать работу компании на несколько дней. Принимайте это решение взвешенно.

Важное замечание: Специфика розничных и оптовых цен

Независимо от того, какой способ вы выберете, при построении любых сводных отчетов по розничному складу в 1С 7.7 ТиС важно помнить о разнице учетных политик. На розничном складе (в отличие от оптового) учет остатков чаще всего ведется в продажных (розничных) ценах, а не по себестоимости закупки.

При выгрузке данных из отчетов ККМ и попытке сопоставить их с оптовыми продажами, будьте крайне внимательны с колонками выручки, себестоимости и прибыли. Из-за разницы типов цен на разных складах итоговые финансовые показатели могут искажаться, если в отчете не предусмотрено приведение данных к единой базовой цене (себестоимости). Если вам нужен только количественный перечень проданной номенклатуры — эти финансовые тонкости можно проигнорировать.

← На главную