Как реализовать жесткий контроль остатков в разрезе упаковок в 1С:ERP

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

В типовой конфигурации 1С:ERP (и аналогично в 1С:КА и 1С:УТ) часто возникает классическая методическая коллизия: программа позволяет вести учет в упаковках, но при этом «видит» остатки в базовых единицах хранения. Рассмотрим ситуацию: мы выпустили продукцию в коробках по 5 штук. На складе числится 1 коробка. Система понимает, что это 5 штук, и позволяет менеджеру отгрузить 1, 2 или 3 штуки, фактически «вскрывая» упаковку. Разберем подробно, почему так происходит и какими способами можно добиться запрета на деление упаковок.

Почему стандартный механизм упаковок не блокирует списание?

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

Вариант 1. Использование характеристик номенклатуры

Это самый надежный способ разделения остатков без привлечения программиста. Рассмотрим его пошагово:

  1. Включаем характеристики: В карточке номенклатуры или вида номенклатуры устанавливаем флаг Использовать характеристики.
  2. Создаем характеристики по типу упаковки: Например, «Упаковка 5 шт.», «Упаковка 10 шт.», «Поштучно».
  3. Настраиваем штрихкоды: Система позволяет присвоить индивидуальный штрихкод каждой комбинации Номенклатура + Характеристика. Таким образом, при сканировании штрихкода коробки в документ будет подтягиваться именно характеристика «Упаковка 5 шт.».

Преимущества: Контроль остатков в 1С всегда ведется в разрезе характеристик. Если на складе числится 2 коробки (характеристика «Упаковка 5 шт.»), менеджер не сможет отгрузить 3 штуки из этой характеристики, так как остаток по ней неделим. Программа выдаст ошибку о нехватке остатка.

Недостатки: Потребуется оформлять документы Сборка (разборка) товаров, если вам все же понадобится вскрыть коробку и продать товар поштучно.

Вариант 2. Разные карточки номенклатуры

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

В этом случае контроль будет абсолютным. Однако возникает проблема со штрихкодированием, описанная в обсуждении: 1С не позволяет просто так присвоить один и тот же штрихкод разным карточкам номенклатуры (если это не реализовано через механизм Штрихкоды упаковок). Также усложняется отчетность по продажам одного и того же товара, представленного разными позициями.

Вариант 3. Использование адресного хранения (WMS)

Посмотрим на возможности адресного склада. При включении ячеистого хранения (Использовать для хранения остатков номенклатуры) остатки действительно начинают фиксироваться в разрезе упаковок в регистре РазмещениеНоменклатурыПоЯчейкам.

Однако, как справедливо отметила техподдержка 1С, даже WMS-модуль по умолчанию настроен на обеспечение отгрузки любой ценой. Если в заказе указано 3 штуки, а на складе только коробка 5 штук, система при создании Задания на отбор предложит кладовщику выполнить операцию Распаковать.

Чтобы минимизировать такие случаи, необходимо:

  1. Настроить Правила размещения товаров так, чтобы приоритет отдавался целым упаковкам.
  2. Установить в настройках склада запрет на разукомплектацию (хотя жесткого флажка «Запретить вскрывать» нет, это регулируется через алгоритмы отбора).

Вариант 4. Серийный учет (Учет экземпляров)

Проанализируем нестандартный подход через серии. Если настроить политику учета серий Учет экземпляров товаров и присваивать серию каждой упаковке (коробке), то программа будет требовать указания конкретной серии при отгрузке.

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

Вариант 5. Программная доработка (Расширение)

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

Необходимо вклиниться в процедуру ОбработкаПроверкиЗаполнения или ПередЗаписью документов отгрузки (Заказ клиента, Реализация товаров и услуг). Алгоритм должен проверять кратность количества:


// Пример логики проверки в расширении
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
    Если ЗначениеЗаполнено(СтрокаТЧ.Упаковка) Тогда
        Коэффициент = СтрокаТЧ.Упаковка.Коэффициент;
        Если (СтрокаТЧ.Количество % Коэффициент) <> 0 Тогда
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Товар " + СтрокаТЧ.Номенклатура + " отгружается только кратно упаковке (" + Коэффициент + " шт.)!";
            Сообщение.Поле = "Товары[" + (СтрокаТЧ.НомерСтроки - 1) + "].Количество";
            Сообщение.Сообщить();
            Отказ = Истина;
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

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

Резюме и рекомендации

Подведем итоги нашего анализа. Выбор метода зависит от масштаба предприятия:

← На главную