Как сформировать отчет о не проданных товарах (неликвидах) и неактивных покупателях в 1С:УТ, КА, ERP?

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

Многие пользователи и руководители сталкиваются с необходимостью анализа так называемых "непродаж": товаров, которые присутствуют на складе, но не реализуются в течение определенного периода, или покупателей, которые давно не совершали покупок. В типовых конфигурациях 1С:Управление торговлей (УТ), 1С:Комплексная автоматизация (КА) и 1С:ERP Управление предприятием нет прямого штатного отчета, который бы назывался "Отчет о непродажах" или "Отчет о неактивных покупателях" — для этого подойдёт отчет по анализу неликвидных остатков для 1С:УТ, КА и ERP. Однако это не означает, что получить такую информацию невозможно. Рассмотрим, как мы можем подойти к решению этой задачи, используя имеющийся функционал 1С, а также методы создания собственных отчетов.

Отчет о не проданных товарах (неликвидах)

Первым делом определимся с терминологией. То, что мы называем "непродажами" по отношению к товарам, в общепринятой практике чаще всего именуется неликвидами. Неликвидный товар – это позиция, которая либо долго лежит на складе без движения, либо имеет большие остатки, но крайне низкую скорость продаж. Важно отметить, что нас интересуют товары, у которых есть остатки, но нет продаж за определенный период, а не товары, которых уже нет на складе (они были проданы).

Мы рассмотрим несколько подходов к выявлению неликвидов:

  1. Адаптация типовых отчетов по остаткам и оборотам товаров

    Несмотря на то, что специализированного отчета нет, мы можем попытаться настроить уже существующие типовые отчеты, такие как "Ведомость по товарам на складах", "Остатки и обороты товаров" или "Анализ наличия товаров на складах". Изначально автор вопроса посчитал "Ведомость остатков" непригодной, но с правильной настройкой и пониманием, чего мы ищем, она может дать часть информации.

    Как мы можем это сделать:

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

    • Показатели: В отчете нам нужны показатели, отражающие остатки на начало и конец периода (КонечныйОстаток) и оборот по расходу (Расход) за этот же период.

    • Отборы: Здесь начинается самое важное. Мы должны установить отбор по показателю Расход за период, равный 0. Одновременно с этим, чтобы отсеять уже проданные товары, у которых нет остатков, мы должны убедиться, что КонечныйОстаток больше 0. Это позволит нам увидеть товары, которые лежат на складе (имеют остаток), но не были проданы в выбранном периоде.

    • Группировки: Группируйте данные по Номенклатуре, Складу, а при необходимости – по характеристикам или сериям. Это позволит нам получить детальный список неликвидных позиций.

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

  2. Использование отчетов ABC/XYZ-анализа

    В некоторых типовых конфигурациях или внешних обработках доступны отчеты ABC/XYZ-анализа. Хотя они напрямую не называются "отчетом о непродажах", их функционал может помочь в выявлении неликвидов.

    Как это работает:

    • ABC-анализ: Классифицирует номенклатуру по ее вкладу в прибыль или оборот. Товары группы 'C' – это товары с наименьшим вкладом, среди которых часто оказываются медленно продаваемые позиции.

    • XYZ-анализ: Классифицирует номенклатуру по стабильности спроса. Товары группы 'Z' – это товары с нерегулярным, труднопрогнозируемым спросом, которые также могут стать неликвидами.

    • Совместный ABC/XYZ-анализ: Позволяет выявить, например, группу 'CZ' – товары с низким вкладом в оборот и нестабильным спросом. Именно в этой группе часто и находятся основные неликвиды.

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

  3. Создание собственных отчетов на Системе Компоновки Данных (СКД)

    Наиболее гибкий и мощный способ получения отчета о неликвидах – это разработка собственного отчета с использованием Системы Компоновки Данных (СКД). Этот метод позволяет нам точно настроить запросы, отборы и вывод информации.

    Основные шаги и принципы:

    1. Источники данных: Нам потребуется обратиться к нескольким регистрам накопления:

      • РегистрНакопления.СвободныеОстатки: Для получения информации о текущих остатках товаров на складах. Этот регистр позволяет нам узнать, что именно сейчас имеется в наличии.

      • РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты: Для получения информации о начальных и конечных остатках, а также о приходах и расходах (движениях) товаров за определенный период. Этот регистр позволит нам анализировать динамику.

      • РегистрСведений.ЦеныНоменклатуры.СрезПоследних: Для получения актуальных цен товаров, что может быть полезно для оценки стоимости и себестоимости неликвидов.

    2. Логика запроса: Наша задача – найти номенклатуру, которая имеет остаток, но не имела движения (расхода) в заданном периоде. Мы можем это сделать, выполнив следующие действия в запросе:

      • Получаем список всех товаров, у которых есть свободный остаток на складе.

      • К этому списку левым соединением присоединяем данные об оборотах (расходах) за интересующий период.

      • Фильтруем результат, оставляя только те товары, у которых СвободныеОстатки.Остаток > 0 и при этом ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход (или аналогичное поле из регистра продаж) за период равен 0 или NULL (что будет означать отсутствие движений).

      Вот пример запроса, который был предложен в обсуждении, с некоторыми адаптациями для нашей цели. Он демонстрирует соединение регистров и выборку остатков:

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

      В этом запросе мы используем параметры &НачалоПериода и &КонецПериода для ограничения оборотов. Условие СвободныеОстатки.Остаток > 0 гарантирует, что мы рассматриваем только те товары, которые физически есть на складе. Условие (ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход ЕСТЬ NULL ИЛИ ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход = 0) является ключевым для выявления "непродаж" – оно отбирает товары, у которых не было расхода за указанный период.

    3. Расчет "Дней без движения": Для более глубокого анализа неликвидов полезно знать, как долго товар находится без движения. Мы можем определить дату последнего прихода/расхода, обратившись к тому же регистру ТоварыОрганизаций.Движения или Продажи. Затем, вычитая эту дату из текущей даты, мы получаем количество дней, прошедших с момента последнего движения.

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

    5. Настройка СКД: После создания запроса мы настраиваем СКД, определяя доступные поля, группировки, отборы и внешний вид отчета. Это позволяет пользователям гибко работать с данными, не углубляясь в код.

