В оптовой и розничной торговле часто возникает ситуация, когда один и тот же товар поступает на склад и продается в разных вариантах упаковок. Например, это могут быть коробки по 100 штук и коробки по 210 штук. При этом упаковки являются неделимыми: менеджер не имеет права вскрыть коробку на 210 штук, чтобы отгрузить клиенту две коробки по 100 штук. В системе необходимо обеспечить жесткий контроль остатков именно в разрезе упаковочных мест, чтобы менеджеры в любой момент видели точный баланс: сколько на складе коробок каждого формата.
В этой статье мы подробно разберем, почему стандартный механизм упаковок 1С не решает эту задачу автоматически, проанализируем альтернативные варианты и настроим учет по шагам с использованием типового функционала конфигураций 1С:Управление торговлей, 1С:ERP и 1С:Комплексная автоматизация.
В любой современной конфигурации 1С существует справочник УпаковкиНоменклатуры, где для каждого товара можно задать коэффициенты пересчета (например, «Коробка 100» с коэффициентом 100 и «Коробка 210» с коэффициентом 210). Однако на обычном (не адресном) складе этот механизм работает исключительно как математический калькулятор.
Рассмотрим, что происходит в регистрах накопления при стандартном учете:
ТоварыНаСкладах хранятся строго в базовой единице измерения (в штуках).Чтобы избежать подобных коллизий, нам необходимо привязать остатки к конкретным физическим сущностям. Рассмотрим три наиболее эффективных способа решения этой задачи.
Использование характеристик позволяет жестко разделить остатки одного товара в регистре накопления. Каждая характеристика будет выступать в роли конкретного формата упаковки.
Рассмотрим по шагам, как настроить данный механизм:
Преимущества решения:
1С:Бухгалтерия характеристики схлопываются, и бухгалтерия получает чистую аналитику по номенклатуре и общему количеству штук, как ей и требуется.Недостатки решения:
Если характеристики кажутся вам неудобными или они уже заняты под другие нужды (например, под цвета или размеры), отличной альтернативой является механизм серийного учета. Серия в 1С может выступать в роли идентификатора упаковки.
Проанализируем процесс настройки серийного учета для контроля неделимости коробок:
При поступлении товара на склад кладовщик указывает, сколько штук пришло по серии «Коробка 100» (например, 500 штук, что эквивалентно 5 коробкам) и по серии «Коробка 210» (например, 420 штук, что равно 2 коробкам). Менеджер при подборе товара в заказ видит остатки в разрезе этих серий и осуществляет резервирование строго под конкретную серию.
Адресное хранение (WMS-склад) — это единственный типовой механизм 1С, который изначально умеет учитывать остатки товаров в разрезе физических упаковок на уровне регистров хранения в ячейках (регистр ТоварыВЯчейках).
Выясним причину, почему этот метод гарантирует стопроцентную точность:
Несмотря на технологическое совершенство, данный метод является избыточным для небольших компаний, так как требует ведения ордерного склада, детального описания топологии ячеек и жесткой дисциплины работы складского персонала.
Для наглядности сопоставим рассмотренные методы учета неделимых упаковок в таблице:
| Критерий сравнения | Характеристики номенклатуры | Учет по сериям (Управление остатками) | Адресный склад (WMS) |
|---|---|---|---|
| Сложность первоначальной настройки | Низкая (настраивается за 15 минут) | Средняя (требуется настройка политик серий) | Высокая (требуется топология склада, ордерная схема) |
| Удобство для менеджера продаж | Среднее (выбор характеристики в строке) | Высокое (серия выбирается в отдельном окне подбора) | Высокое (менеджер не думает о размещении, система решает сама) |
| Жесткость контроля неделимости | Абсолютная (контроль на уровне регистров) | Абсолютная (контроль на уровне серийных остатков) | Абсолютная (контроль на уровне складских ячеек) |
| Влияние на обмен с «1С:Бухгалтерия» | Отсутствует (схлопывается по номенклатуре) | Отсутствует (серии не выгружаются в БП) | Отсутствует (ордерные документы не влияют на БП) |
Если бизнес-процессы компании категорически не приемлют использование характеристик или серий (например, менеджеры привыкли работать исключительно с «чистой» номенклатурой), мы можем пойти по пути кастомизации системы.
Рассмотрим вариант создания небольшого расширения конфигурации. Мы оставим стандартный механизм упаковок (коэффициентов), но добавим программную проверку при проведении документов отгрузки. Программа будет анализировать свободный остаток и запрещать списание количества, некратного доступным упаковкам.
Ниже представлен пример программного кода, который можно внедрить в модуль менеджера документа РеализацияТоваровУслуг или в подписку на событие ОбработкаПроведения:
// Процедура проверяет кратность отгружаемого количества товара выбранной упаковке
Процедура ПроверитьКратностьУпаковокПриПроведении(Источник, Отказ, РежимПроведения) Экспорт
Для Каждого СтрокаТЧ Из Источник.Товары Цикл
// Проверяем, заполнена ли упаковка в строке документа
Если ЗначениеЗаполнено(СтрокаТЧ.Упаковка) Тогда
КоэффициентУпаковки = СтрокаТЧ.Упаковка.Коэффициент;
КоличествоВБазовыхЕдиницах = СтрокаТЧ.КоличествоУпаковок * КоэффициентУпаковки;
// Вычисляем остаток от деления общего количества на коэффициент упаковки
ОстатокОтДеления = КоличествоВБазовыхЕдиницах % КоэффициентУпаковки;
Если ОстатокОтДеления <> 0 Тогда
// Формируем понятное сообщение для пользователя
ШаблонСообщения = НСтр("ru = 'Ошибка в строке %1: Товар ""%2"" поставляется в неделимых упаковках по %3 шт. Дробление коробки запрещено! Измените количество.'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонСообщения,
СтрокаТЧ.НомерСтроки,
СтрокаТЧ.Номенклатура.Наименование,
КоэффициентУпаковки
);
// Выводим сообщение на экран и блокируем проведение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , , , Отказ);
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот код анализирует каждую позицию в спецификации документа. Если менеджер пытается отгрузить, например, 150 штук товара, у которого выбрана упаковка «Коробка 100» (коэффициент 100), система моментально заблокирует проведение документа и выдаст предупреждение. Это гарантирует, что со склада уйдут только целые, неповрежденные заводские коробки.
Подводя итоги нашего анализа, дадим практические рекомендации по выбору архитектуры учета: