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