Как организовать адресное хранение в 1С:УТ 11 для автоматического распределения товаров по зонам и настройки приоритетов отбора?

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

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

Разберем по шагам, как преодолеть ограничения типового функционала и настроить систему под ваши задачи.

Шаг 1: Выбор архитектуры склада — Помещения или Области хранения?

Первая проблема, с которой мы сталкиваемся: в документе Отбор (размещение) товаров можно указать только одно Помещение. Если вы создадите «Торговый зал» и «Основной склад» как разные помещения, вам придется создавать два отдельных документа размещения на каждую поставку, что крайне неудобно и убивает автоматизацию. Проанализируем официальную позицию: правила размещения действуют строго в рамках одного помещения.

Решение: откажемся от использования Помещений внутри склада. Вместо этого будем использовать Области хранения. Это позволит нам в рамках одного документа размещения распределить 300 единиц товара следующим образом:

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

Шаг 2: Настройка правил размещения и ограничение вместимости

Выясним, как заставить систему класть в витрину только одну единицу товара, если сам товар очень мелкий (например, линзы весом 2 грамма). Стандартный контроль по весу и объему здесь работает плохо из-за погрешностей и малых величин.

Рассмотрим алгоритм настройки:

  1. Создание типоразмеров ячеек: Создадим для каждой зоны свой типоразмер. Например, для витрины создадим типоразмер «Ячейка-Витрина» с очень маленьким объемом.
  2. Настройка складской группы номенклатуры: Объединим товары в группу (например, «Линзы») и укажем правила размещения.
  3. Приоритеты: В правилах размещения для складской группы установим приоритеты для областей хранения:
    • Приоритет 1: Область «Торговый зал» (Витрины).
    • Приоритет 2: Область «Рабочее место продавца».
    • Приоритет 3: Область «Склад».

Система при генерации размещения сначала попытается заполнить витрину. Как только объем ячейки будет исчерпан (даже одной единицей, если правильно настроены габариты упаковки и ячейки), программа перейдет к следующему приоритету.

Шаг 3: Проблема обратного приоритета при отборе (продаже)

Проанализируем стандартную логику отбора в УТ 11. При размещении система идет от 1-го приоритета к последнему. Но при отборе (продаже) программа часто пытается «очистить» склад и предлагает забрать товар из тех ячеек, которые имеют самый низкий приоритет размещения или специфический порядок обхода. В рознице это недопустимо: кассир должен брать товар из-под руки, а не идти на основной склад.

К сожалению, штатной настройки «Приоритет отбора» в разрезе областей хранения в старых версиях УТ 11 нет. Рассмотрим, как это решить программно. Нам потребуется вмешательство в общий модуль СкладыСервер в процедуру ПодобратьЯчейкиДляОтбора. Нам нужно изменить запрос так, чтобы он учитывал наш кастомный приоритет.

Посмотрим на пример модификации запроса (фрагмент логики):


// В процедуре ПодобратьЯчейкиДляОтбора меняем логику сортировки
// Добавляем выбор поля ПриоритетОтбора (который можно добавить в регистр сведений или область хранения)
Запрос.Текст = 
"ВЫБРАТЬ
|   ТоварыВЯчейкахОстатки.Ячейка,
|   ТоварыВЯчейкахОстатки.Номенклатура,
|   ТоварыВЯчейкахОстатки.Ячейка.УровеньДоступности КАК УровеньДоступности,
|   ТоварыВЯчейкахОстатки.Ячейка.ПорядокОбхода КАК ПорядокОбхода
|ИЗ
|   РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки
|УПОРЯДОЧИТЬ ПО
|   УровеньДоступности ВОЗРАСТ, 
|   ПорядокОбхода ВОЗРАСТ";

Важный момент: используйте реквизит УровеньДоступности у ячейки. Для ячеек в зоне продавца установите уровень 1, для склада — уровень 10. Тогда система при отборе (в штатном режиме без доработок кода) будет считать ячейки с уровнем 1 более «доступными» (близкими) и предложит их в первую очередь.

Шаг 4: Интеграция с РМК (Рабочим местом кассира)

Выясним причину, по которой продажи через Чек ККМ не списывают товар из ячеек. В типовой УТ 11 адресный склад предполагает ордерную схему. Чек ККМ делает движение по регистру Товары на складах, но не по Товары в ячейках.

Рассмотрим варианты решения этой проблемы:

  1. Автоматизация закрытия смены: При закрытии кассовой смены и формировании документа Отчет о розничных продажах, система может автоматически генерировать Расходный ордер и Отбор товаров. Однако это неудобно, так как фактические остатки в ячейках «зависают» до вечера.
  2. Доработка РМК: Самый эффективный путь — при проведении Чека ККМ программно создавать документ Отбор (размещение) товаров со статусом «Отобрано». Это мгновенно списывает товар из конкретной ячейки.

Если вы решите внедрять ручной выбор ячейки в РМК, рассмотрите возможность добавления флага «Выбор ячейки вручную». При его активации должна открываться таблица с остатками в разрезе ячеек (из регистра ТоварыВЯчейках), чтобы кассир мог сам указать, откуда он фактически взял линзу, если автоподбор его не устраивает.

Шаг 5: Работа со штрихкодами ячеек

Часто возникает вопрос: почему при сканировании штрихкода ячейки в документе Реализация программа пишет «Номенклатура не найдена»? Проанализируем ситуацию: штрихкод ячейки формата Code 128 — это технический код. Программа ожидает увидеть штрихкод товара (EAN13 и др.).

Помните: сканирование ячейки работает только в специализированных формах (например, в окне проверки количества или в Мобильном рабочем месте кладовщика). Если вам нужно использовать штрихкоды ячеек в обычных документах, необходимо доработать процедуру ОбработкаВнешнегоСобытия, чтобы система сначала искала код в справочнике СкладскиеЯчейки, и только если не нашла — в номенклатуре.

Подведем итог: для успешной автоматизации адресного хранения мелкого товара в УТ 11 откажитесь от помещений, грамотно настройте уровни доступности ячеек и, при необходимости, внесите минимальные изменения в логику отбора в модуле СкладыСервер. Это обеспечит высокую скорость сборки заказов и актуальность остатков в торговом зале.

← На главную