Как объединить несколько заказов покупателей в один заказ на производство в 1С:УПП 1.3?

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

В практической деятельности производственных предприятий часто возникает ситуация, когда торговый отдел в течение нескольких дней собирает заказы от покупателей, а в определенный день (например, в четверг утром) необходимо сформировать один сводный Заказ на производство. Это позволяет оптимизировать загрузку производственных мощностей и упорядочить закупку сырья.

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

Способ 1. Ручное объединение через настройку табличной части (без программирования)

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

Проанализируем пошагово, как это сделать:

  1. Откроем журнал документов «Заказы на производство» и создадим новый документ.
  2. В верхней панели формы найдем кнопку «Панель функций» или нажмем кнопку «Действия» (в зависимости от настроек интерфейса) и выберем пункт «Шапка / табличная часть...».
  3. В открывшемся диалоговом окне переставим флажок для реквизита «Заказ покупателя» из положения «В шапке» в положение «В табличной части». После нажатия кнопки «ОК» форма документа перестроится: поле выбора заказа исчезнет из шапки, а в табличной части «Продукция» появится новая колонка «Заказ».
  4. Перейдем на вкладку «Продукция». Теперь мы можем добавлять строки вручную и для каждого изделия указывать свой заказ покупателя.
  5. Чтобы ускорить процесс, нажмем кнопку «Заполнить» над табличной частью «Продукция» и выберем пункт «Добавить по заказу покупателя». Выберем первый заказ из списка — его товары перенесутся в таблицу с привязкой к источнику. Повторим это действие для всех заказов, накопленных с понедельника по среду.
  6. После формирования списка продукции перейдем на вкладку «Материалы» и нажмем кнопку «Заполнить -> По спецификации». Система автоматически рассчитает общую потребность в сырье и материалах для всего объема сводного заказа.

Этот способ идеально подходит для небольшого объема заказов, так как он не требует изменения конфигурации и выполняется стандартными средствами пользователя.

Способ 2. Автоматизация заполнения с помощью внешней обработки

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

Выясним, как выглядит примерный алгоритм и код запроса для реализации такой обработки. Нам потребуется выбрать данные из табличных частей документов ЗаказПокупателя, которые еще не были запущены в производство:


// Пример запроса для получения остатков по заказам покупателей
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ЗаказПокупателяОстатки.Номенклатура КАК Номенклатура,
    |	ЗаказПокупателяОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |	ЗаказПокупателяОстатки.КоличествоОстаток КАК Количество,
    |	ЗаказПокупателяОстатки.ЗаказПокупателя КАК ЗаказПокупателя
    |ИЗ
    |	РегистрНакопления.ЗаказыПокупателей.Остатки(&ПериодГраница, 
    |		ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |		И ЗаказПокупателя.Проведен
    |	) КАК ЗаказПокупателяОстатки";

Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания));
// Устанавливаем границу периода для получения актуальных остатков
Запрос.УстановитьПараметр("ПериодГраница", Новый Граница(КонецДня(ДатаОкончания), ВидГраницы.Включая));

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
    // Код заполнения табличной части "Продукция" документа "Заказ на производство"
    НоваяСтрока = СсылкаНаОбъект.Продукция.Добавить();
    НоваяСтрока.Номенклатура = Выборка.Номенклатура;
    НоваяСтрока.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
    НоваяСтрока.Количество = Выборка.Количество;
    НоваяСтрока.Заказ = Выборка.ЗаказПокупателя;
КонецЦикла;

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

Способ 3. Использование «Помощника планирования» (продвинутый уровень)

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

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

Рассмотрим по шагам работу с «Помощником планирования» для нашей задачи:

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

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

Важные настройки параметров учета

Чтобы все вышеперечисленные механизмы (особенно резервирование под заказы) работали корректно, убедимся, что в базе выполнены ключевые настройки:

Таким образом, даже используя стандартную «коробочную» версию 1С:УПП 1.3, вы обладаете полным набором инструментов для эффективного объединения заказов и планирования производства.

← На главную