Как оформить приходный ордер на основании заказа на производство в 1С:ERP?

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

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

Понимание архитектуры системы

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

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

Решение через модификацию логики движений

Вместо создания внешних обработок для заполнения документов, что может усложнить поддержку системы, эффективнее будет изменить логику самого Этапа производства. Суть метода заключается в том, чтобы заставить систему формировать движения по регистру Товары к поступлению при переходе этапа в более ранние статусы, например, Начат или К выполнению.

Шаги по реализации данного подхода:

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

Примерная концепция изменения логики в модуле может выглядеть следующим образом:


Если Этап.Статус = Перечисления.СтатусыЭтапов.Начат Тогда
    // Формируем записи в регистр ТоварыКПоступлению
    Движение = Движения.ТоварыКПоступлению.Добавить();
    Движение.Период = ТекущаяДата();
    Движение.Номенклатура = Этап.ВыпускаемаяПродукция.Номенклатура;
    // Дополнительные параметры заполнения
КонецЕсли;

Почему это удобно?

Такой подход решает сразу несколько задач:

Важные рекомендации по безопасности данных

При внесении подобных изменений важно учитывать риск дублирования записей. Так как движения теперь формируются на статусе Начат, необходимо добавить проверку, чтобы при последующем переходе в статус Завершен система не пыталась оприходовать продукцию повторно. Добавьте в код проверку:

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

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

← На главную