Как создать отчет для отдела закупок в 1С: расчет среднемесячных продаж и планирование заказов

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

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

Этап 1: Предварительный анализ бизнес-логики

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

  1. Определим целевую аудиторию: Кто будет пользоваться отчетом? Менеджеры по закупкам или руководитель отдела? От этого зависит уровень детализации.
  2. Выясним источник данных: Какие регистры в вашей конфигурации отвечают за продажи и остатки? Обычно это РегистрНакопления.ВыручкаИПродажи и РегистрНакопления.ТоварыНаСкладах (в УТ 11) или Продажи и ТоварыНаСкладах (в УТ 10.3).
  3. Уточним формулу: В простейшем виде формула выглядит как Заказ = СреднемесячныеПродажи - Остаток. Однако в реальной жизни нужно уточнить, учитывать ли «Товары в пути» (которые уже заказаны, но еще не приехали) и «Резервы» (которые лежат на складе, но уже проданы).

Этап 2: Обучение и выбор инструментов

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

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

Этап 3: Пошаговый план разработки отчета

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

  1. Создание отчета по продажам: Научимся выводить продажи за период, указанный пользователем. Используем виртуальную таблицу Обороты регистра продаж.
  2. Настройка периодичности: Сформируем отчет с группировкой по месяцам. Это необходимо для расчета среднего значения.
  3. Вычисление СМП: Научимся рассчитывать среднемесячные продажи. Если мы берем данные за 5 месяцев, то сумму продаж нужно разделить на 5. Важно: следует учитывать дни, когда товара не было на складе (stockout), иначе среднее значение будет занижено.
  4. Добавление остатков: Выведем в отчет остатки товаров на текущую дату, используя виртуальную таблицу Остатки.
  5. Соединение данных: Объединим данные о продажах и остатках по полю Номенклатура.
  6. Расчет поля «Заказ»: Создадим вычисляемое поле, в котором будет считаться разница между потребностью и текущим наличием.

Этап 4: Техническая реализация в СКД

Проанализируем пример того, как может выглядеть запрос для такого отчета. Нам нужно использовать ЛЕВОЕ СОЕДИНЕНИЕ, чтобы в отчет попали все товары, по которым были продажи, даже если их сейчас нет на остатке.

Пример упрощенной структуры запроса:


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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Данные.Номенклатура,
    ВТ_Данные.СМП,
    ВТ_Данные.Остаток,
    ВЫБОР
        КОГДА ВТ_Данные.СМП - ВТ_Данные.Остаток > 0
            ТОГДА ВТ_Данные.СМП - ВТ_Данные.Остаток
        ИНАЧЕ 0
    КОНЕЦ КАК КЗаказу
ИЗ
    ВТ_Данные КАК ВТ_Данные

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

Этап 5: Нюансы профессиональной закупки

Чтобы ваш отчет был действительно полезным, рассмотрим дополнительные параметры, которые стоит внедрить:

1. Учет дефицита: Если товара не было на складе часть периода (например, 10 дней из 30), СМП нужно считать не как Продажи / 30, а как Продажи / (30 - ДниОтсутствия). Это позволит увидеть реальный потенциал спроса.

2. Страховой запас: Добавьте в формулу коэффициент на случай задержки поставки. Закупка не должна быть «впритык», иначе любая задержка фуры приведет к пустым полкам.

3. Период анализа: 5 месяцев — хороший срок, но он может включать разные сезоны. Выясните у отдела закупок, нужно ли внедрять коэффициенты сезонности.

4. Работа с характеристиками: Если в вашей базе ведется учет по цветам или размерам, обязательно добавьте поле ХарактеристикаНоменклатуры в группировки и связи запроса, иначе данные «схлопнутся» и отчет покажет неверную картину.

Заключение

Создание качественного отчета для закупок — это итерационный процесс. Скорее всего, после первой версии пользователи попросят добавить «товары в пути», фильтрацию по поставщикам или ABC-классификацию. Главное — заложить правильный фундамент в виде грамотной структуры запроса и использования СКД. Используйте рекомендации из мануалов Радченко и Хрусталевой, и через некоторое время вы сможете создавать инструменты любой сложности.

← На главную