Отчет о неактивных покупателях

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

Мы можем использовать следующие подходы для создания отчета о неактивных покупателях:

  1. Адаптация типовых отчетов по продажам

    Мы можем настроить стандартные отчеты по продажам, такие как "Анализ продаж по клиентам" или "Валовая прибыль предприятий", чтобы выявить неактивных клиентов.

    Как мы это сделаем:

    • Настройка периода: Задайте период, за который вы хотите проверить активность покупателей (например, последние 3 месяца, 6 месяцев, год).

    • Показатели: Нам потребуются показатели СуммаПродаж или КоличествоПродаж.

    • Отборы: Мы установим отбор по СуммаПродаж = 0 или КоличествоПродаж = 0 за выбранный период. Однако этот метод не всегда прост, так как типовые отчеты могут не выводить контрагентов, по которым не было вообще никаких продаж за период (они просто не попадают в выборку). Нам нужно найти всех контрагентов, а затем проверить их активность.

    • Группировки: Группируйте данные по Контрагенту, а затем детализируйте по Менеджеру или Сегменту для дальнейшей работы.

  2. Создание собственных отчетов на Системе Компоновки Данных (СКД)

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

    Основные шаги и принципы:

    1. Источники данных: Нам потребуются:

      • Справочник.Контрагенты: Для получения полного списка всех наших клиентов, независимо от их активности.

      • РегистрНакопления.Продажи.Обороты: Для анализа факта продаж каждому контрагенту за определенный период.

    2. Логика запроса: Наша задача – найти всех контрагентов и определить, были ли у них продажи в заданном периоде.

      • Получаем полный список контрагентов из справочника.

      • К этому списку левым соединением присоединяем данные об оборотах продаж (например, КоличествоПродажОборот или СуммаПродажОборот) из регистра Продажи.Обороты за интересующий период.

      • Фильтруем результат, оставляя только тех контрагентов, у которых соответствующие поля оборотов продаж за период равны 0 или NULL (что означает отсутствие продаж).

      Пример схемы запроса для СКД:

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

      В этом запросе &НачалоПериода и &КонецПериода будут параметрами для указания анализируемого временного интервала. Условие ПродажиОбороты.Контрагент ЕСТЬ NULL является ключевым для выявления контрагентов, по которым не было ни одной записи в регистре продаж за указанный период (т.е. они не совершали покупок).

    3. Дата последней покупки: Для каждого неактивного клиента полезно знать, когда была совершена его последняя покупка. Для этого мы можем в запросе найти максимальную дату документа движения по регистру Продажи для каждого контрагента. Затем сравнить эту дату с текущей датой или концом анализируемого периода.

    4. Дополнительные данные: В отчет можно включить контактные данные клиента, среднего чека, информацию о менеджере, ответственного за данного клиента. Это позволит отделу продаж или маркетинга более эффективно работать с выявленными "потерянными" клиентами.

Общие рекомендации по реализации отчетов

При создании подобных аналитических отчетов, которые напрямую не предусмотрены типовым функционалом, мы рекомендуем придерживаться следующих принципов:

  1. Четкое определение критериев: Прежде чем приступать к разработке, мы должны четко сформулировать, что именно мы понимаем под "непроданным товаром" (например, есть остаток, нет продаж 90 дней, прибыльность ниже X%) и "неактивным покупателем" (не было покупок 180 дней, ни одной покупки после регистрации и т.д.) — для этого подойдёт отчет для поиска залежалых товаров в 1С:УТ 11.5.

  2. Совместная работа с пользователями: Поскольку задача исходит от бизнес-пользователей, мы должны тесно взаимодействовать с ними для уточнения требований, тестирования и валидации отчетов.

  3. Использование Системы Компоновки Данных (СКД): СКД – это ваш основной инструмент. Она позволяет не только создавать сложные запросы, но и предоставлять пользователю широкий набор настроек (отборы, группировки, сортировки, условное форматирование), что делает отчеты гибкими и интерактивными.

  4. Оптимизация запросов: Работа с большими объемами данных в регистрах накопления требует внимания к производительности запросов. Мы должны стараться максимально эффективно использовать индексы и параметры виртуальных таблиц регистров (например, .Остатки, .Обороты, .СрезПоследних).

  5. Внешние отчеты: Если создание отчета с нуля кажется сложной задачей, мы можем рассмотреть готовые внешние отчеты, которые доступны на различных ресурсах и часто предлагают более широкий функционал для анализа неликвидов и клиентской базы — есть помощник поиска неликвидов и анализа оборачиваемости. Эти решения интегрируются в 1С и предоставляют расширенные возможности, такие как группировка по срокам хранения, расчет ожидаемого срока распродажи остатков, вывод информации о днях без движения и т.д.

Таким образом, хотя "штатный" доступ к отчетам о непродажах и неактивных покупателях в 1С:УТ, КА, ERP может отсутствовать в том виде, в каком его ожидают, необходимый функционал для их получения вполне реализуем. Мы можем использовать гибкость платформы 1С для адаптации существующих инструментов или разработки собственных специализированных отчетов, которые будут максимально отвечать нашим бизнес-потребностям.

← На главную