Как в 1С:УПП рассчитывается количество к заказу поставщику и почему появляются лишние единицы?

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

В системе 1С:Управление производственным предприятием (УПП) 1.3 механизмы обеспечения потребностей (резервирование и размещение) являются одними из самых сложных для понимания. Часто возникают ситуации, когда при автоматическом заполнении Заказа поставщику программа подтягивает странное количество товара, которое не совпадает с реальным дефицитом. Рассмотрим на практическом примере, почему так происходит и как работает внутренняя логика программы.

Суть проблемы: откуда берутся «лишние» товары

Представим типичную ситуацию: в Заказе покупателя числится 20 единиц товара. Менеджер создает Заказ поставщику №1 на эти 20 единиц, чтобы обеспечить потребность. Однако позже выясняется, что условия поставки меняются, и менеджер решает «переиграть» ситуацию: он создает документ Резервирование товаров, чтобы снять размещение с этого заказа, а затем просто помечает Заказ поставщику №1 на удаление. После этого количество в Заказе покупателя уменьшается до 15 единиц, и создается новый Заказ поставщику №2. Ожидается, что система предложит заказать 15 штук, но в документ попадает 35.

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

Разберем механику регистра «Размещение заказов»

Основным «виновником» ситуации является регистр накопления Размещение заказов. Этот регистр отвечает за связь между потребностью (кто заказал) и источником ее обеспечения (у кого купим или где возьмем). Каждая запись в нем имеет два ключевых измерения:

  1. Заказ: Документ-основание потребности (обычно Заказ покупателя).
  2. Заказ-размещение: Источник обеспечения (Заказ поставщику, Внутренний заказ или Заказ на производство).

Когда мы создаем документ Резервирование товаров с видом операции «по заказам», мы фактически перебрасываем остатки из одного источника в другой. В нашем примере менеджер указал «Исходное размещение» — Заказ поставщику №1, а «Новое размещение» оставил пустым. В этот момент система делает движение по регистру:

Приход: Заказ покупателя | Заказ поставщику №1 | -20 шт.

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

Математика расчета дефицита

Проанализируем алгоритм, который срабатывает при нажатии кнопки «Заполнить -> По заказам покупателей» в Заказе поставщику. Программа не просто берет количество из табличной части заказа покупателя, она рассчитывает свободный остаток потребности по формуле:

[Количество к заказу] = [Потребность по Заказу покупателя] — [Текущее размещение в других заказах]

В нашем примере расчет выглядел следующим образом:

  1. Потребность по уточненному Заказу покупателя: 15 шт.
  2. Текущее размещение в регистре (после некорректного резервирования): -20 шт.
  3. Итоговая формула: 15 — (-20) = 35 шт.

Система видит отрицательное размещение как «сверхдефицит». С точки зрения программы, вы не только должны обеспечить текущие 15 штук, но и перекрыть ту «дыру» в 20 штук, которая образовалась из-за документа резервирования. Поэтому она предлагает заказать 35 единиц, чтобы вывести итоговый остаток размещения в плюс 15.

Как правильно исправлять цепочки документов

Для предотвращения подобных ошибок придерживайтесь следующих правил работы с заказами:

1. Использование корректировок вместо удаления

Если количество в Заказе покупателя изменилось, не нужно удалять связанные документы или вручную править размещения через резервирование. Правильный метод — использовать документ Корректировка заказа покупателя. Он корректно пересчитывает все движения по регистрам остатков и размещений.

2. Правило «LIFO» при отмене операций

Рассмотрим «правило обратной последовательности». Если вы создали цепочку: Заказ покупателя -> Заказ поставщику -> Резервирование, то отменять действия нужно строго в обратном порядке:

  1. Распровести или удалить Резервирование.
  2. Распровести Заказ поставщику.
  3. Менять Заказ покупателя.

3. Закрытие неактуальных заказов

Если Заказ поставщику стал неактуален (например, это был технический заказ для проверки цен), его нельзя просто удалять. Используйте специализированный документ Закрытие заказов поставщику. Он «схлопывает» все невыполненные обязательства и чистит регистры размещений, не оставляя битых ссылок.

Инструменты для диагностики

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

Резюме

Появление 35 деталей вместо 15 — это классическое следствие нарушения логической целостности данных в 1С:УПП. Отрицательных остатков в регистре Размещение заказов быть не должно. Всегда проверяйте, чтобы документы Резервирование товаров не ссылались на удаленные или помеченные на удаление заказы, и используйте штатные механизмы корректировки и закрытия заказов.

← На главную