Как в 1С хранить и учитывать один и тот же товар в разных неделимых упаковках?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

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

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

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

Рассмотрим, что происходит в регистрах накопления при стандартном учете:

  1. Все остатки товаров в регистре ТоварыНаСкладах хранятся строго в базовой единице измерения (в штуках).
  2. Если на склад поступила 1 коробка по 210 шт., программа запишет в регистр приход: 210 штук. Она «забудет», что это была именно коробка на 210 штук.
  3. Когда менеджер оформляет заказ клиента на 2 коробки по 100 шт., система пересчитывает потребность в штуки (200 шт.) и проверяет свободный остаток. Так как на складе числится 210 штук, программа без проблем проведет документ.
  4. При попытке физической отгрузки кладовщик столкнется с проблемой: на складе лежит только одна коробка на 210 шт., а выдать нужно две по 100 шт., которых физически не существует.

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

Решение №1: Использование характеристик номенклатуры (Классический подход)

Использование характеристик позволяет жестко разделить остатки одного товара в регистре накопления. Каждая характеристика будет выступать в роли конкретного формата упаковки.

Рассмотрим по шагам, как настроить данный механизм:

  1. Перейдем в раздел НСИ и администрирование — Настройка НСИ и разделов — Номенклатура — Разрезы учета и убедимся, что включена опция Характеристики номенклатуры.
  2. Откроем справочник Виды номенклатуры и создадим новый вид или отредактируем существующий. В настройках разрезов учета установим флаг Использовать характеристики. Чтобы не перегружать справочник, выберем вариант использования Общие для этого вида номенклатуры.
  3. В созданном списке характеристик добавим две позиции: «Коробка 100 шт.» и «Коробка 210 шт.».
  4. Для каждого товара этого вида настроим индивидуальные штрихкоды для каждой характеристики, чтобы склад мог безошибочно сканировать товар при приемке и отгрузке.

Преимущества решения:

Недостатки решения:

Решение №2: Учет по сериям с политикой контроля остатков (Гибкий подход)

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

Проанализируем процесс настройки серийного учета для контроля неделимости коробок:

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

При поступлении товара на склад кладовщик указывает, сколько штук пришло по серии «Коробка 100» (например, 500 штук, что эквивалентно 5 коробкам) и по серии «Коробка 210» (например, 420 штук, что равно 2 коробкам). Менеджер при подборе товара в заказ видит остатки в разрезе этих серий и осуществляет резервирование строго под конкретную серию.

Решение №3: Внедрение адресного хранения на складе (WMS)

Адресное хранение (WMS-склад) — это единственный типовой механизм 1С, который изначально умеет учитывать остатки товаров в разрезе физических упаковок на уровне регистров хранения в ячейках (регистр ТоварыВЯчейках).

Выясним причину, почему этот метод гарантирует стопроцентную точность:

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

Сравнительный анализ решений

Для наглядности сопоставим рассмотренные методы учета неделимых упаковок в таблице:

Критерий сравнения Характеристики номенклатуры Учет по сериям (Управление остатками) Адресный склад (WMS)
Сложность первоначальной настройки Низкая (настраивается за 15 минут) Средняя (требуется настройка политик серий) Высокая (требуется топология склада, ордерная схема)
Удобство для менеджера продаж Среднее (выбор характеристики в строке) Высокое (серия выбирается в отдельном окне подбора) Высокое (менеджер не думает о размещении, система решает сама)
Жесткость контроля неделимости Абсолютная (контроль на уровне регистров) Абсолютная (контроль на уровне серийных остатков) Абсолютная (контроль на уровне складских ячеек)
Влияние на обмен с «1С:Бухгалтерия» Отсутствует (схлопывается по номенклатуре) Отсутствует (серии не выгружаются в БП) Отсутствует (ордерные документы не влияют на БП)

Программное решение: Доработка контроля кратности через расширение

Если бизнес-процессы компании категорически не приемлют использование характеристик или серий (например, менеджеры привыкли работать исключительно с «чистой» номенклатурой), мы можем пойти по пути кастомизации системы.

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

Ниже представлен пример программного кода, который можно внедрить в модуль менеджера документа РеализацияТоваровУслуг или в подписку на событие ОбработкаПроведения:


// Процедура проверяет кратность отгружаемого количества товара выбранной упаковке
Процедура ПроверитьКратностьУпаковокПриПроведении(Источник, Отказ, РежимПроведения) Экспорт

    Для Каждого СтрокаТЧ Из Источник.Товары Цикл
        
        // Проверяем, заполнена ли упаковка в строке документа
        Если ЗначениеЗаполнено(СтрокаТЧ.Упаковка) Тогда
            
            КоэффициентУпаковки = СтрокаТЧ.Упаковка.Коэффициент;
            КоличествоВБазовыхЕдиницах = СтрокаТЧ.КоличествоУпаковок * КоэффициентУпаковки;
            
            // Вычисляем остаток от деления общего количества на коэффициент упаковки
            ОстатокОтДеления = КоличествоВБазовыхЕдиницах % КоэффициентУпаковки;
            
            Если ОстатокОтДеления <> 0 Тогда
                
                // Формируем понятное сообщение для пользователя
                ШаблонСообщения = НСтр("ru = 'Ошибка в строке %1: Товар ""%2"" поставляется в неделимых упаковках по %3 шт. Дробление коробки запрещено! Измените количество.'");
                ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    ШаблонСообщения, 
                    СтрокаТЧ.НомерСтроки, 
                    СтрокаТЧ.Номенклатура.Наименование, 
                    КоэффициентУпаковки
                );
                
                // Выводим сообщение на экран и блокируем проведение
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , , , Отказ);
                Отказ = Истина;
                
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЦикла;

КонецПроцедуры

Этот код анализирует каждую позицию в спецификации документа. Если менеджер пытается отгрузить, например, 150 штук товара, у которого выбрана упаковка «Коробка 100» (коэффициент 100), система моментально заблокирует проведение документа и выдаст предупреждение. Это гарантирует, что со склада уйдут только целые, неповрежденные заводские коробки.

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

Подводя итоги нашего анализа, дадим практические рекомендации по выбору архитектуры учета:

  1. Если вам требуется быстрое, надежное и полностью типовое решение без программирования — используйте Характеристики номенклатуры. Создайте один набор общих характеристик под форматы коробок для всего вида номенклатуры, и вы забудете о проблемах пересортицы на складе.
  2. Если вы хотите более эргономичный интерфейс для менеджеров, при котором справочник номенклатуры остается чистым, настройте Учет по сериям с политикой управления остатками. Это позволит контролировать неделимость упаковок в момент резервирования товара.
  3. Если ваше предприятие планирует масштабное развитие, автоматизацию работы кладовщиков с терминалами сбора данных (ТСД) — внедряйте Адресное хранение. В этом случае учет упаковок будет происходить органично на уровне складских ячеек.
← На главную