В оптовой торговле часто возникает задача строгого учета товаров в разрезе заводских упаковок. Например, когда товар приходит в коробках по 10 или 20 штук, и менеджеры не должны иметь возможности «разбить» коробку в заказе клиента. Типовая конфигурация 1С:Управление торговлей 11.4 предлагает несколько путей решения этой задачи: от использования типового функционала склада до программных доработок. Разберем каждый из вариантов подробнее, проанализируем их плюсы и минусы, а также выясним, как реализовать автоматический контроль кратности.
Это наиболее корректный с точки зрения методологии 1С способ учета конкретных упаковок. В системе 1С:УТ 11 остатки товаров в общем регистре хранятся в базовых единицах измерения (например, в штуках). Однако механизм WMS (адресного хранения) позволяет видеть, в каких именно упаковках товар распределен по ячейкам.
Рассмотрим по шагам, как это работает:
Нюанс: Если использовать склад только как «справочный», система не заблокирует списание «не тех» упаковок. Только полноценный адресный склад жестко контролирует наличие конкретных объектов в ячейках. Основной минус этого подхода — высокая трудоемкость ведения складского учета и необходимость использования ТСД (терминалов сбора данных).
Если внедрение полноценного WMS-склада кажется избыточным, можно воспользоваться механизмом характеристик. В данном случае для каждой номенклатуры создаются характеристики, соответствующие размеру упаковки (например, «Коробка 10 шт», «Коробка 20 шт»).
Проанализируем преимущества этого метода:
ВедомостьТоварыНаСкладах, вы будете видеть остатки в разрезе каждой характеристики.Однако помните, что этот способ «множит сущности». Если у вас тысячи позиций и у каждой по 5 видов упаковок, справочник характеристик станет очень объемным, что может усложнить подбор товара в документах.
Чтобы менеджеры «случайно» не продали 4 коробки и 5 лишних штук, когда товар должен отгружаться только целыми упаковками, необходимо внедрить проверку кратности. Рассмотрим, как это реализовать с помощью расширения конфигурации, не снимая основную конфигурацию с поддержки.
Нам потребуется перехватить событие изменения количества в строке документа или проверку перед записью документа. Основная логика заключается в проверке остатка от деления общего количества на коэффициент упаковки.
Для реализации проверки в форме документа ЗаказКлиента или РеализацияТоваровУслуг можно использовать следующий алгоритм:
// Пример логики проверки кратности в расширении
&НаКлиенте
Процедура ТЧТоварыКоличествоПриИзмененииПосле(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
// Получаем коэффициент упаковки
Коэффициент = ТекущаяСтрока.Упаковка.Коэффициент;
Если Коэффициент > 0 Тогда
ОстатокОтДеления = ТекущаяСтрока.Количество % Коэффициент;
Если ОстатокОтДеления <> 0 Тогда
Сообщить("Внимание! Количество должно быть кратно размеру упаковки (" + Коэффициент + ")");
// Здесь можно либо обнулить количество, либо округлить его
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Разберем подробнее, где лучше разместить проверку:
ПриИзменении: Дает мгновенную обратную связь менеджеру прямо в момент ввода данных. Это удобно, но проверку легко обойти, если данные загружаются из внешних источников (например, из Excel).ПередЗаписью в модуле объекта: Это более надежный метод. Проанализируем ситуацию: даже если менеджер загрузил заказ из файла, при попытке провести документ система выполнит проверку и выдаст ошибку, если условия кратности нарушены.В 1С:УТ 11.4 в карточке номенклатуры можно настроить «Индивидуальный набор упаковок». Это позволяет задать список допустимых упаковок для конкретного товара. Выясним, как это помогает в контроле:
Также стоит рассмотреть вариант использования Наборов. Набор — это виртуальная сущность. Вы можете создать позицию «Набор: Коробка 50 шт», в состав которого входит 50 единиц основного товара. При продаже набора со склада будут списываться именно штуки, но в печатных формах и в заказе менеджер будет оперировать «Коробками».
Выбор метода зависит от ваших бизнес-процессов:
% (остаток от деления) по коэффициенту упаковки.Для автоматизации загрузки заказов из Excel мы рекомендуем в коде обработки загрузки добавить функцию автоматического округления количества до ближайшей целой упаковки или подбора подходящей упаковки в зависимости от заказанного объема. Это позволит избежать большинства конфликтов при проведении документов.