В процессе автоматизации складского учета в 1С:ERP (версии 2.1, 2.4, 2.5) часто возникает классический конфликт интересов между офисом и складом. Менеджеры, создавая Заказ на перемещение или Заказ клиента, хотят зарезервировать определенное количество товара, чтобы гарантировать его наличие. Однако они не знают и не должны знать, какой именно серийный номер товара лежит сверху на паллете. В то же время кладовщик при фактической отгрузке должен иметь возможность указать конкретную серию по факту отбора. Рассмотрим подробнее, почему система иногда не позволяет провести документ без указания серии и как это исправить стандартными средствами.
Для начала разберем внутренние механизмы конфигурации. Когда в программе включен серийный учет с политикой "Учет остатков по сериям", система начинает отслеживать товар в разрезе этой аналитики. Основная проверка остатков при проведении документов обычно происходит по регистру накопления ТоварыНаСкладах. В этом регистре серия является обязательным измерением. Если мы пытаемся провести Заказ на перемещение с пустым полем серии, запрос к базе данных ищет остатки именно с "пустой" серией. Естественно, таких остатков нет, так как весь товар на складе оприходован с конкретными серийными номерами. В результате система выдает ошибку о нехватке товара.
Проанализируем наиболее эффективный и простой способ решения проблемы, предложенный пользователями. Он заключается в переключении механизма проверки остатков. В 1С:ERP существует специальный регистр СвободныеОстатки, который предназначен именно для целей обеспечения потребностей. В отличие от регистра ТоварыНаСкладах, учет в нем может вестись без разреза по сериям, если это не переопределено специфическими настройками.
Выполним следующие шаги:
После включения этой опции система при проведении заказов с действием "Резервировать на складе" начнет обращаться к данным обеспечения. Поскольку в регистре обеспечения серии зачастую не учитываются, проверка остатков по пустому значению серии в заказе будет проходить успешно, ориентируясь только на общее количество товара на складе. Это позволит менеджеру забронировать товар, а кладовщику — указать серии позже.
Рассмотрим подробнее второй важный аспект — Политику учета серий. Это "сердце" серийного учета, которое определяет, в какой момент система потребует заполнения данных. Если выбрана жесткая политика "Учет остатков по сериям", система будет требовать серию везде. Однако в типовом решении предусмотрены более гибкие варианты.
Разберем, как настроить политику, чтобы разделить моменты планирования и отгрузки:
При такой настройке Заказ на перемещение будет проводиться без заполнения колонки "Серия". Резерв будет установлен на общее количество. Когда дело дойдет до реализации или перемещения, система потребует указать серию уже в исполнительном документе.
Выясним, как ордерный документооборот помогает в данной ситуации. Если склад настроен как Ордерный склад при отгрузке, то процесс физического списания и процесс финансового учета (оформление накладных) разделяются. Это идеальный сценарий для работы с сериями:
Заказ, где указывает только количество и ставит действие "Резервировать". Серии не указываются.Перемещение товаров. В нем серии также могут оставаться пустыми, если настроена соответствующая политика.Расходный ордер на товары. Вот здесь, используя терминал сбора данных (ТСД) или форму подбора серий, он сканирует конкретные штрихкоды упаковок. Именно в этот момент серия записывается в систему и списывается с остатков склада.Такое разделение ответственности позволяет избежать ошибок ввода данных на этапе планирования.
Если же типовые настройки по каким-то причинам не подходят (например, используется сильно кастомизированная конфигурация), программисты могут рассмотреть возможность корректировки запроса в модулях проведения. Проанализируем, где именно происходит проверка остатков.
Обычно это происходит в процедурах контроля остатков, где формируется запрос к виртуальным таблицам Остатки. Рассмотрим пример логики, которую можно внедрить (в виде описания алгоритма):
При формировании структуры отбора для контроля остатков необходимо проверять, заполнена ли серия в табличной части документа. Если Серия пустая, то из условий запроса (предложение ГДЕ) нужно исключать фильтр по измерению Серия, либо заменять его на проверку по всем сериям данного товара. Однако стоит помнить, что это "тяжелый" путь, который может привести к проблемам при обновлении конфигурации. Настоятельно рекомендуется использовать первый способ с настройкой контроля обеспечения.
Рассмотрим ситуацию, когда даже при включенном контроле обеспечения система продолжает требовать серию. Это может произойти, если в функциональных опциях включена константа УчитыватьСерииВСвободныхОстатках. Проверьте настройки параметров учета:
НСИ и администрирование — Настройка НСИ и разделов — Склад и доставка — Серии товаров
Если там установлена галочка, заставляющая систему учитывать серии в свободном остатке, то резервирование без серий станет невозможным, так как свободный остаток сам по себе станет "серийным". Для реализации вашей задачи эта опция должна быть выключена.
Подводя итог, можно сказать, что для реализации резервирования без указания серий в 1С:ERP не требуется доработка кода. Достаточно:
Расходном ордере независимо от менеджера.Такой подход обеспечит гибкость работы отдела продаж и точность складского учета по сериям.