Почему при списании по Заказу покупателя в 1С:УНФ 3.0 формируется нулевая себестоимость?

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

С переходом на редакцию 3.0 конфигурации 1С:Управление нашей фирмой (УНФ) многие специалисты и пользователи столкнулись с изменениями в механизмах расчета себестоимости и резервирования. Одной из наиболее острых проблем, обсуждаемых в профессиональном сообществе, стала ситуация, когда при проведении документа отгрузки, созданного на основании заказа покупателя, количество списывается корректно, а себестоимость (сумма списания) равна нулю. Это приводит к некорректному отображению валовой прибыли в оперативных отчетах.

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

Суть проблемы и симптомы

Ситуация выглядит следующим образом: мы оформляем цепочку документов «под заказ». Сначала создаем ЗаказПокупателя, затем на его основании вводим ПриходнуюНакладную (обеспечиваем потребность), и наконец, оформляем РасходнуюНакладную для отгрузки клиенту.

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

  1. Товар списан со склада (количество уменьшилось).
  2. Выручка зафиксирована.
  3. Себестоимость списания равна нулю.
  4. Как следствие, рентабельность сделки отображается как 100%, что не соответствует действительности.

Проанализируем причины такого поведения системы. В редакции УНФ 3.0 была существенно переработана архитектура регистров накопления и логика работы с запасами. Проблема часто кроется в механизме «обособления» запасов под конкретный заказ.

Причина 1: Особенности оперативного проведения и алгоритмов FIFO

В новых релизах УНФ (начиная с 3.0) разработчики изменили логику подбора партий при оперативном проведении документов. Если в ПриходнойНакладной явно указан ЗаказПокупателя (в шапке или табличной части), система создает партию товара, жестко привязанную к этому заказу. В регистре накопления Запасы эта запись имеет заполненное измерение «Заказ».

Ошибка, с которой сталкиваются пользователи, часто заключается в несовершенстве алгоритма оперативного списания в конкретных релизах. При проведении РасходнойНакладной система пытается списать товар. Если в алгоритме запроса остатков допущена неточность, программа может искать «свободный» остаток (где измерение «Заказ» пустое), игнорируя тот факт, что товар был зарезервирован именно под текущий документ основания.

В результате система «видит» наличие товара количественно (благодаря контролю остатков или его отсутствию), но не может корректно подобрать партию для списания стоимости, так как нужная партия «спрятана» за измерением заказа.

Причина 2: Разделение на оперативный и фактический расчет

Важно понимать фундаментальный принцип работы 1С:УНФ: существует два момента расчета себестоимости.

  1. Оперативный расчет: Происходит в момент проведения накладной. Он является предварительным и использует метод оценки (например, по средней или FIFO) в рамках текущих остатков. Именно здесь чаще всего возникает ошибка с нулевой суммой из-за сложности запросов к блокированным партиям.
  2. Фактический расчет (Закрытие месяца): Выполняется регламентной операцией РасчетСебестоимости. Этот механизм полностью пересчитывает движения за месяц, восстанавливает хронологическую последовательность и распределяет затраты более точно.

Давайте рассмотрим методы решения и диагностики проблемы.

Решение 1: Проверка аналитики в документах

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

Проверим документы цепочки:

  1. Откроем ПриходнуюНакладную. Убедимся, какая Организация и какое СтруктурноеПодразделение (Склад) указаны. Проверим, заполнен ли ЗаказПокупателя в табличной части или шапке.
  2. Откроем РасходнуюНакладную. Эти данные должны абсолютно совпадать.

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

Решение 2: Выполнение процедуры «Закрытие месяца»

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

Выполним следующие действия:

  1. Перейдем в раздел Компания — Финансовые операции — Закрытие месяца.
  2. Создадим документ ЗакрытиеМесяца за проблемный период.
  3. Убедимся, что установлена галочка Рассчитать себестоимость.
  4. Проведем документ.

После этого вернемся в отчет по валовой прибыли или движения документа. В 90% случаев, если проблема была в алгоритме оперативного подбора, закрытие месяца исправляет движения, так как использует более прямой алгоритм перебора партий (FIFO) без оглядки на оперативные блокировки.

Решение 3: Диагностика через отчет «Движения документа»

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

В документе РасходнаяНакладная перейдем к движениям по регистрам. Нас интересует регистр накопления Запасы (или ЗапасыИЗатраты в зависимости от настроек учета).

Проанализируем записи:

Если вы видите нулевую сумму при наличии количества, попробуйте временно отменить проведение ПриходнойНакладной и провести её снова, а затем перезаполнить и провести РасходнуюНакладную. В УНФ критически важна хронология с точностью до секунды. Если Расход был записан раньше Прихода (даже если даты совпадают), себестоимость не спишется оперативно.

Решение 4: Обновление конфигурации и исправление ошибок

Как отмечалось в обсуждении проблемы, данное поведение в УНФ 3.0 признавалось разработчиками как ошибка в ряде релизов (в частности, связанные с частичными отгрузками по заказам и комиссионной торговлей). В более новых версиях (например, начиная с 3.0.4 и выше) механизмы работы с обособленными запасами были доработаны.

Если закрытие месяца не помогает, и хронология соблюдена, рекомендуем:

  1. Проверить наличие обновлений конфигурации.
  2. Изучить список исправленных ошибок (Bugboard) для вашей версии на сайте поддержки 1С. Искать ошибки по ключевым словам: "расчет себестоимости", "обособление", "заказ покупателя".

Обходной путь (Workaround) для старых релизов

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

  1. При поступлении товара в ПриходнойНакладной не указывать заказ покупателя (принимать на свободный остаток).
  2. Использовать документ РезервированиеЗапасов для явной привязки свободного остатка к заказу перед отгрузкой.
  3. Либо оформлять отгрузку без привязки к заказу в движениях запасов (если бизнес-процесс позволяет), что упростит подбор партий для системы.

Заключение

Проблема нулевой себестоимости в 1С:УНФ 3.0 при работе с заказами чаще всего вызвана либо нарушением хронологии/аналитики, либо ошибкой оперативного алгоритма расчета в конкретном релизе. Главным инструментом «лечения» в УНФ остается процедура Закрытия месяца, которая пересчитывает стоимость запасов по всем правилам управленческого учета, игнорируя временные оперативные ошибки.

← На главную