Как правильно организовать хранение габаритов и веса товаров (с упаковкой и без) в 1С:ERP, КА 2 и УТ 11?

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

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

Различие между мерностью и логистическими габаритами

Прежде всего, нам необходимо разграничить понятия, которые часто путают новички. Рассмотрим сообщение, в котором отмечается, что Длина, Вес и Площадь в карточке номенклатуры часто выступают в роли "мерности".

Мерность — это единица хранения и учета. Если ваш товар учитывается в квадратных метрах или килограммах, это количественный показатель. Габариты же — это линейные размеры (ДхШхВ), необходимые для складской логистики (расчета объема ячеек) и транспортных задач.

Вариант 1: Использование штатного справочника «Упаковки»

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

Преимущества этого метода:

  1. Интеграция с WMS: Если вы планируете использовать адресный склад, система будет автоматически рассчитывать заполненность ячеек, опираясь на данные из справочника упаковок (для контроля пригодится складская накладная с остатками и весом).
  2. Автоматизация штрихкодирования: Штрихкод в 1С 8.3 может быть привязан к конкретной упаковке. При сканировании в документе сразу проставится нужная единица измерения (например, "Коробка" вместо "Штука").
  3. Транспортная логистика: Модули доставки используют стандартные реквизиты упаковок для расчета объема и веса всего заказа, что критично для подбора автотранспорта (также может потребоваться редактирование стоимости доставки).

Однако, как отмечают участники дискуссии, индивидуальные наборы упаковок могут стать "геморроем" при массовом наполнении базы. Чтобы упростить процесс, проанализируем ситуацию: если у вас много товаров с одинаковыми габаритами коробок, используйте Общие наборы упаковок. Это позволит создать одну запись (например, "Коробка тип А") и привязать её к сотням товаров.

Вариант 2: Использование дополнительных реквизитов

Существует альтернативное мнение: полностью отказаться от механизма упаковок в пользу Дополнительных реквизитов. Рассмотрим аргументы за этот подход. Основная претензия к упаковкам заключается в сложности запросов и потенциальных проблемах при выгрузке данных на сайт или интеграции с внешними системами, где структура "Номенклатура - Характеристика - Упаковка" превращается в сложную множественную таблицу.

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


&НаСервере
Функция ДопРеквизит(Спр, Имя, Значение = Неопределено) Экспорт
    Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(Имя);
    Если Свойство.Пустая() Тогда
        Сообщить("Ошибка! Не найден дополнительный реквизит " + Имя);
        Возврат Неопределено;
    КонецЕсли;
    
    Массив = Спр.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", Свойство));
    
    Если Значение = Неопределено Тогда
        Возврат ?(Массив.Количество() = 0, Неопределено, Массив[0].Значение);
    Иначе
        // Установка значения
        Если Массив.Количество() = 0 Тогда
            НоваяСтрока = Спр.ДополнительныеРеквизиты.Добавить();
            НоваяСтрока.Свойство = Свойство;
        Иначе
            НоваяСтрока = Массив[0];
        КонецЕсли;
        
        // Обработка типов (строка -> значение свойства)
        Если ТипЗнч(Значение) = Тип("Строка") И СокрЛП(Свойство.ТипЗначения) = "Дополнительное значение" Тогда
            Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(Значение, Истина, , Свойство);
        КонецЕсли;
        
        НоваяСтрока.Значение = Значение;
    КонецЕсли;
    Возврат Истина;
КонецФункции

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

Хранение габаритов "Нетто" (без упаковки)

Выясним, как реализовать требование автора о хранении габаритов без упаковки. В современных релизах 1С:ERP и КА 2 в карточке Номенклатура на вкладке "Единицы измерения и условия хранения" есть стандартные поля для указания веса, объема и линейных размеров.

Рассмотрим правильную логику заполнения:

  1. В карточке номенклатуры: указываем физические параметры самого изделия (например, габариты собранной мебели).
  2. В справочнике упаковок: создаем запись (например, "Коробка") и указываем там габариты изделия вместе с упаковочным материалом.

Система работает по приоритету: если в документе (например, в Заказе клиента) выбрана упаковка, расчеты идут по ней. Если упаковка не указана — берутся данные из карточки номенклатуры. На основании этих данных формируется акт приёмки по поступлению товаров.

Особенности учета полуфабрикатов (Длина, Ширина, Площадь)

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

Вместо упаковок здесь целесообразно использовать Характеристики. В настройках вида номенклатуры можно включить использование характеристик и добавить в них дополнительные реквизиты (Длина, Ширина). Это позволит:

Сложные логистические структуры: «Матрешки»

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

В 1С это решается через иерархию упаковок, где для каждой упаковки указывается, сколько она содержит "нижестоящих" единиц. Важный нюанс: если у вас есть короба по 10 и по 12 штук для одной и той же номенклатуры, вам придется создать две разные упаковки. Если же на одном паллете могут лежать разные короба — это уже задача для складского учета (уровня складских ячеек и грузовых мест/LPN), а не просто справочника единиц измерения.

Итоговые рекомендации

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

  1. Если вы планируете использовать Адресный склад — используйте только штатный справочник Упаковки.
  2. Для хранения габаритов "чистого" изделия используйте стандартные реквизиты в карточке Номенклатура (вкладка ЕИ и хранение).
  3. Для уникальных размеров полуфабрикатов используйте Характеристики с доп. реквизитами.
  4. Используйте Общие наборы упаковок для минимизации ручного труда и объема базы данных.
  5. К дополнительным реквизитам прибегайте только в крайнем случае, если типовой функционал категорически не подходит для ваших специфических внешних интеграций.
← На главную