Как определить залежалый товар в 1С при оценке стоимости МПЗ по средней

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

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

Почему в регистре партий измерение «ДокументОприходования» пустое

Рассмотрим внутреннее устройство типовых конфигураций (например, 1С:Управление производственным предприятием 1.3). В регистрах накопления ПартииТоваровНаСкладах (в разрезах управленческого, бухгалтерского и налогового учетов) измерение ДокументОприходования заполняется только тогда, когда в параметрах учетной политики установлен способ оценки МПЗ ФИФО. Если же выбрана оценка по средней стоимости, типовые алгоритмы намеренно оставляют это измерение пустым (со значением NULL или пустой ссылкой).

Выясним причину такого поведения: при средней оценке стоимости остаток товара на складе не должен дробиться по конкретным поставкам, так как себестоимость списания рассчитывается усредненно по всей номенклатурной позиции. Исключением в регистрах являются лишь счета 07 и 08 — внеоборотные активы и оборудование требуют пообъектного учета в соответствии с требованиями ПБУ независимо от общего метода оценки МПЗ.

Важное предупреждение: не пытайтесь принудительно заполнять реквизит партии в движениях регистров при установленной учетной политике «По средней». Это приведет к критическим ошибкам в процедуре регламентного проведения по партиям и исказит расчеты документа КорректировкаСтоимостиСписанияТоваров при закрытии месяца.

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

Методика 1. Оценка неликвидов через обеспеченность запасом и период поставки

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

Разберем базовую формулу расчета:

  1. Определяем показатель X — среднемесячные продажи товара за анализируемый период (например, за последние 3–6 месяцев).
  2. Фиксируем показатель Y — текущий фактический остаток товара на складе (из регистра накопления ТоварыНаСкладах).
  3. Рассчитываем показатель N — количество месяцев, на которые хватит текущего складского остатка: N = Y / X.
  4. Учитываем параметр M — срок поставки номенклатуры от момента заказа поставщику до поступления на склад (в месяцах).

Если разница между фактическим запасом в месяцах и сроком доставки превышает еще один период поставки (N - M > M, то есть текущего остатка хватает более чем на два полных плеча поставки), номенклатурная позиция классифицируется как залежалая или неликвидная. При наличии регулярных небольших отгрузок этот подход показывает реальную проблему перетаривания склада.

Методика 2. Анализ дат крайних движений и дней простоя

Если цель отчета — выявить «мертвый» товар, по которому отгрузки полностью прекратились, обратимся к анализу дат последних документов расхода. Для этого используем остаточный регистр ТоварыНаСкладах.

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


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

Разберем логику работы данного запроса: мы соединяем актуальный складской остаток с таблицей движений по расходу и находим максимальную дату отгрузки. Если разница между датой анализа и последней продажей превышает пороговое значение (например, 60, 90 или 180 дней) либо расходные движения отсутствуют вовсе, позиция выводится в отчет как кандидат на списание или уценку.

Методика 3. Алгоритм «Виртуального ФИФО»

Рассмотрим случай, когда руководству требуется распределить текущий остаток по интервалам старения (например: до 30 дней, 31–60 дней, свыше 90 дней), но в базе ведется оценка по средней.

Для решения этой задачи реализуем расчетное «виртуальное ФИФО» в отчете без изменения проводок:

  1. Получаем текущий остаток номенклатуры на складе из регистра накопления ТоварыНаСкладах.
  2. Выбираем из базы все документы поступления по данной номенклатуре в обратном хронологическом порядке (от даты отчета вглубь истории).
  3. Программно или через накопительный итог в запросе «закрываем» текущий остаток количеством из последних поступлений.
  4. Если текущий остаток составляет 10 штук, а последняя накладная была на 6 штук вчера, а предпоследняя — на 8 штук три месяца назад, алгоритм относит 6 штук к свежей поставке, а оставшиеся 4 штуки — к трехмесячной давности.

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

← На главную