Как агрегировать и фиксировать выпуск разнотипной продукции бригадой за смену в 1С:ERP 2.4, когда каждый этап производства содержит только одну номенклатуру?

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

В процессе управления производством часто возникает ситуация, когда требуется отразить выпуск большого количества разнотипной мелкой продукции, изготавливаемой несколькими бригадами. Стандартный механизм 1С:ERP 2.4, использующий документ Этап производства, позволяет зафиксировать только одну основную номенклатуру продукции в одном документе. Это создает значительные сложности при попытке агрегировать информацию о выпуске продукции конкретной бригадой за смену, формировать единые отчеты для подписания мастером и отслеживать производственные показатели.

Рассмотрим подробно проблему, предложенное решение в виде "документа-контейнера" и альтернативные подходы с использованием стандартного функционала 1С:ERP 2.4 и доработки автоматизированных рабочих мест (АРМ).

Проблема фиксации выпуска продукции бригадой

Основная сложность заключается в том, что для выпуска большого количества номенклатурных позиций одной бригадой за смену приходится создавать множество документов Этап производства. Например, если бригада за смену выпустила 80-100 различных видов товара, то в системе будет 80-100 отдельных документов выпуска. Это порождает следующие проблемы:

  1. Сложность агрегации данных: Мастеру или руководителю сложно получить единую картину того, что было произведено конкретной бригадой за смену, без выполнения дополнительных отчетов и запросов.
  2. Проблемы с отчетностью и подписанием: Мастеру необходимо распечатать и подписать документ, подтверждающий выпуск продукции. Если документов много, это становится крайне неудобным и времязатратным. Требуется некий сводный документ, под которым мастер может поставить свою подпись.
  3. Отслеживание изменений: Если после первичной фиксации выпуска и распечатки отчета были внесены корректировки, отслеживание этих изменений и повторное формирование документа для подписания становится сложной задачей при наличии множества отдельных этапов.
  4. Материальная ответственность и ФОТ: Нередко факт выпуска и, в частности, его подтверждение подписью мастера, является основанием для списания материалов и начисления сдельной заработной платы работникам бригады. Неудобство фиксации выпуска напрямую влияет на эти процессы.

Предложение автора: Создание собственного документа-контейнера

Автор предлагает создать собственный документ - "контейнер", который будет выполнять роль агрегатора. Мы рассмотрим его структуру и логику работы.

Суть предложения: Создать новый документ, например, ВыпускПродукцииБригадой, который будет иметь табличную часть. В этой табличной части будут содержаться ссылки на документы Этап производства и, возможно, количество выпущенной продукции. Логика работы такого документа будет следующей:

  1. При записи документа-контейнера: будут создаваться или перезаписываться связанные документы Этап производства.
  2. При проведении документа-контейнера: будут соответственно проводиться или перепроводиться связанные документы Этап производства.

Преимущества, которые автор видит в таком подходе:

Критика и потенциальные проблемы документа-контейнера

Хотя идея контейнера кажется логичной на первый взгляд, она сопряжена с рядом серьезных рисков и недостатков, которые мы должны тщательно проанализировать.

1. Дублирование данных и логики

Создание документа-контейнера, который по сути дублирует функционал документов Этап производства, приводит к излишнему усложнению системы. Стандартный документ Этап производства уже содержит всю необходимую информацию о выпуске. Зачем создавать еще один объект, который будет просто перекладывать данные из одного места в другое? Этот подход часто является изобретением "велосипеда", когда можно использовать или расширить существующие механизмы.

2. Сложности с поддержанием актуальности

Если документ-контейнер будет создавать или перезаписывать этапы производства, а также проводить их, возникнет необходимость поддерживать их актуальность. Что произойдет, если Этап производства будет изменен вручную? Или если некая фоновая операция изменит его? Потребуются сложные механизмы (подписки на события, регламентные задания) для синхронизации данных между контейнером и его "подчиненными" документами. Это значительно увеличивает трудоемкость разработки и поддержки.

3. Проблемы производительности и транзакций

Наиболее критичный аспект. Если документ-контейнер при проведении будет в одной транзакции проводить 80-100 документов Этап производства, это может привести к катастрофическим последствиям:

4. Логика списания материалов и ответственности

Утверждение о том, что материалы списываются "за подписанную продукцию", является нетипичным для большинства производственных систем. Обычно списание материалов происходит по факту их использования в производстве (например, по документу Передача материалов в кладовую или при проведении Этапа производства). Если списание привязывается к подписи мастера, это может привести к следующим коллизиям:

