При переходе с устаревших систем (например, 1С:Торговля и Склад 7.7) на современные конфигурации семейства 1С:ERP, Комплексная автоматизация 2 или Управление торговлей 11, пользователи и разработчики часто сталкиваются с вопросом: как правильно организовать хранение логистических данных? Нам необходимо знать вес и габариты изделия в "чистом" виде (нетто) и в упаковке (брутто), а также учитывать особенности полуфабрикатов. В этой статье мы подробно проанализируем доступные механизмы и выберем оптимальный путь внедрения.
Прежде всего, нам необходимо разграничить понятия, которые часто путают новички. Рассмотрим сообщение, в котором отмечается, что Длина, Вес и Площадь в карточке номенклатуры часто выступают в роли "мерности".
Мерность — это единица хранения и учета. Если ваш товар учитывается в квадратных метрах или килограммах, это количественный показатель. Габариты же — это линейные размеры (ДхШхВ), необходимые для складской логистики (расчета объема ячеек) и транспортных задач.
Разработчики 1С заложили механизм Упаковки как основной способ хранения логистических данных. Рассмотрим, как это работает на практике. Для каждой номенклатурной позиции можно создать набор упаковок (индивидуальный или общий).
Преимущества этого метода:
Однако, как отмечают участники дискуссии, индивидуальные наборы упаковок могут стать "геморроем" при массовом наполнении базы. Чтобы упростить процесс, проанализируем ситуацию: если у вас много товаров с одинаковыми габаритами коробок, используйте Общие наборы упаковок. Это позволит создать одну запись (например, "Коробка тип А") и привязать её к сотням товаров.
Существует альтернативное мнение: полностью отказаться от механизма упаковок в пользу Дополнительных реквизитов. Рассмотрим аргументы за этот подход. Основная претензия к упаковкам заключается в сложности запросов и потенциальных проблемах при выгрузке данных на сайт или интеграции с внешними системами, где структура "Номенклатура - Характеристика - Упаковка" превращается в сложную множественную таблицу.
Проанализируем пример кода, который позволяет удобно работать с дополнительными реквизитами. Это поможет нам автоматизировать получение данных, если мы все же решим пойти по пути "религиозного" отказа от упаковок:
&НаСервере
Функция ДопРеквизит(Спр, Имя, Значение = Неопределено) Экспорт
Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(Имя);
Если Свойство.Пустая() Тогда
Сообщить("Ошибка! Не найден дополнительный реквизит " + Имя);
Возврат Неопределено;
КонецЕсли;
Массив = Спр.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", Свойство));
Если Значение = Неопределено Тогда
Возврат ?(Массив.Количество() = 0, Неопределено, Массив[0].Значение);
Иначе
// Установка значения
Если Массив.Количество() = 0 Тогда
НоваяСтрока = Спр.ДополнительныеРеквизиты.Добавить();
НоваяСтрока.Свойство = Свойство;
Иначе
НоваяСтрока = Массив[0];
КонецЕсли;
// Обработка типов (строка -> значение свойства)
Если ТипЗнч(Значение) = Тип("Строка") И СокрЛП(Свойство.ТипЗначения) = "Дополнительное значение" Тогда
Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(Значение, Истина, , Свойство);
КонецЕсли;
НоваяСтрока.Значение = Значение;
КонецЕсли;
Возврат Истина;
КонецФункции
Важно помнить: использование доп. реквизитов оправдано только в том случае, если эти данные нужны справочно (для печати этикеток или отображения в прайсе). Если же на их основе должен работать склад или логистика, такой подход создаст огромные трудности в будущем.
Выясним, как реализовать требование автора о хранении габаритов без упаковки. В современных релизах 1С:ERP и КА 2 в карточке Номенклатура на вкладке "Единицы измерения и условия хранения" есть стандартные поля для указания веса, объема и линейных размеров.
Рассмотрим правильную логику заполнения:
Система работает по приоритету: если в документе (например, в Заказе клиента) выбрана упаковка, расчеты идут по ней. Если упаковка не указана — берутся данные из карточки номенклатуры. На основании этих данных формируется акт приёмки по поступлению товаров.
Для полуфабрикатов, параметры которых (например, размеры листа металла или доски) могут варьироваться, использование упаковок часто избыточно. Разберем, как лучше организовать этот учет.
Вместо упаковок здесь целесообразно использовать Характеристики. В настройках вида номенклатуры можно включить использование характеристик и добавить в них дополнительные реквизиты (Длина, Ширина). Это позволит:
Проанализируем ситуацию, когда товар упаковывается сначала в индивидуальную коробку, затем в групповой короб (по 10 или 12 шт), а затем на паллет. Участники обсуждения справедливо замечают, что это превращается в дерево или даже "граф" единиц измерения.
В 1С это решается через иерархию упаковок, где для каждой упаковки указывается, сколько она содержит "нижестоящих" единиц. Важный нюанс: если у вас есть короба по 10 и по 12 штук для одной и той же номенклатуры, вам придется создать две разные упаковки. Если же на одном паллете могут лежать разные короба — это уже задача для складского учета (уровня складских ячеек и грузовых мест/LPN), а не просто справочника единиц измерения.
Подводя итог нашему анализу, дадим конкретные рекомендации по выбору пути реализации:
Упаковки.Номенклатура (вкладка ЕИ и хранение).Характеристики с доп. реквизитами.