В процессе работы с 1С:ERP пользователи часто сталкиваются с жесткой регламентацией производственного цикла. Одной из распространенных задач является необходимость оприходования готовой продукции на склад до момента финансового закрытия этапа производства бухгалтерией. Разберем, почему система ограничивает такие действия и как адаптировать её под нужды оперативного учета.
В конфигурации 1С:ERP документ Приходный ордер на товары является складским документом, который всегда создается на основании распоряжения. При использовании позаказной схемы производства таким распоряжением выступает Этап производства. Типовая логика системы настроена так, что записи в регистр Товары к поступлению (которые «подтягивает» складской ордер) формируются только тогда, когда этап переходит в статус Завершен.
Проблема возникает, когда производство и склад работают непрерывно, а бухгалтерия закрывает документы с задержкой. Попытка ввести приходный ордер напрямую к Заказу на производство без учета этапов противоречит методологии конфигурации, так как заказ является лишь плановым документом, а не фактическим подтверждением выпуска.
Вместо создания внешних обработок для заполнения документов, что может усложнить поддержку системы, эффективнее будет изменить логику самого Этапа производства. Суть метода заключается в том, чтобы заставить систему формировать движения по регистру Товары к поступлению при переходе этапа в более ранние статусы, например, Начат или К выполнению.
Шаги по реализации данного подхода:
Расширение конфигурации для внесения изменений.Этап производства, отвечающий за проведение.Товары к поступлению. Обычно она жестко завязана на проверку статуса Завершен.Начат или Сформирован.Примерная концепция изменения логики в модуле может выглядеть следующим образом:
Если Этап.Статус = Перечисления.СтатусыЭтапов.Начат Тогда
// Формируем записи в регистр ТоварыКПоступлению
Движение = Движения.ТоварыКПоступлению.Добавить();
Движение.Период = ТекущаяДата();
Движение.Номенклатура = Этап.ВыпускаемаяПродукция.Номенклатура;
// Дополнительные параметры заполнения
КонецЕсли;
Такой подход решает сразу несколько задач:
При внесении подобных изменений важно учитывать риск дублирования записей. Так как движения теперь формируются на статусе Начат, необходимо добавить проверку, чтобы при последующем переходе в статус Завершен система не пыталась оприходовать продукцию повторно. Добавьте в код проверку:
Рекомендация: Всегда проверяйте текущее состояние регистра для конкретного Этапа производства перед записью новых движений. Если движения уже существуют, их нужно либо корректировать, либо пропускать формирование новых.
Использование этого метода превращает Этап производства в гибкий инструмент, который учитывает реальные бизнес-процессы вашего предприятия, где склад и производство опережают бухгалтерскую отчетность. Помните, что любые изменения в логике проведения должны быть протестированы на копии базы данных.