Почему в 1С:УПП 1.3 не отображается «Свободный ожидаемый остаток» и как это исправить

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

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

Анализируем причину проблемы: логика регистра «Заказы поставщикам»

Для начала выясним, откуда система берет данные для поля «Свободный ожидаемый остаток». В УПП этот показатель рассчитывается динамически на основании данных регистра накопления ЗаказыПоставщикам. Рассмотрим формулу, по которой работает типовой механизм:

Свободный ожидаемый остаток = Приход по заказам поставщикам (остаток по регистру) — Резервы в этих заказах.

Проблема кроется в механизме «Размещения». Когда мы создаем документ Заказ поставщику на основании Заказа на производство, система автоматически заполняет колонку Размещение в табличной части. С точки зрения логики УПП, если в строке заказа указан документ-потребитель (в нашем случае — производственный заказ), то вся строка целиком считается зарезервированной под этот документ.

Проанализируем ситуацию на примере автора темы: для заказа на производство нужна 1 шт. материала. Мы заказываем у поставщика 100 шт. (упаковку). Если в строке Заказа поставщику на 100 шт. в колонке Размещение указан наш Заказ на производство, то система «привязывает» все 100 шт. к этой потребности. В итоге:

  1. Отчет «Анализ обеспечения заказов» видит излишек в 99 шт., так как он сравнивает потребность заказа и размещение.
  2. Справочник «Номенклатура» видит, что свободного остатка нет, так как все 100 шт. имеют признак размещения (резерва) под конкретный заказ.

Решение №1: Правильное разделение строк в «Заказе поставщику»

Самый простой и методически верный способ увидеть свободный ожидаемый остаток — это разделение строки в документе закупки. Разберем этот процесс по шагам:

  1. Откройте документ Заказ поставщику, созданный на основании производства.
  2. Найдите позицию, по которой количество превышает потребность (например, заказано 100 шт. при потребности 1 шт.).
  3. Разбейте эту строку на две отдельные строки:
    • Строка №1: Количество 1 шт. В колонке Размещение оставьте ссылку на Заказ на производство. Это обеспечит выполнение конкретной производственной задачи.
    • Строка №2: Количество 99 шт. Обязательно очистите колонку Размещение (оставьте поле пустым).
  4. Проведите документ.

После этого, если мы заглянем в справочник Номенклатура, мы увидим, что в поле «Свободный ожидаемый остаток» появились те самые 99 шт. Теперь система понимает, что этот товар придет на склад без «привязки» к конкретному заказу и его можно будет распределить на другие нужды.

Решение №2: Использование «Помощника планирования»

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

Для расчета свободного остатка через планирование выполните следующие действия:

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

Техническая реализация: как это выглядит в коде

Для программистов, желающих кастомизировать вывод остатков, приведем пример логики запроса, который выбирает именно свободный ожидаемый остаток. Нам нужно отобрать записи из регистра ЗаказыПоставщикам, где измерение Заказ является пустым или не соответствует типу документа-потребителя.


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

Важно помнить, что в УПП 1.3 данные о размещениях хранятся в регистре РазмещениеЗаказов. Если запись в этом регистре привязана к конкретному ЗаказуПоставщику, то количество в этом заказе перестает считаться свободным.

Рекомендации по управлению запасами

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

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

← На главную