Как правило, факт выпуска (Этап производства) и факт подтверждения/ответственности (подпись мастера) — это разные аспекты, которые должны фиксироваться, но не обязательно одним и тем же механизмом, особенно когда один из них является учетным, а другой — контрольным.

Альтернативные подходы и типовые возможности 1С:ERP 2.4

Вместо создания нового документа-контейнера, который может породить больше проблем, чем решить, мы предлагаем рассмотреть возможности расширения или создания нового Автоматизированного Рабочего Места (АРМ) для мастера, а также использования типового функционала 1С:ERP 2.4.

1. Доработка Автоматизированного Рабочего Места (АРМ)

Разработка или доработка АРМ является наиболее предпочтительным и гибким решением для данной задачи. Мы рассмотрим, как это может быть реализовано.

Концепция АРМ: АРМ - это специализированная форма обработки, предназначенная для выполнения набора типовых операций определенной ролью (в данном случае, мастером производства). Оно позволяет агрегировать, визуализировать и обрабатывать данные из различных стандартных документов, не дублируя их.

  1. Агрегация данных:

    АРМ мастера может собирать информацию из всех документов Этап производства за определенный период (например, за смену), по конкретной бригаде или заказу на производство. Мы можем использовать запросы к базе данных для получения всей необходимой информации. Например, для получения этапов производства за смену для определенной бригады:

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

    Таким образом, мы получим список всех этапов, выполненных бригадой за смену, и отобразим их в удобной табличной части на форме АРМ.

  2. Визуализация и массовая обработка:

    На форме АРМ можно представить полученные данные в виде списка, "шахматки" или интерактивной таблицы. Это позволит мастеру быстро просмотреть весь выпуск. Функционал массовой обработки может включать:

    • Массовое создание этапов: Если требуется создать много однотипных этапов, АРМ может упростить этот процесс.
    • Массовое изменение статусов: Например, изменение статуса у нескольких этапов на "Завершен".
    • Групповое проведение: Если есть необходимость, АРМ может инициировать проведение нескольких этапов. Однако, здесь необходимо быть осторожными с производительностью и разбивать проведение на небольшие транзакции или выполнять асинхронно.
  3. Фиксация подписания и отчетность:

    Это ключевой аспект. Вместо создания нового документа, мы можем добавить к существующим документам Этап производства или в отдельный регистр сведений признак "ПодписаноМастером".

    • Добавление реквизита в Этап производства: В расширении конфигурации мы можем добавить булевый реквизит ПодписаноМастером к документу Этап производства. Когда мастер подтверждает выпуск в АРМ, этот реквизит устанавливается для всех выбранных этапов.
    • Регистр сведений: Альтернативно, можно создать регистр сведений ПодписанныеВыпускиМастера, который будет хранить ссылки на Этап производства, дату подписи, ФИО мастера и признак подписи. Это позволяет избежать изменения типового документа и сохраняет историю подписаний/отмен.

    Пример кода для установки флага "Подписано мастером" (если реквизит добавлен в документ):

    
    // Предположим, у нас есть список ЭтаповПроизводства, которые нужно отметить как подписанные
    Для Каждого СтрокаТаблицы Из СписокВыбранныхЭтапов Цикл
        ТекущийЭтап = СтрокаТаблицы.ЭтапПроизводства.ПолучитьОбъект();
        Если ТекущийЭтап.ПодписаноМастером = Ложь Тогда
            ТекущийЭтап.ПодписаноМастером = Истина;
            // Можно также установить текущего пользователя и дату подписания
            // ТекущийЭтап.ДатаПодписи = ТекущаяДата();
            // ТекущийЭтап.МастерПодписавший = ПараметрыСеанса.ТекущийПользователь;
            ТекущийЭтап.Записать();
        КонецЕсли;
    КонецЦикла;
    

    Из АРМ можно формировать и печатать сводные отчеты, которые будут отображать информацию из всех отмеченных этапов, включая статус "Подписано". Эти отчеты могут быть типовыми или специально разработанными, используя стандартные механизмы компоновки данных (СКД).

  4. Отслеживание исправлений:

    Если в АРМ реализована логика работы с признаком "ПодписаноМастером", то при любых изменениях в Этапе производства после его подписания, этот признак может быть автоматически сброшен (через подписку на событие ПриЗаписи документа ЭтапПроизводства). Это будет сигнализировать мастеру о необходимости перепроверки и повторного подписания выпуска.

Преимущества АРМ по сравнению с документом-контейнером:

2. Использование типовых возможностей 1С:ERP 2.4

Прежде чем приступать к разработке, всегда стоит максимально использовать стандартный функционал 1С:ERP.

