Мы сталкиваемся с распространенной ситуацией в производственном учете 1С:ERP, когда в отчете «Ведомость по товарам на складах» появляются отрицательные остатки полуфабрикатов. Это происходит даже в тех случаях, когда мы строго соблюдаем хронологию выполнения этапов производства: выпуск полуфабриката происходит раньше, чем его потребление, но все операции выполняются в один и тот же день. Выясним причину этой методологической ошибки или штатного поведения системы и рассмотрим возможные пути решения.
Давайте подробно рассмотрим сценарий, который приводит к появлению отрицательных остатков. Мы работаем в 1С:ERP версии 2.5.12, и наш производственный процесс включает два этапа, выполняемых в один день:
Внутри документов Этап производства мы четко устанавливаем времена:
Полуфабрикат передается в кладовую, что означает, что отдельные документы перемещения не оформляются, и он сразу становится доступным для последующего этапа. Этапы формируются на основании Заказа на производство, где полуфабрикат и готовая продукция расположены в разных строках, что логично определяет их последовательность.
Несмотря на кажущуюся идеальную настройку временной последовательности, в отчете «Ведомость по товарам на складах» мы наблюдаем отрицательные остатки полуфабриката. Причиной этому становится критически важное наблюдение: в движениях документов Этап производства по регистрам системы почти все времена устанавливаются как 0:00:00. Это означает, что, хотя в пользовательском интерфейсе документа мы видим корректное время, на уровне базы данных, где формируются движения для отчетов, система не учитывает внутридневную детализацию времени.
Когда выпуск и потребление происходят в один день, и оба движения по регистру записываются с одинаковым временем (0:00:00), система теряет хронологическую последовательность. В результате, при формировании отчета, движение по потреблению (минус) может быть учтено раньше, чем движение по выпуску (плюс), что и приводит к появлению отрицательных остатков. Мы даже можем обнаружить, что аналогичная ситуация воспроизводится в демо-базе 1С:ERP, что указывает на возможное штатное поведение системы в определенных сценариях внутридневного учета полуфабрикатов.
Прежде чем переходить к обходным путям, убедимся, что наши базовые настройки производства соответствуют требованиям системы.
Рассмотрим, как настроены спецификации для полуфабрикатов и готовой продукции. Это ключевой момент, определяющий правила производства.
Важно: Убедитесь, что для обоих этапов используется одно и то же подразделение производства (например, ПДО) и одна и та же кладовая ПДО. Это минимизирует риски, связанные с межскладскими или межподразделенческими перемещениями, которые могут усложнить хронологию.
Хотя Заказ на производство формируется не по плану, а путем ручного копирования номенклатуры и полуфабрикатов из плана, это не является причиной проблемы с временем движений. Главное — это корректность установки времени в самих документах Этап производства.
Этап производства мы должны еще раз убедиться, что времена начала и завершения этапов установлены в правильной логической последовательности: выпуск полуфабриката в 8:00, а потребление полуфабриката и выпуск готовой продукции в 8:30.Для более глубокого понимания проблемы, мы должны учитывать, как 1С:ERP обрабатывает движения документов на уровне регистров и как это связано с регламентными заданиями.
В 1С:ERP бухгалтерские проводки формируются не непосредственно в момент проведения документа, как это может быть в 1С:Бухгалтерии. Они создаются при запуске специального регламентного задания под названием Отражение документов в регламентированном учете. Это задание может быть настроено на определенную периодичность (например, раз в час, раз в день). Хотя это больше относится к бухгалтерскому учету, оно демонстрирует, что система часто обрабатывает данные асинхронно, что может влиять на общую хронологию учета.
Движения по списанию материалов, особенно те, что влияют на себестоимость, отражаются окончательно только после выполнения операции Расчет себестоимости, которая обычно запускается в рамках процедур закрытия месяца. Если отчеты формируются до полного расчета себестоимости, временные отрицательные остатки могут быть более выраженными или дольше сохраняться.
Суть проблемы заключается в том, что 1С:ERP, в некоторых своих регистрах, может фиксировать движения с временем 0:00:00, игнорируя более точное время, указанное в самом документе Этап производства. Если все операции за один день записываются с одним и тем же временем в регистрах, то система теряет возможность корректно упорядочить события внутри этого дня. Это приводит к тому, что потребление может быть зафиксировано раньше выпуска, создавая минуса.
Поскольку проблема связана с системной обработкой времени в регистрах, мы можем рассмотреть несколько подходов для ее устранения или минимизации.
Это самый надежный и часто рекомендуемый способ избежать внутридневных отрицательных остатков, если это возможно в вашем производственном процессе:
При таком подходе даты регистраторов будут различаться, и система сможет корректно установить хронологию движений, исключив проблему с 0:00:00. Однако это решение может быть неприемлемо, если ваш производственный цикл не допускает разнесения операций на разные дни.
В сообщении упоминается, что полуфабрикат передается в кладовую «без документов». Рассмотрим возможность использования явного документа Передача выпущенной продукции:
Передача выпущенной продукции. Этот документ явно зафиксирует факт оприходования полуфабриката на склад/в кладовую.Использование отдельного документа Передача выпущенной продукции может помочь более явно разделить операции выпуска и потребления, и, возможно, повлиять на время фиксации движений в регистрах, сделав его более соответствующим реальному времени проведения документа. Это стоит проверить на вашей базе.
Мы уже выяснили, что стандартные поля `Регистратор.Дата` и `Регистратор.ДатаПроизводства` в отчете `Ведомость по товарам на складах` показывают `0:00:00`. Рассмотрим, как можно улучшить анализ отчета или его поведение.
Этап производства и использовал его для сортировки движений внутри дня. Это уже является изменением типовой конфигурации и требует квалификации разработчика.Убедимся, что функционал контроля отрицательных остатков в 1С:ERP активен. Хотя он не предотвращает появление минусов, он сигнализирует о них, что позволяет своевременно реагировать. Этот контроль важен для корректной работы механизма «Обеспечение потребностей», который формирует заказы поставщикам или планы производства.
Проблема с отрицательными остатками, возникающая из-за фиксации движений по регистрам со временем 0:00:00, является характерной для 1С:ERP в сценариях, где выпуск и потребление полуфабрикатов происходят в один день. Эта особенность системы требует внимательного подхода к организации производственного учета.
Передача выпущенной продукции после этапа выпуска полуфабриката явно зафиксировать его на складе и таким образом повлиять на хронологию движений.Этап производства.Ведомость по товарам на складах и сверять его с фактическими остатками, чтобы своевременно выявлять и устранять проблемы.Работая совместно, мы можем найти оптимальное решение для вашей производственной модели и обеспечить корректный учет материалов в 1С:ERP.