В практической деятельности производственных предприятий часто возникает ситуация, когда торговый отдел в течение нескольких дней собирает заказы от покупателей, а в определенный день (например, в четверг утром) необходимо сформировать один сводный Заказ на производство. Это позволяет оптимизировать загрузку производственных мощностей и упорядочить закупку сырья.
В программном решении 1С:Управление производственным предприятием (УПП) редакции 1.3 этот процесс можно организовать несколькими способами. Мы подробно рассмотрим три основных метода: ручное объединение с помощью настройки интерфейса, программный метод через обработку заполнения табличной части и профессиональный расчет потребностей с помощью встроенного «Помощника планирования».
По умолчанию в документе ЗаказНаПроизводство реквизит ЗаказПокупателя находится в шапке документа. Это означает, что «из коробки» один заказ на производство может быть создан на основании только одного заказа покупателя. Однако разработчики 1С предусмотрели стандартный механизм, позволяющий перенести этот реквизит в табличную часть.
Проанализируем пошагово, как это сделать:
Этот способ идеально подходит для небольшого объема заказов, так как он не требует изменения конфигурации и выполняется стандартными средствами пользователя.
Если заказов покупателей много, ручной выбор каждого документа через кнопку «Заполнить» становится трудоемким. В этом случае эффективным решением будет создание внешней обработки заполнения табличной части. Она позволит пользователю выбрать период (например, с понедельника по среду), автоматически соберет все невыполненные заказы покупателей за это время и перенесет товары в один клик.
Выясним, как выглядит примерный алгоритм и код запроса для реализации такой обработки. Нам потребуется выбрать данные из табличных частей документов ЗаказПокупателя, которые еще не были запущены в производство:
// Пример запроса для получения остатков по заказам покупателей
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателяОстатки.Номенклатура КАК Номенклатура,
| ЗаказПокупателяОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЗаказПокупателяОстатки.КоличествоОстаток КАК Количество,
| ЗаказПокупателяОстатки.ЗаказПокупателя КАК ЗаказПокупателя
|ИЗ
| РегистрНакопления.ЗаказыПокупателей.Остатки(&ПериодГраница,
| ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ЗаказПокупателя.Проведен
| ) КАК ЗаказПокупателяОстатки";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания));
// Устанавливаем границу периода для получения актуальных остатков
Запрос.УстановитьПараметр("ПериодГраница", Новый Граница(КонецДня(ДатаОкончания), ВидГраницы.Включая));
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
// Код заполнения табличной части "Продукция" документа "Заказ на производство"
НоваяСтрока = СсылкаНаОбъект.Продукция.Добавить();
НоваяСтрока.Номенклатура = Выборка.Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
НоваяСтрока.Количество = Выборка.Количество;
НоваяСтрока.Заказ = Выборка.ЗаказПокупателя;
КонецЦикла;
Использование внешней обработки заполнения табличной части позволяет полностью автоматизировать рутинную работу без снятия конфигурации с поддержки.
При простом копировании строк из заказов покупателей в заказ на производство существует серьезный риск затоваривания склада. Например, покупатели заказали 100 единиц товара, но на складе готовой продукции уже лежит 30 единиц, оставшихся с прошлых партий. Если мы слепо сформируем заказ на производство на все 100 единиц, то произведем лишний товар, заморозив оборотные средства.
Для решения этой проблемы в 1С:УПП встроен мощный инструмент — «Помощник планирования». Он позволяет рассчитать чистый дефицит и сформировать заказы на производство только на то количество, которого реально не хватает на складах.
Рассмотрим по шагам работу с «Помощником планирования» для нашей задачи:
Этот метод является наиболее методологически верным для планирования производства в ERP-системах, так как он связывает продажи, складские остатки и производство в единый контур.
Чтобы все вышеперечисленные механизмы (особенно резервирование под заказы) работали корректно, убедимся, что в базе выполнены ключевые настройки:
Таким образом, даже используя стандартную «коробочную» версию 1С:УПП 1.3, вы обладаете полным набором инструментов для эффективного объединения заказов и планирования производства.