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