2.1. Документ "Выработка сотрудников"

Для фиксации трудозатрат и выработки бригад, а также распределения стоимости работ по сотрудникам, в 1С:ERP предусмотрен документ Выработка сотрудников. Этот документ фиксирует факт выполненных работ и служит основанием для расчета себестоимости и зарплаты. Бригада должна быть обязательно заполнена на закладке "Трудозатраты" в Этапе производства при переходе к статусу "Начат" или "Завершен".

Мы можем использовать Выработку сотрудников как один из источников данных для АРМ мастера. Мастер может видеть в АРМ не только выпущенную продукцию, но и связанные трудозатраты бригады, отраженные в этом документе.

2.2. Настройка ресурсных спецификаций

В 1С:ERP ресурсная спецификация может описывать как одноэтапный, так и многоэтапный производственный процесс. В многоэтапных спецификациях для материалов, выходных изделий и трудозатрат можно указать этап, на котором они потребляются/возникают. Это позволяет более детально описывать процесс и распределять затраты по этапам, что может упростить дальнейшую агрегацию данных.

2.3. "Производство без заказа" (для специфических случаев)

Если речь идет о массовом, серийном производстве, где нет необходимости в детальном планировании по каждому заказу клиента, можно рассмотреть механизм "Производство без заказа". Он позволяет списывать материалы и оприходовать продукцию без предварительного формирования Заказов на производство. Однако, это может не подойти, если выпуск строго привязан к Заказам клиентов, как описано в исходной задаче.

2.4. Сменные задания (как инструмент контроля, но не учета выпуска)

Документ Сменное задание в 1С:ERP 2.4 в первую очередь является инструментом планирования и контроля выполнения задач на смену. Он не отражает сам факт выпуска продукции, а лишь указывает, какие операции должны быть выполнены. Фактический выпуск фиксируется Этапами производства. Тем не менее, Сменное задание может содержать список этапов, которые должны быть выполнены, и их статусы. Мастер может использовать АРМ, чтобы отслеживать выполнение Сменных заданий и инициировать создание или завершение соответствующих Этапов производства.

Критические замечания и рекомендации

Подведем итог и сформулируем основные рекомендации по решению данной задачи.

  1. Избегайте дублирования:

    Главное правило при доработке 1С: не дублируйте функционал и данные, которые уже есть в типовой конфигурации. Документ Этап производства является ключевым для фиксации выпуска. Наша задача – не заменить его, а предоставить удобный инструмент для работы с ним.

  2. Сфокусируйтесь на АРМ:

    Разработка или доработка Автоматизированного Рабочего Места (АРМ) для мастера является наиболее перспективным направлением. АРМ позволит агрегировать данные из множества Этапов производства, формировать сводные отчеты для подписания, а также предоставлять удобный сервис для создания, изменения и контроля выполнения этапов.

    В рамках АРМ:

    • Реализуйте удобную форму, где мастер будет видеть весь выпуск бригады за смену.
    • Добавьте функционал для установки статуса "Подписано мастером" к самим Этапам производства (через дополнительный реквизит в расширении) или к записям в отдельном регистре сведений, связанным с этапами.
    • Разработайте печатную форму сводного отчета, которую можно распечатать из АРМ для подписи.
    • Рассмотрите возможность использования регламентных заданий или обработок для массового создания Этапов производства, если это необходимо.
  3. Используйте типовые механизмы для учета трудозатрат:

    Документ Выработка сотрудников предназначен именно для фиксации трудозатрат бригад и является основой для расчета ФОТ и распределения себестоимости. Убедитесь, что он корректно используется в ваших процессах.

  4. Проанализируйте бизнес-процесс:

    Перед любой доработкой критически важно четко определить, что является "фактом выпуска" в вашем бизнес-процессе. Это момент проведения Этапа производства или момент подписи мастера? Чаще всего, проведение документа фиксирует факт, а подпись — это подтверждение или акт приемки, который может быть зафиксирован отдельно (например, через статус).

  5. Учитывайте производительность:

    При работе с большим количеством документов всегда думайте о производительности. Если АРМ должен проводить множество этапов, разбивайте эту операцию на части или выполняйте асинхронно, чтобы избежать блокировок и тайм-аутов.

Таким образом, вместо того чтобы изобретать новый документ-контейнер, который может создать больше проблем с производительностью и актуальностью данных, мы рекомендуем сосредоточиться на расширении функционала АРМ для мастера производства. Это позволит эффективно управлять множеством документов Этап производства, агрегировать данные для отчетности и фиксации подписи, не нарушая типовую архитектуру 1С:ERP 2.4.

← На главную