Переход на учет по упаковкам в 1С:Управление торговлей 11 — это ответственный шаг, который часто становится необходимым при внедрении полноценного адресного хранения (WMS). Разберем ситуацию: в базе уже ведется учет, но ранее упаковки не использовались. Мы решили программно (с помощью обработки) включить использование индивидуальных упаковок для номенклатуры. Встает закономерный вопрос: как это отразится на «старых» документах и текущих остатках? Проанализируем технические аспекты этого процесса и выясним причины возможных коллизий.
В системе 1С:УТ 11 адресное хранение (режим «Позволять использовать ячейки для хранения остатков») архитектурно связано с понятием упаковок. Даже если товар всегда отгружается поштучно, системе необходимо знать габариты и вес этой «единицы», чтобы рассчитать заполненность ячейки. Рассмотрим механизм: в карточке номенклатуры устанавливается флаг ИспользоватьУпаковки, и одновременно создается запись в подчиненном справочнике УпаковкиЕдиницыИзмерения. Для адресного склада это обязательное условие, так как измерение Упаковка присутствует в ключевых регистрах складского учета.
Рассмотрим, изменятся ли движения документов, созданных до включения упаковок. Если мы создаем индивидуальную упаковку, которая равна базовой единице измерения (например, 1 упаковка = 1 шт.), то математическая модель учета не меняется. Проанализируем ситуацию:
ТоварыНаСкладах или ВыручкаИСебестоимостьПродаж) хранят данные, зафиксированные в момент проведения.Посмотрим на пример логики, которую можно использовать в обработке для массового перевода номенклатуры на упаковки. Нам нужно не только поставить флаг, но и корректно заполнить справочник упаковок. Проанализируем пример кода:
// Пример логики создания индивидуальной упаковки
Для Каждого Стр Из ТаблицаНоменклатуры Цикл
ОбъектНоменклатура = Стр.Ссылка.ПолучитьОбъект();
ОбъектНоменклатура.ИспользоватьУпаковки = Истина;
ОбъектНоменклатура.Записать();
// Создаем единицу упаковки, равную единице хранения
НоваяУпаковка = Справочники.УпаковкиЕдиницыИзмерения.СоздатьЭлемент();
НоваяУпаковка.Владелец = Стр.Ссылка;
НоваяУпаковка.Наименование = "шт (индивидуальная)";
НоваяУпаковка.Числитель = 1;
НоваяУпаковка.Знаменатель = 1;
НоваяУпаковка.ЕдиницаИзмерения = ОбъектНоменклатура.ЕдиницаИзмерения;
НоваяУпаковка.Записать();
КонецЦикла;
Важно помнить: при создании упаковок программным способом необходимо следить за уникальностью GUID. Если создать две визуально одинаковые упаковки «шт», система будет считать их разными объектами, что приведет к проблемам при сопоставлении остатков в ячейках.
Выясним, как упаковки взаимодействуют с адресным складом. Основной регистр здесь — ТоварыВЯчейках. В нем Упаковка является обязательным измерением. Рассмотрим последствия перехода:
ПересчетТоваров. Без этого система может «не увидеть» товар для отбора, так как в регистре он может числиться с пустой упаковкой, а заказ будет требовать конкретную упаковку.Проанализируем ситуацию с внедрением ТСД, о которой упоминалось в обсуждении. При использовании мобильных рабочих мест (на http или web-сервисах) логика меняется следующим образом:
Штрихкодирование: Штрихкод в УТ 11 может быть привязан к конкретной упаковке. Если вы создали упаковки, но не перепривязали к ним штрихкоды, при сканировании на ТСД система может выдать ошибку или потребовать ручного выбора упаковки, что нивелирует пользу от автоматизации.
Габариты и алгоритмы размещения: Если в созданных обработкой упаковках не заполнены Вес и Объем, типовые алгоритмы размещения (WMS) не смогут определить, поместится ли товар в ячейку. Проанализируем параметры: без данных о типоразмере упаковки система будет считать ее «бесконечной» или, наоборот, откажется размещать товар.
Разберем важный нюанс работы УТ 11, упомянутый опытными специалистами: когда товар собирается под отгрузку, он часто «выбывает» из регистра ТоварыВЯчейках еще до фактического выезда со склада (при переходе в зону отгрузки). Это нормальное поведение системы, но оно требует четкого понимания складских статусов. Состояние товара физически не меняется, но его доступность для других заказов блокируется именно на уровне регистра остатков в ячейках в разрезе упаковок.
Подведем итог и составим план действий, который поможет избежать ошибок при массовом переводе номенклатуры на индивидуальные упаковки:
ШтрихкодыНоменклатуры. Рекомендуется программно обновить записи, чтобы они ссылались на новую созданную упаковку.Соблюдение этих шагов позволит сделать процесс внедрения адресного хранения плавным и избежать «ручного» исправления ошибок в регистрах в будущем.