Как организовать учет товаров в разных упаковках в 1С:УПП 1.3, если характеристики уже заняты?

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

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

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

Способ 1: Использование механизма «Мест» в документах

В УПП 1.3 существует малозаметный, но полезный механизм учета мест. В табличных частях большинства торговых документов (РеализацияТоваровУслуг, ПоступлениеТоваровУслуг, ЗаказПокупателя) есть поля Единица мест и Количество мест. По умолчанию они могут быть скрыты в форме, но их легко вывести через «Настройку списка».

Рассмотрим, как это работает на практике:

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

Важный нюанс: Этот способ позволяет печатать накладные в коробах, но в регистре ТоварыНаСкладах остатки все равно будут храниться в одной общей единице. Если нам критично видеть на складе именно разделение «сколько коробов по 3 и сколько по 5», этот метод потребует дополнения в виде специализированных отчетов.

Способ 2: Использование серий номенклатуры

Если характеристики у нас заняты под цвет и размер, а механизм СерииНоменклатуры не используется, мы можем задействовать его для идентификации упаковки. Серия в УПП — это дополнительный разрез учета остатков на складе.

Разберем алгоритм внедрения:

  1. В настройках учета номенклатуры включаем «Вести учет по сериям».
  2. Создаем серии с наименованиями «Короб 3 шт» и «Короб 5 шт».
  3. При поступлении товара на склад (или выпуске из производства) мы четко указываем, на какую серию (упаковку) приходуется товар.

Этот метод позволяет видеть остатки в разрезе коробов в любом стандартном отчете (например, в «Ведомости по товарам на складах»). Мы увидим: Товар А (Красный, р.42) — Серия «Короб 3 шт» — 15 штук (что логически означает 5 полных коробов).

Способ 3: Доработка регистра «Товары на складах» (для программистов)

Если требуется глубокая автоматизация и контроль, наиболее надежным способом является модификация структуры данных. Мы можем добавить в регистр накопления ТоварыНаСкладах новое измерение — Упаковка (тип: СправочникСсылка.ЕдиницыИзмерения).

Проанализируем, какие изменения потребуются в коде:

  1. Добавляем измерение в регистр.
  2. Модифицируем проведение документов, чтобы при записи движений в это измерение попадала ссылка на Единицу мест из табличной части.
  3. В отчетах на базе СКД добавляем группировку по новой колонке.

Пример кода для пересчета количества при проведении может выглядеть следующим образом:


// В модуле проведения документа
Для Каждого СтрокаТЧ Из Товары Цикл
    Движение = Движения.ТоварыНаСкладах.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Номенклатура = СтрокаТЧ.Номенклатура;
    Движение.ХарактеристикаНоменклатуры = СтрокаТЧ.ХарактеристикаНоменклатуры;
    // Наше новое измерение
    Движение.Упаковка = СтрокаТЧ.ЕдиницаИзмеренияМест; 
    Движение.Количество = СтрокаТЧ.Количество;
    // ... остальные поля
КонецЦикла;

Этот подход исключает появление дробных коробов в аналитике, так как мы фиксируем конкретную упаковку в момент совершения хозяйственной операции.

Способ 4: Метод виртуальных складов

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

При перемещении товара между такими складами мы фактически выполняем операцию «перепаковки». Плюс этого метода в том, что остатки всегда прозрачны: заглянув в остатки по конкретному складу, кладовщик точно знает, какую тару ему брать для отгрузки. Минус — необходимость делать документы ПеремещениеТоваров при каждой смене типа упаковки.

Способ 5: Внешние отчеты с логикой «Виртуальной упаковки»

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

  1. Отчет получает остаток товара в штуках (например, 17 шт.).
  2. Из справочника единиц измерения выбирается приоритетная упаковка (например, самый большой короб — 5 шт.).
  3. Применяется алгоритм целочисленного деления.
    
    // Пример алгоритма для отчета
    ОбщийОстаток = 17;
    КратностьКороба = 5;
    
    КолВоЦелыхКоробов = Цел(ОбщийОстаток / КратностьКороба); // Результат: 3
    ОстатокШтук = ОбщийОстаток % КратностьКороба; // Результат: 2
    
    Сообщить("На складе: " + КолВоЦелыхКоробов + " кор. по 5 шт. и " + ОстатокШтук + " шт. отдельно");
    

    Такой отчет поможет при инвентаризации и планировании логистики (загрузки машин), не требуя при этом сложной перестройки всего учета в системе.

    Рекомендации по выбору решения

    Подводя итог, выбор метода зависит от ваших приоритетов:

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

    Помните, что УПП 1.3 — система с жесткой архитектурой, и любое изменение в ключевых регистрах (таких как ТоварыНаСкладах) требует тщательного тестирования на копии базы, особенно в части закрытия месяца и расчета себестоимости.

← На главную